-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvec__int128__ppc_8h_source.html
218 lines (216 loc) · 674 KB
/
vec__int128__ppc_8h_source.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>POWER Vector Library Manual: src/pveclib/vec_int128_ppc.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">POWER Vector Library Manual
 <span id="projectnumber">1.0.4</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_3653a864936a87c29f489ec2a5b8be1c.html">pveclib</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">vec_int128_ppc.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="vec__int128__ppc_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> Copyright (c) [2017, 2018] IBM Corporation.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"></span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> You may obtain a copy of the License at</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"></span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"></span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> limitations under the License.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"></span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> vec_int128_ppc.h</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> Contributors:</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> IBM Corporation, Steven Munroe</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> Created on: May 10, 2015</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> Steven Munroe, additional contributions for POWER9.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> */</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef VEC_INT128_PPC_H_</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define VEC_INT128_PPC_H_</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="vec__common__ppc_8h.html">pveclib/vec_common_ppc.h</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="vec__int64__ppc_8h.html">pveclib/vec_int64_ppc.h</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l01931"></a><span class="lineno"> 1931</span> <span class="preprocessor">#ifndef PVECLIB_DISABLE_CONSTINT128</span></div><div class="line"><a name="l01932"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a0f75e65180e68c4753f3d9c2f42d1a31"> 1932</a></span> <span class="preprocessor">#define CONST_VUINT128_QxW(__q0, __q1, __q2, __q3) ( (vui128_t) \</span></div><div class="line"><a name="l01933"></a><span class="lineno"> 1933</span> <span class="preprocessor"> (((unsigned __int128) __q0) << 96) \</span></div><div class="line"><a name="l01934"></a><span class="lineno"> 1934</span> <span class="preprocessor"> + (((unsigned __int128) __q1) << 64) \</span></div><div class="line"><a name="l01935"></a><span class="lineno"> 1935</span> <span class="preprocessor"> + (((unsigned __int128) __q2) << 32) \</span></div><div class="line"><a name="l01936"></a><span class="lineno"> 1936</span> <span class="preprocessor"> + ((unsigned __int128) __q3) )</span></div><div class="line"><a name="l01937"></a><span class="lineno"> 1937</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l01938"></a><span class="lineno"> 1938</span> <span class="comment">// clang does not handle constant folding for __int128</span></div><div class="line"><a name="l01939"></a><span class="lineno"> 1939</span> <span class="preprocessor">#define CONST_VUINT128_QxW(__q0, __q1, __q2, __q3) ( (vui128_t) \</span></div><div class="line"><a name="l01940"></a><span class="lineno"> 1940</span> <span class="preprocessor"> CONST_VINT128_W(__q0, __q1, __q2, __q3) )</span></div><div class="line"><a name="l01941"></a><span class="lineno"> 1941</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01942"></a><span class="lineno"> 1942</span> </div><div class="line"><a name="l01958"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a12118674c4e47eb7c939bb29a379d381"> 1958</a></span> <span class="preprocessor">#define CONST_VUINT128_QxD(__q0, __q1) ( (vui128_t) \</span></div><div class="line"><a name="l01959"></a><span class="lineno"> 1959</span> <span class="preprocessor"> (((unsigned __int128) __q0) << 64) \</span></div><div class="line"><a name="l01960"></a><span class="lineno"> 1960</span> <span class="preprocessor"> + ((unsigned __int128) __q1) )</span></div><div class="line"><a name="l01961"></a><span class="lineno"> 1961</span> </div><div class="line"><a name="l01979"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a25faf0c51245eefdaeda1dc5dd71c516"> 1979</a></span> <span class="preprocessor">#define CONST_VUINT128_Qx19d(__q0, __q1) ( (vui128_t) \</span></div><div class="line"><a name="l01980"></a><span class="lineno"> 1980</span> <span class="preprocessor"> (((unsigned __int128) __q0) * 10000000000000000000UL) \</span></div><div class="line"><a name="l01981"></a><span class="lineno"> 1981</span> <span class="preprocessor"> + ((unsigned __int128) __q1) )</span></div><div class="line"><a name="l01982"></a><span class="lineno"> 1982</span> </div><div class="line"><a name="l01999"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#aa9c94b59ae2504f498923ed506a22083"> 1999</a></span> <span class="preprocessor">#define CONST_VUINT128_Qx18d(__q0, __q1) ( (vui128_t) \</span></div><div class="line"><a name="l02000"></a><span class="lineno"> 2000</span> <span class="preprocessor"> (((unsigned __int128) __q0) * 1000000000000000000UL) \</span></div><div class="line"><a name="l02001"></a><span class="lineno"> 2001</span> <span class="preprocessor"> + ((unsigned __int128) __q1) )</span></div><div class="line"><a name="l02002"></a><span class="lineno"> 2002</span> </div><div class="line"><a name="l02019"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#acd5c20e29b155f8f575d60f6af8f7955"> 2019</a></span> <span class="preprocessor">#define CONST_VUINT128_Qx16d(__q0, __q1) ( (vui128_t) \</span></div><div class="line"><a name="l02020"></a><span class="lineno"> 2020</span> <span class="preprocessor"> (((unsigned __int128) __q0) * 10000000000000000UL) \</span></div><div class="line"><a name="l02021"></a><span class="lineno"> 2021</span> <span class="preprocessor"> + ((unsigned __int128) __q1) )</span></div><div class="line"><a name="l02022"></a><span class="lineno"> 2022</span> </div><div class="line"><a name="l02024"></a><span class="lineno"> 2024</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#af18b98d2d73f1afbc439e1407c78f305">vec_addecuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> ci);</div><div class="line"><a name="l02025"></a><span class="lineno"> 2025</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#a44e63f70b182d60fe03b43a80647451a">vec_addeuqm</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> ci);</div><div class="line"><a name="l02026"></a><span class="lineno"> 2026</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a> <a class="code" href="vec__int128__ppc_8h.html#a7197cd5c6e946211f2718b5e8464cdc0">vec_cmpequq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb);</div><div class="line"><a name="l02027"></a><span class="lineno"> 2027</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a> <a class="code" href="vec__int128__ppc_8h.html#abd88782f327214c07d42519b7d4c69ce">vec_cmpgeuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb);</div><div class="line"><a name="l02028"></a><span class="lineno"> 2028</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a> <a class="code" href="vec__int128__ppc_8h.html#ad4ce43dcbc14fb34623d5ece8073b86e">vec_cmpgtuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb);</div><div class="line"><a name="l02029"></a><span class="lineno"> 2029</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a> <a class="code" href="vec__int128__ppc_8h.html#a69b25e7f46986d00997fedaeeb7871c2">vec_cmpleuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb);</div><div class="line"><a name="l02030"></a><span class="lineno"> 2030</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a> <a class="code" href="vec__int128__ppc_8h.html#a7f9ebc5ad32b151a3e08136d51aad4dc">vec_cmpltuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb);</div><div class="line"><a name="l02031"></a><span class="lineno"> 2031</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a> <a class="code" href="vec__int128__ppc_8h.html#a186d0b94bbc652e700ab4e1733b9524c">vec_cmpneuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb);</div><div class="line"><a name="l02032"></a><span class="lineno"> 2032</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#a9a6a39212f8a8b9ebf20e0117e1e1e88">vec_divuq_10e31</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra);</div><div class="line"><a name="l02033"></a><span class="lineno"> 2033</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#ae2b45341cc9cc918198bb69da0552098">vec_divuq_10e32</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra);</div><div class="line"><a name="l02034"></a><span class="lineno"> 2034</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#adb02d0572ecc17eca0de6d4f0d9aa302">vec_maxuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b);</div><div class="line"><a name="l02035"></a><span class="lineno"> 2035</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#ad0fa6a9987d3bd9593d1780b1c28c390">vec_minuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b);</div><div class="line"><a name="l02036"></a><span class="lineno"> 2036</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#af4b3b91f7e80522d8a8c0c171e077b99">vec_moduq_10e31</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> q);</div><div class="line"><a name="l02037"></a><span class="lineno"> 2037</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#aff4f1d8a707289d2271eafad4aeb1e82">vec_moduq_10e32</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> q);</div><div class="line"><a name="l02038"></a><span class="lineno"> 2038</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#a26f95e02f7b0551e3f2bb7e4b4da040d">vec_muleud</a> (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> a, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b);</div><div class="line"><a name="l02039"></a><span class="lineno"> 2039</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#ad6be9c8f02e43c39a659d6bbc9c3a2d2">vec_mulhuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b);</div><div class="line"><a name="l02040"></a><span class="lineno"> 2040</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#a9aaaf0e4c2705be1e0e8e925b09c52de">vec_mulluq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b);</div><div class="line"><a name="l02041"></a><span class="lineno"> 2041</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#aa989582cbfaa7984f78a937225e92f4a">vec_muloud</a> (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> a, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b);</div><div class="line"><a name="l02042"></a><span class="lineno"> 2042</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#aee5c5b2998ef105b4c6f39739748ffa8">vec_muludq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> *mulu, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b);</div><div class="line"><a name="l02043"></a><span class="lineno"> 2043</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a> <a class="code" href="vec__int128__ppc_8h.html#af74036e39e72e0f3c29706d30fbb96d1">vec_setb_cyq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vcy);</div><div class="line"><a name="l02044"></a><span class="lineno"> 2044</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a> <a class="code" href="vec__int128__ppc_8h.html#a921647d5b67f0de5006ee32fb3d9c4f1">vec_setb_ncq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vcy);</div><div class="line"><a name="l02045"></a><span class="lineno"> 2045</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a> <a class="code" href="vec__int128__ppc_8h.html#af21d01bb19f0ea8605d8c37035837802">vec_setb_sq</a> (<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vra);</div><div class="line"><a name="l02046"></a><span class="lineno"> 2046</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#a8ba40be93339359793ef776e1d5d7577">vec_sldq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrw, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrx,</div><div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb);</div><div class="line"><a name="l02048"></a><span class="lineno"> 2048</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#aaa33904ec4de42f54cceab34adb303c5">vec_sldqi</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrw, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrx,</div><div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> shb);</div><div class="line"><a name="l02050"></a><span class="lineno"> 2050</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#ac05c640c6a42770cb95466ff4a2d903c">vec_srqi</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> shb);</div><div class="line"><a name="l02051"></a><span class="lineno"> 2051</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#a95d3546b2fd6840b46b031c15b4f60d3">vec_subcuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb);</div><div class="line"><a name="l02052"></a><span class="lineno"> 2052</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#a2e40f9bf5df59b725cbfb6738c765202">vec_subeuqm</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrc);</div><div class="line"><a name="l02053"></a><span class="lineno"> 2053</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#a6bafb410404d4f1e10a99263b57d1df0">vec_subuqm</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb);</div><div class="line"><a name="l02054"></a><span class="lineno"> 2054</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#a6280736f91cb67eca10b55e750bfe1de">vec_vmaddeud</a> (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> a, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> c);</div><div class="line"><a name="l02055"></a><span class="lineno"> 2055</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#ae0b83d2696455fea53b1ecf434a0daf8">vec_vmaddoud</a> (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> a, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> c);</div><div class="line"><a name="l02056"></a><span class="lineno"> 2056</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#a43f6f199cdf39641d940f5b8d55dbf6b">vec_vmsumeud</a> (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> a, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> c);</div><div class="line"><a name="l02057"></a><span class="lineno"> 2057</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#a04385860c7a03a9aa57f4a31017caf81">vec_vmsumoud</a> (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> a, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> c);</div><div class="line"><a name="l02058"></a><span class="lineno"> 2058</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#a84e6361054b52ac4564bcef25b718151">vec_vmuleud</a> (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> a, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b);</div><div class="line"><a name="l02059"></a><span class="lineno"> 2059</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> <a class="code" href="vec__int128__ppc_8h.html#a208744996e7482604ad274b44999d6ce">vec_vmuloud</a> (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> a, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b);</div><div class="line"><a name="l02061"></a><span class="lineno"> 2061</span> </div><div class="line"><a name="l02077"></a><span class="lineno"> 2077</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l02078"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#abf1707d712cc191915a8f558eaaa1fe7"> 2078</a></span> <a class="code" href="vec__int128__ppc_8h.html#abf1707d712cc191915a8f558eaaa1fe7">vec_absduq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l02079"></a><span class="lineno"> 2079</span> {</div><div class="line"><a name="l02080"></a><span class="lineno"> 2080</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> tmp1, tmp2;</div><div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>  <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a> cmpbool;</div><div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>  cmpbool = <a class="code" href="vec__int128__ppc_8h.html#ad4ce43dcbc14fb34623d5ece8073b86e">vec_cmpgtuq</a> ( vra, vrb );</div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>  tmp1 = <a class="code" href="vec__int128__ppc_8h.html#a6bafb410404d4f1e10a99263b57d1df0">vec_subuqm</a> ( vra, vrb );</div><div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>  tmp2 = <a class="code" href="vec__int128__ppc_8h.html#a6bafb410404d4f1e10a99263b57d1df0">vec_subuqm</a> ( vrb, vra );</div><div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>  <span class="keywordflow">return</span> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vec_sel ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) tmp2, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) tmp1, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) cmpbool);</div><div class="line"><a name="l02087"></a><span class="lineno"> 2087</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#a6bafb410404d4f1e10a99263b57d1df0">vec_subuqm</a> (<a class="code" href="vec__int128__ppc_8h.html#adb02d0572ecc17eca0de6d4f0d9aa302">vec_maxuq</a> (vra, vrb), <a class="code" href="vec__int128__ppc_8h.html#ad0fa6a9987d3bd9593d1780b1c28c390">vec_minuq</a> (vra, vrb));</div><div class="line"><a name="l02089"></a><span class="lineno"> 2089</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02090"></a><span class="lineno"> 2090</span> }</div><div class="line"><a name="l02091"></a><span class="lineno"> 2091</span> </div><div class="line"><a name="l02106"></a><span class="lineno"> 2106</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l02107"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a655de600915e449a8681572961939422"> 2107</a></span> <a class="code" href="vec__int128__ppc_8h.html#a655de600915e449a8681572961939422">vec_avguq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l02108"></a><span class="lineno"> 2108</span> {</div><div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> result, tmp1, tmp2;</div><div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> qu1 = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) <a class="code" href="vec__common__ppc_8h.html#ae4520a89b9b5a292a3e647a6d5b712ad">CONST_VINT128_W</a>(0, 0, 0, 1);</div><div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>  <span class="comment">// Compute (vra + vrb + 1) with carry</span></div><div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>  tmp1 = <a class="code" href="vec__int128__ppc_8h.html#a44e63f70b182d60fe03b43a80647451a">vec_addeuqm</a> (vra, vrb, qu1);</div><div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>  tmp2 = <a class="code" href="vec__int128__ppc_8h.html#af18b98d2d73f1afbc439e1407c78f305">vec_addecuq</a> (vra, vrb, qu1);</div><div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>  <span class="comment">// shift sum with carry, right 1 bit</span></div><div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>  result = <a class="code" href="vec__int128__ppc_8h.html#aaa33904ec4de42f54cceab34adb303c5">vec_sldqi</a> (tmp2, tmp1, 127);</div><div class="line"><a name="l02116"></a><span class="lineno"> 2116</span> </div><div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>  <span class="keywordflow">return</span> result;</div><div class="line"><a name="l02118"></a><span class="lineno"> 2118</span> }</div><div class="line"><a name="l02119"></a><span class="lineno"> 2119</span> </div><div class="line"><a name="l02133"></a><span class="lineno"> 2133</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l02134"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#ad7aaadba249ce46c4c94f78df1020da3"> 2134</a></span> <a class="code" href="vec__int128__ppc_8h.html#ad7aaadba249ce46c4c94f78df1020da3">vec_addcuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b)</div><div class="line"><a name="l02135"></a><span class="lineno"> 2135</span> {</div><div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> co;</div><div class="line"><a name="l02137"></a><span class="lineno"> 2137</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l02138"></a><span class="lineno"> 2138</span> <span class="preprocessor">#if defined (vec_vaddcuq)</span></div><div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>  co = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_vaddcuq (a, b);</div><div class="line"><a name="l02140"></a><span class="lineno"> 2140</span> <span class="preprocessor">#elif defined (__clang__)</span></div><div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>  co = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_addc (a, b);</div><div class="line"><a name="l02142"></a><span class="lineno"> 2142</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>  __asm__(</div><div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>  <span class="stringliteral">"vaddcuq %0,%1,%2;"</span></div><div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>  : <span class="stringliteral">"=v"</span> (co)</div><div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>  : <span class="stringliteral">"v"</span> (a),</div><div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>  <span class="stringliteral">"v"</span> (b)</div><div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>  : );</div><div class="line"><a name="l02149"></a><span class="lineno"> 2149</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02150"></a><span class="lineno"> 2150</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> c, c2, t;</div><div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> z= { 0,0,0,0};</div><div class="line"><a name="l02153"></a><span class="lineno"> 2153</span> </div><div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>  co = vec_vaddcuw ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)b);</div><div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>  t = vec_vadduwm ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)b);</div><div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>  c = vec_sld (co, z, 4);</div><div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>  c2 = vec_vaddcuw (t, c);</div><div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>  t = vec_vadduwm (t, c);</div><div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>  co = vec_vor (co, c2);</div><div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>  c = vec_sld (c2, z, 4);</div><div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>  c2 = vec_vaddcuw (t, c);</div><div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>  t = vec_vadduwm (t, c);</div><div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>  co = vec_vor (co, c2);</div><div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>  c = vec_sld (c2, z, 4);</div><div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>  c2 = vec_vaddcuw (t, c);</div><div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>  co = vec_vor (co, c2);</div><div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>  co = vec_sld (z, co, 4);</div><div class="line"><a name="l02168"></a><span class="lineno"> 2168</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) co);</div><div class="line"><a name="l02170"></a><span class="lineno"> 2170</span> }</div><div class="line"><a name="l02171"></a><span class="lineno"> 2171</span> </div><div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>  <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l02188"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#af18b98d2d73f1afbc439e1407c78f305"> 2188</a></span>  <a class="code" href="vec__int128__ppc_8h.html#af18b98d2d73f1afbc439e1407c78f305">vec_addecuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> ci)</div><div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>  {</div><div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> co;</div><div class="line"><a name="l02191"></a><span class="lineno"> 2191</span> <span class="preprocessor"> #ifdef _ARCH_PWR8</span></div><div class="line"><a name="l02192"></a><span class="lineno"> 2192</span> <span class="preprocessor"> #if defined (vec_vaddcuq)</span></div><div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>  co = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_vaddecuq (a, b, ci);</div><div class="line"><a name="l02194"></a><span class="lineno"> 2194</span> <span class="preprocessor"> #elif defined (__clang__)</span></div><div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>  co = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_addec (a, b, ci);</div><div class="line"><a name="l02196"></a><span class="lineno"> 2196</span> <span class="preprocessor"># else</span></div><div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>  __asm__(</div><div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>  <span class="stringliteral">"vaddecuq %0,%1,%2,%3;"</span></div><div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>  : <span class="stringliteral">"=v"</span> (co)</div><div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>  : <span class="stringliteral">"v"</span> (a),</div><div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>  <span class="stringliteral">"v"</span> (b),</div><div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>  <span class="stringliteral">"v"</span> (ci)</div><div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>  : );</div><div class="line"><a name="l02204"></a><span class="lineno"> 2204</span> <span class="preprocessor"> #endif</span></div><div class="line"><a name="l02205"></a><span class="lineno"> 2205</span> <span class="preprocessor"> #else</span></div><div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> c, c2, t;</div><div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> z = { 0, 0, 0, 0 };</div><div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>  co = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>){ 1, 1, 1, 1 };</div><div class="line"><a name="l02209"></a><span class="lineno"> 2209</span> </div><div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>  c2 = vec_and ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) ci, co);</div><div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>  c2 = vec_sld ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) c2, z, 12);</div><div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>  co = vec_vaddcuw ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) a, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b);</div><div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>  t = vec_vadduwm ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) a, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b);</div><div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>  c = vec_sld (co, c2, 4);</div><div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>  c2 = vec_vaddcuw (t, c);</div><div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>  t = vec_vadduwm (t, c);</div><div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>  co = vec_vor (co, c2);</div><div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>  c = vec_sld (c2, z, 4);</div><div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>  c2 = vec_vaddcuw (t, c);</div><div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>  t = vec_vadduwm (t, c);</div><div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>  co = vec_vor (co, c2);</div><div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>  c = vec_sld (c2, z, 4);</div><div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>  c2 = vec_vaddcuw (t, c);</div><div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>  t = vec_vadduwm (t, c);</div><div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>  co = vec_vor (co, c2);</div><div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>  c = vec_sld (c2, z, 4);</div><div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>  c2 = vec_vaddcuw (t, c);</div><div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>  co = vec_vor (co, c2);</div><div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>  co = vec_sld (z, co, 4);</div><div class="line"><a name="l02230"></a><span class="lineno"> 2230</span> <span class="preprocessor"> #endif</span></div><div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) co);</div><div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>  }</div><div class="line"><a name="l02233"></a><span class="lineno"> 2233</span> </div><div class="line"><a name="l02249"></a><span class="lineno"> 2249</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l02250"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a44e63f70b182d60fe03b43a80647451a"> 2250</a></span> <a class="code" href="vec__int128__ppc_8h.html#a44e63f70b182d60fe03b43a80647451a">vec_addeuqm</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> ci)</div><div class="line"><a name="l02251"></a><span class="lineno"> 2251</span> {</div><div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t;</div><div class="line"><a name="l02253"></a><span class="lineno"> 2253</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l02254"></a><span class="lineno"> 2254</span> <span class="preprocessor">#if defined (vec_vaddeuqm)</span></div><div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_vaddeuqm (a, b, ci);</div><div class="line"><a name="l02256"></a><span class="lineno"> 2256</span> <span class="preprocessor">#elif defined (__clang__)</span></div><div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_adde (a, b, ci);</div><div class="line"><a name="l02258"></a><span class="lineno"> 2258</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l02259"></a><span class="lineno"> 2259</span>  __asm__(</div><div class="line"><a name="l02260"></a><span class="lineno"> 2260</span>  <span class="stringliteral">"vaddeuqm %0,%1,%2,%3;"</span></div><div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>  : <span class="stringliteral">"=v"</span> (t)</div><div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>  : <span class="stringliteral">"v"</span> (a),</div><div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>  <span class="stringliteral">"v"</span> (b),</div><div class="line"><a name="l02264"></a><span class="lineno"> 2264</span>  <span class="stringliteral">"v"</span> (ci)</div><div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>  : );</div><div class="line"><a name="l02266"></a><span class="lineno"> 2266</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02267"></a><span class="lineno"> 2267</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l02268"></a><span class="lineno"> 2268</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> c2, c;</div><div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> z = { 0,0,0,0};</div><div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> co = { 1,1,1,1};</div><div class="line"><a name="l02271"></a><span class="lineno"> 2271</span> </div><div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>  c2 = vec_and ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)ci, co);</div><div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>  c2 = vec_sld ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)ci, z, 12);</div><div class="line"><a name="l02274"></a><span class="lineno"> 2274</span>  co = vec_vaddcuw ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)b);</div><div class="line"><a name="l02275"></a><span class="lineno"> 2275</span>  t = vec_vadduwm ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)b);</div><div class="line"><a name="l02276"></a><span class="lineno"> 2276</span>  c = vec_sld (co, c2, 4);</div><div class="line"><a name="l02277"></a><span class="lineno"> 2277</span>  c2 = vec_vaddcuw (t, c);</div><div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>  t = vec_vadduwm (t, c);</div><div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>  c = vec_sld (c2, z, 4);</div><div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>  c2 = vec_vaddcuw (t, c);</div><div class="line"><a name="l02281"></a><span class="lineno"> 2281</span>  t = vec_vadduwm (t, c);</div><div class="line"><a name="l02282"></a><span class="lineno"> 2282</span>  c = vec_sld (c2, z, 4);</div><div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>  c2 = vec_vaddcuw (t, c);</div><div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>  t = vec_vadduwm (t, c);</div><div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>  c = vec_sld (c2, z, 4);</div><div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>  t = vec_vadduwm (t, c);</div><div class="line"><a name="l02287"></a><span class="lineno"> 2287</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t);</div><div class="line"><a name="l02289"></a><span class="lineno"> 2289</span> }</div><div class="line"><a name="l02290"></a><span class="lineno"> 2290</span> </div><div class="line"><a name="l02304"></a><span class="lineno"> 2304</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l02305"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8"> 2305</a></span> <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b)</div><div class="line"><a name="l02306"></a><span class="lineno"> 2306</span> {</div><div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t;</div><div class="line"><a name="l02308"></a><span class="lineno"> 2308</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l02309"></a><span class="lineno"> 2309</span> <span class="preprocessor">#if defined (vec_vadduqm)</span></div><div class="line"><a name="l02310"></a><span class="lineno"> 2310</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_vadduqm (a, b);</div><div class="line"><a name="l02311"></a><span class="lineno"> 2311</span> <span class="preprocessor">#elif defined (__clang__)</span></div><div class="line"><a name="l02312"></a><span class="lineno"> 2312</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_add (a, b);</div><div class="line"><a name="l02313"></a><span class="lineno"> 2313</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l02314"></a><span class="lineno"> 2314</span>  __asm__(</div><div class="line"><a name="l02315"></a><span class="lineno"> 2315</span>  <span class="stringliteral">"vadduqm %0,%1,%2;"</span></div><div class="line"><a name="l02316"></a><span class="lineno"> 2316</span>  : <span class="stringliteral">"=v"</span> (t)</div><div class="line"><a name="l02317"></a><span class="lineno"> 2317</span>  : <span class="stringliteral">"v"</span> (a),</div><div class="line"><a name="l02318"></a><span class="lineno"> 2318</span>  <span class="stringliteral">"v"</span> (b)</div><div class="line"><a name="l02319"></a><span class="lineno"> 2319</span>  : );</div><div class="line"><a name="l02320"></a><span class="lineno"> 2320</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02321"></a><span class="lineno"> 2321</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l02322"></a><span class="lineno"> 2322</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> c, c2;</div><div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> z= { 0,0,0,0};</div><div class="line"><a name="l02324"></a><span class="lineno"> 2324</span> </div><div class="line"><a name="l02325"></a><span class="lineno"> 2325</span>  c = vec_vaddcuw ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)b);</div><div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>  t = vec_vadduwm ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)b);</div><div class="line"><a name="l02327"></a><span class="lineno"> 2327</span>  c = vec_sld (c, z, 4);</div><div class="line"><a name="l02328"></a><span class="lineno"> 2328</span>  c2 = vec_vaddcuw (t, c);</div><div class="line"><a name="l02329"></a><span class="lineno"> 2329</span>  t = vec_vadduwm (t, c);</div><div class="line"><a name="l02330"></a><span class="lineno"> 2330</span>  c = vec_sld (c2, z, 4);</div><div class="line"><a name="l02331"></a><span class="lineno"> 2331</span>  c2 = vec_vaddcuw (t, c);</div><div class="line"><a name="l02332"></a><span class="lineno"> 2332</span>  t = vec_vadduwm (t, c);</div><div class="line"><a name="l02333"></a><span class="lineno"> 2333</span>  c = vec_sld (c2, z, 4);</div><div class="line"><a name="l02334"></a><span class="lineno"> 2334</span>  t = vec_vadduwm (t, c);</div><div class="line"><a name="l02335"></a><span class="lineno"> 2335</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t);</div><div class="line"><a name="l02337"></a><span class="lineno"> 2337</span> }</div><div class="line"><a name="l02338"></a><span class="lineno"> 2338</span> </div><div class="line"><a name="l02353"></a><span class="lineno"> 2353</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l02354"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a363fa7103ccd730c47bb34cb9f05e80b"> 2354</a></span> <a class="code" href="vec__int128__ppc_8h.html#a363fa7103ccd730c47bb34cb9f05e80b">vec_addcq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> *cout, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b)</div><div class="line"><a name="l02355"></a><span class="lineno"> 2355</span> {</div><div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t, co;</div><div class="line"><a name="l02357"></a><span class="lineno"> 2357</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l02358"></a><span class="lineno"> 2358</span> <span class="preprocessor">#if defined (vec_vadduqm) && defined (vec_vaddcuq)</span></div><div class="line"><a name="l02359"></a><span class="lineno"> 2359</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_vadduqm (a, b);</div><div class="line"><a name="l02360"></a><span class="lineno"> 2360</span>  co = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_vaddcuq (a, b);</div><div class="line"><a name="l02361"></a><span class="lineno"> 2361</span> <span class="preprocessor">#elif defined (__clang__)</span></div><div class="line"><a name="l02362"></a><span class="lineno"> 2362</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_add (a, b);</div><div class="line"><a name="l02363"></a><span class="lineno"> 2363</span>  co = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_addc (a, b);</div><div class="line"><a name="l02364"></a><span class="lineno"> 2364</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l02365"></a><span class="lineno"> 2365</span>  __asm__(</div><div class="line"><a name="l02366"></a><span class="lineno"> 2366</span>  <span class="stringliteral">"vadduqm %0,%2,%3;\n"</span></div><div class="line"><a name="l02367"></a><span class="lineno"> 2367</span>  <span class="stringliteral">"\tvaddcuq %1,%2,%3;"</span></div><div class="line"><a name="l02368"></a><span class="lineno"> 2368</span>  : <span class="stringliteral">"=&v"</span> (t),</div><div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>  <span class="stringliteral">"=v"</span> (co)</div><div class="line"><a name="l02370"></a><span class="lineno"> 2370</span>  : <span class="stringliteral">"v"</span> (a),</div><div class="line"><a name="l02371"></a><span class="lineno"> 2371</span>  <span class="stringliteral">"v"</span> (b)</div><div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>  : );</div><div class="line"><a name="l02373"></a><span class="lineno"> 2373</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02374"></a><span class="lineno"> 2374</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> c, c2;</div><div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> z= { 0,0,0,0};</div><div class="line"><a name="l02377"></a><span class="lineno"> 2377</span> </div><div class="line"><a name="l02378"></a><span class="lineno"> 2378</span>  co = vec_vaddcuw ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)b);</div><div class="line"><a name="l02379"></a><span class="lineno"> 2379</span>  t = vec_vadduwm ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)b);</div><div class="line"><a name="l02380"></a><span class="lineno"> 2380</span>  c = vec_sld (co, z, 4);</div><div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>  c2 = vec_vaddcuw (t, c);</div><div class="line"><a name="l02382"></a><span class="lineno"> 2382</span>  t = vec_vadduwm (t, c);</div><div class="line"><a name="l02383"></a><span class="lineno"> 2383</span>  co = vec_vor (co, c2);</div><div class="line"><a name="l02384"></a><span class="lineno"> 2384</span>  c = vec_sld (c2, z, 4);</div><div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>  c2 = vec_vaddcuw (t, c);</div><div class="line"><a name="l02386"></a><span class="lineno"> 2386</span>  t = vec_vadduwm (t, c);</div><div class="line"><a name="l02387"></a><span class="lineno"> 2387</span>  co = vec_vor (co, c2);</div><div class="line"><a name="l02388"></a><span class="lineno"> 2388</span>  c = vec_sld (c2, z, 4);</div><div class="line"><a name="l02389"></a><span class="lineno"> 2389</span>  c2 = vec_vaddcuw (t, c);</div><div class="line"><a name="l02390"></a><span class="lineno"> 2390</span>  t = vec_vadduwm (t, c);</div><div class="line"><a name="l02391"></a><span class="lineno"> 2391</span>  co = vec_vor (co, c2);</div><div class="line"><a name="l02392"></a><span class="lineno"> 2392</span>  co = vec_sld (z, co, 4);</div><div class="line"><a name="l02393"></a><span class="lineno"> 2393</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02394"></a><span class="lineno"> 2394</span>  *cout = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) co;</div><div class="line"><a name="l02395"></a><span class="lineno"> 2395</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t);</div><div class="line"><a name="l02396"></a><span class="lineno"> 2396</span> }</div><div class="line"><a name="l02397"></a><span class="lineno"> 2397</span> </div><div class="line"><a name="l02414"></a><span class="lineno"> 2414</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l02415"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a9e27910c148d525e17d099688aec9ba1"> 2415</a></span> <a class="code" href="vec__int128__ppc_8h.html#a9e27910c148d525e17d099688aec9ba1">vec_addeq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> *cout, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> ci)</div><div class="line"><a name="l02416"></a><span class="lineno"> 2416</span> {</div><div class="line"><a name="l02417"></a><span class="lineno"> 2417</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t, co;</div><div class="line"><a name="l02418"></a><span class="lineno"> 2418</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l02419"></a><span class="lineno"> 2419</span> <span class="preprocessor">#if defined (vec_vaddeuqm) && defined (vec_vaddecuq)</span></div><div class="line"><a name="l02420"></a><span class="lineno"> 2420</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_vaddeuqm (a, b, ci);</div><div class="line"><a name="l02421"></a><span class="lineno"> 2421</span>  co = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_vaddecuq (a, b, ci);</div><div class="line"><a name="l02422"></a><span class="lineno"> 2422</span> <span class="preprocessor">#elif defined (__clang__)</span></div><div class="line"><a name="l02423"></a><span class="lineno"> 2423</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_adde (a, b, ci);</div><div class="line"><a name="l02424"></a><span class="lineno"> 2424</span>  co = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_addec (a, b, ci);</div><div class="line"><a name="l02425"></a><span class="lineno"> 2425</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l02426"></a><span class="lineno"> 2426</span>  __asm__(</div><div class="line"><a name="l02427"></a><span class="lineno"> 2427</span>  <span class="stringliteral">"vaddeuqm %0,%2,%3,%4;\n"</span></div><div class="line"><a name="l02428"></a><span class="lineno"> 2428</span>  <span class="stringliteral">"\tvaddecuq %1,%2,%3,%4;"</span></div><div class="line"><a name="l02429"></a><span class="lineno"> 2429</span>  : <span class="stringliteral">"=&v"</span> (t),</div><div class="line"><a name="l02430"></a><span class="lineno"> 2430</span>  <span class="stringliteral">"=v"</span> (co)</div><div class="line"><a name="l02431"></a><span class="lineno"> 2431</span>  : <span class="stringliteral">"v"</span> (a),</div><div class="line"><a name="l02432"></a><span class="lineno"> 2432</span>  <span class="stringliteral">"v"</span> (b),</div><div class="line"><a name="l02433"></a><span class="lineno"> 2433</span>  <span class="stringliteral">"v"</span> (ci)</div><div class="line"><a name="l02434"></a><span class="lineno"> 2434</span>  : );</div><div class="line"><a name="l02435"></a><span class="lineno"> 2435</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02436"></a><span class="lineno"> 2436</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l02437"></a><span class="lineno"> 2437</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> c, c2;</div><div class="line"><a name="l02438"></a><span class="lineno"> 2438</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> z= { 0,0,0,0};</div><div class="line"><a name="l02439"></a><span class="lineno"> 2439</span>  co = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>){ 1,1,1,1};</div><div class="line"><a name="l02440"></a><span class="lineno"> 2440</span> </div><div class="line"><a name="l02441"></a><span class="lineno"> 2441</span>  c2 = vec_and ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)ci, co);</div><div class="line"><a name="l02442"></a><span class="lineno"> 2442</span>  c2 = vec_sld ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)c2, z, 12);</div><div class="line"><a name="l02443"></a><span class="lineno"> 2443</span>  co = vec_vaddcuw ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)b);</div><div class="line"><a name="l02444"></a><span class="lineno"> 2444</span>  t = vec_vadduwm ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)b);</div><div class="line"><a name="l02445"></a><span class="lineno"> 2445</span>  c = vec_sld (co, c2, 4);</div><div class="line"><a name="l02446"></a><span class="lineno"> 2446</span>  c2 = vec_vaddcuw (t, c);</div><div class="line"><a name="l02447"></a><span class="lineno"> 2447</span>  t = vec_vadduwm (t, c);</div><div class="line"><a name="l02448"></a><span class="lineno"> 2448</span>  co = vec_vor (co, c2);</div><div class="line"><a name="l02449"></a><span class="lineno"> 2449</span>  c = vec_sld (c2, z, 4);</div><div class="line"><a name="l02450"></a><span class="lineno"> 2450</span>  c2 = vec_vaddcuw (t, c);</div><div class="line"><a name="l02451"></a><span class="lineno"> 2451</span>  t = vec_vadduwm (t, c);</div><div class="line"><a name="l02452"></a><span class="lineno"> 2452</span>  co = vec_vor (co, c2);</div><div class="line"><a name="l02453"></a><span class="lineno"> 2453</span>  c = vec_sld (c2, z, 4);</div><div class="line"><a name="l02454"></a><span class="lineno"> 2454</span>  c2 = vec_vaddcuw (t, c);</div><div class="line"><a name="l02455"></a><span class="lineno"> 2455</span>  t = vec_vadduwm (t, c);</div><div class="line"><a name="l02456"></a><span class="lineno"> 2456</span>  co = vec_vor (co, c2);</div><div class="line"><a name="l02457"></a><span class="lineno"> 2457</span>  c = vec_sld (c2, z, 4);</div><div class="line"><a name="l02458"></a><span class="lineno"> 2458</span>  c2 = vec_vaddcuw (t, c);</div><div class="line"><a name="l02459"></a><span class="lineno"> 2459</span>  t = vec_vadduwm (t, c);</div><div class="line"><a name="l02460"></a><span class="lineno"> 2460</span>  co = vec_vor (co, c2);</div><div class="line"><a name="l02461"></a><span class="lineno"> 2461</span>  co = vec_sld (z, co, 4);</div><div class="line"><a name="l02462"></a><span class="lineno"> 2462</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02463"></a><span class="lineno"> 2463</span>  *cout = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) co;</div><div class="line"><a name="l02464"></a><span class="lineno"> 2464</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t);</div><div class="line"><a name="l02465"></a><span class="lineno"> 2465</span> }</div><div class="line"><a name="l02466"></a><span class="lineno"> 2466</span> </div><div class="line"><a name="l02482"></a><span class="lineno"> 2482</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l02483"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a066cc120c198773a2f8dfd17480b7a49"> 2483</a></span> <a class="code" href="vec__int128__ppc_8h.html#a066cc120c198773a2f8dfd17480b7a49">vec_clzq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra)</div><div class="line"><a name="l02484"></a><span class="lineno"> 2484</span> {</div><div class="line"><a name="l02485"></a><span class="lineno"> 2485</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> result;</div><div class="line"><a name="l02486"></a><span class="lineno"> 2486</span> </div><div class="line"><a name="l02487"></a><span class="lineno"> 2487</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l02488"></a><span class="lineno"> 2488</span>  <span class="comment">/*</span></div><div class="line"><a name="l02489"></a><span class="lineno"> 2489</span> <span class="comment"> * Use the Vector Count Leading Zeros Double Word instruction to get</span></div><div class="line"><a name="l02490"></a><span class="lineno"> 2490</span> <span class="comment"> * the count for the left and right vector halves. If the left vector</span></div><div class="line"><a name="l02491"></a><span class="lineno"> 2491</span> <span class="comment"> * doubleword of the input is nonzero then only the left count is</span></div><div class="line"><a name="l02492"></a><span class="lineno"> 2492</span> <span class="comment"> * included and we need to mask off the right count.</span></div><div class="line"><a name="l02493"></a><span class="lineno"> 2493</span> <span class="comment"> * Otherwise the left count is 64 and we need to add 64 to the right</span></div><div class="line"><a name="l02494"></a><span class="lineno"> 2494</span> <span class="comment"> * count.</span></div><div class="line"><a name="l02495"></a><span class="lineno"> 2495</span> <span class="comment"> * After masking we sum across the left and right counts to</span></div><div class="line"><a name="l02496"></a><span class="lineno"> 2496</span> <span class="comment"> * get the final 128-bit vector count (0-128).</span></div><div class="line"><a name="l02497"></a><span class="lineno"> 2497</span> <span class="comment"> */</span></div><div class="line"><a name="l02498"></a><span class="lineno"> 2498</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> vt1, vt2, vt3;</div><div class="line"><a name="l02499"></a><span class="lineno"> 2499</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> vzero = { 0, 0 };</div><div class="line"><a name="l02500"></a><span class="lineno"> 2500</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> v64 = { 64, 64 };</div><div class="line"><a name="l02501"></a><span class="lineno"> 2501</span> </div><div class="line"><a name="l02502"></a><span class="lineno"> 2502</span>  vt1 = <a class="code" href="vec__int64__ppc_8h.html#a03cdec54548bd95e04d4835d96b1bea4">vec_clzd</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) vra);</div><div class="line"><a name="l02503"></a><span class="lineno"> 2503</span>  vt2 = (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) vec_cmplt(vt1, v64);</div><div class="line"><a name="l02504"></a><span class="lineno"> 2504</span>  vt3 = (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) vec_sld ((<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vzero, (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vt2, 8);</div><div class="line"><a name="l02505"></a><span class="lineno"> 2505</span>  result = vec_andc (vt1, vt3);</div><div class="line"><a name="l02506"></a><span class="lineno"> 2506</span>  result = (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) vec_sums ((<a class="code" href="vec__common__ppc_8h.html#adf5717f56a3dac6980206dbd37614ca2">vi32_t</a>) result, (<a class="code" href="vec__common__ppc_8h.html#adf5717f56a3dac6980206dbd37614ca2">vi32_t</a>) vzero);</div><div class="line"><a name="l02507"></a><span class="lineno"> 2507</span> <span class="preprocessor">#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__</span></div><div class="line"><a name="l02508"></a><span class="lineno"> 2508</span>  result = (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) vec_sld ((<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) result, (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) result, 4);</div><div class="line"><a name="l02509"></a><span class="lineno"> 2509</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02510"></a><span class="lineno"> 2510</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l02511"></a><span class="lineno"> 2511</span>  <span class="comment">/* vector clz instructions were introduced in power8. For power7 and</span></div><div class="line"><a name="l02512"></a><span class="lineno"> 2512</span> <span class="comment"> * earlier, use the pveclib vec_clzw implementation. For a quadword</span></div><div class="line"><a name="l02513"></a><span class="lineno"> 2513</span> <span class="comment"> * clz, this requires pre-conditioning the input before computing the</span></div><div class="line"><a name="l02514"></a><span class="lineno"> 2514</span> <span class="comment"> * the word clz and sum across. */</span></div><div class="line"><a name="l02515"></a><span class="lineno"> 2515</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> c0, clz;</div><div class="line"><a name="l02516"></a><span class="lineno"> 2516</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> r32, gt32, gt32sr32, gt64sr64;</div><div class="line"><a name="l02517"></a><span class="lineno"> 2517</span> </div><div class="line"><a name="l02518"></a><span class="lineno"> 2518</span>  c0 = vec_splat_u32 (0);</div><div class="line"><a name="l02519"></a><span class="lineno"> 2519</span>  gt32 = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_cmpgt ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vra, c0);</div><div class="line"><a name="l02520"></a><span class="lineno"> 2520</span>  gt32sr32 = vec_sld (c0, gt32, 12);</div><div class="line"><a name="l02521"></a><span class="lineno"> 2521</span>  gt64sr64 = vec_sld (c0, gt32, 8);</div><div class="line"><a name="l02522"></a><span class="lineno"> 2522</span>  gt32 = vec_sld (c0, gt32, 4);</div><div class="line"><a name="l02523"></a><span class="lineno"> 2523</span> </div><div class="line"><a name="l02524"></a><span class="lineno"> 2524</span>  gt32sr32 = vec_or (gt32sr32, gt32);</div><div class="line"><a name="l02525"></a><span class="lineno"> 2525</span>  gt64sr64 = vec_or (gt64sr64, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vra);</div><div class="line"><a name="l02526"></a><span class="lineno"> 2526</span>  r32 = vec_or (gt32sr32, gt64sr64);</div><div class="line"><a name="l02527"></a><span class="lineno"> 2527</span> </div><div class="line"><a name="l02528"></a><span class="lineno"> 2528</span>  clz = <a class="code" href="vec__int32__ppc_8h.html#afbe65a777f2b75022ae584f76d0a2777">vec_clzw</a> (r32);</div><div class="line"><a name="l02529"></a><span class="lineno"> 2529</span>  result = (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) vec_sums ((<a class="code" href="vec__common__ppc_8h.html#adf5717f56a3dac6980206dbd37614ca2">vi32_t</a>) clz, (<a class="code" href="vec__common__ppc_8h.html#adf5717f56a3dac6980206dbd37614ca2">vi32_t</a>) c0);</div><div class="line"><a name="l02530"></a><span class="lineno"> 2530</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02531"></a><span class="lineno"> 2531</span> </div><div class="line"><a name="l02532"></a><span class="lineno"> 2532</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) result);</div><div class="line"><a name="l02533"></a><span class="lineno"> 2533</span> }</div><div class="line"><a name="l02534"></a><span class="lineno"> 2534</span> </div><div class="line"><a name="l02551"></a><span class="lineno"> 2551</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a></div><div class="line"><a name="l02552"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#adf308aff6d9e25ae55b2c9d998c5de68"> 2552</a></span> <a class="code" href="vec__int128__ppc_8h.html#adf308aff6d9e25ae55b2c9d998c5de68">vec_cmpeqsq</a> (<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vrb)</div><div class="line"><a name="l02553"></a><span class="lineno"> 2553</span> {</div><div class="line"><a name="l02554"></a><span class="lineno"> 2554</span>  <span class="comment">/* vec_cmpequq works for both signed and unsigned compares. */</span></div><div class="line"><a name="l02555"></a><span class="lineno"> 2555</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#a7197cd5c6e946211f2718b5e8464cdc0">vec_cmpequq</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vra, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vrb);</div><div class="line"><a name="l02556"></a><span class="lineno"> 2556</span> }</div><div class="line"><a name="l02557"></a><span class="lineno"> 2557</span> </div><div class="line"><a name="l02581"></a><span class="lineno"> 2581</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a></div><div class="line"><a name="l02582"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a7197cd5c6e946211f2718b5e8464cdc0"> 2582</a></span> <a class="code" href="vec__int128__ppc_8h.html#a7197cd5c6e946211f2718b5e8464cdc0">vec_cmpequq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l02583"></a><span class="lineno"> 2583</span> {</div><div class="line"><a name="l02584"></a><span class="lineno"> 2584</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l02585"></a><span class="lineno"> 2585</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> equd, swapd;</div><div class="line"><a name="l02586"></a><span class="lineno"> 2586</span> </div><div class="line"><a name="l02587"></a><span class="lineno"> 2587</span>  equd = (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) <a class="code" href="vec__int64__ppc_8h.html#a560aef2acfdf1db1cf14848ec6cb0c1c">vec_cmpequd</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) vra, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) vrb);</div><div class="line"><a name="l02588"></a><span class="lineno"> 2588</span>  swapd = <a class="code" href="vec__int64__ppc_8h.html#a42d2b39711c06106097ef869a20420b6">vec_swapd</a> (equd);</div><div class="line"><a name="l02589"></a><span class="lineno"> 2589</span>  <span class="keywordflow">return</span> (<a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a>) vec_and (equd, swapd);</div><div class="line"><a name="l02590"></a><span class="lineno"> 2590</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l02591"></a><span class="lineno"> 2591</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> equw, equ1, equ2, equ3;</div><div class="line"><a name="l02592"></a><span class="lineno"> 2592</span> </div><div class="line"><a name="l02593"></a><span class="lineno"> 2593</span>  equw = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_cmpeq ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vra,</div><div class="line"><a name="l02594"></a><span class="lineno"> 2594</span>  (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb);</div><div class="line"><a name="l02595"></a><span class="lineno"> 2595</span>  equ1 = vec_sld (equw, equw, 4);</div><div class="line"><a name="l02596"></a><span class="lineno"> 2596</span>  equ2 = vec_sld (equw, equw, 8);</div><div class="line"><a name="l02597"></a><span class="lineno"> 2597</span>  equ3 = vec_sld (equw, equw, 12);</div><div class="line"><a name="l02598"></a><span class="lineno"> 2598</span>  equw = vec_and (equw, equ1);</div><div class="line"><a name="l02599"></a><span class="lineno"> 2599</span>  equ2 = vec_and (equ2, equ3);</div><div class="line"><a name="l02600"></a><span class="lineno"> 2600</span>  <span class="keywordflow">return</span> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vec_and (equw, equ2);</div><div class="line"><a name="l02601"></a><span class="lineno"> 2601</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02602"></a><span class="lineno"> 2602</span> }</div><div class="line"><a name="l02603"></a><span class="lineno"> 2603</span> </div><div class="line"><a name="l02621"></a><span class="lineno"> 2621</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a></div><div class="line"><a name="l02622"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#ac7e92209124903c3e8c535263246ff37"> 2622</a></span> <a class="code" href="vec__int128__ppc_8h.html#ac7e92209124903c3e8c535263246ff37">vec_cmpgesq</a> (<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vrb)</div><div class="line"><a name="l02623"></a><span class="lineno"> 2623</span> {</div><div class="line"><a name="l02624"></a><span class="lineno"> 2624</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> signbit = <a class="code" href="vec__common__ppc_8h.html#ae4520a89b9b5a292a3e647a6d5b712ad">CONST_VINT128_W</a> (0x80000000, 0, 0, 0);</div><div class="line"><a name="l02625"></a><span class="lineno"> 2625</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> _a, _b;</div><div class="line"><a name="l02626"></a><span class="lineno"> 2626</span> </div><div class="line"><a name="l02627"></a><span class="lineno"> 2627</span>  _a = vec_xor ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vra, signbit);</div><div class="line"><a name="l02628"></a><span class="lineno"> 2628</span>  _b = vec_xor ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb, signbit);</div><div class="line"><a name="l02629"></a><span class="lineno"> 2629</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#abd88782f327214c07d42519b7d4c69ce">vec_cmpgeuq</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) _a, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) _b);</div><div class="line"><a name="l02630"></a><span class="lineno"> 2630</span> }</div><div class="line"><a name="l02631"></a><span class="lineno"> 2631</span> </div><div class="line"><a name="l02656"></a><span class="lineno"> 2656</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a></div><div class="line"><a name="l02657"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#abd88782f327214c07d42519b7d4c69ce"> 2657</a></span> <a class="code" href="vec__int128__ppc_8h.html#abd88782f327214c07d42519b7d4c69ce">vec_cmpgeuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l02658"></a><span class="lineno"> 2658</span> {</div><div class="line"><a name="l02659"></a><span class="lineno"> 2659</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a_b;</div><div class="line"><a name="l02660"></a><span class="lineno"> 2660</span> </div><div class="line"><a name="l02661"></a><span class="lineno"> 2661</span>  a_b = <a class="code" href="vec__int128__ppc_8h.html#a95d3546b2fd6840b46b031c15b4f60d3">vec_subcuq</a> (vra, vrb);</div><div class="line"><a name="l02662"></a><span class="lineno"> 2662</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#af74036e39e72e0f3c29706d30fbb96d1">vec_setb_cyq</a> (a_b);</div><div class="line"><a name="l02663"></a><span class="lineno"> 2663</span> }</div><div class="line"><a name="l02664"></a><span class="lineno"> 2664</span> </div><div class="line"><a name="l02682"></a><span class="lineno"> 2682</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a></div><div class="line"><a name="l02683"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a45ce55b0cba15cddb6764a900922d768"> 2683</a></span> <a class="code" href="vec__int128__ppc_8h.html#a45ce55b0cba15cddb6764a900922d768">vec_cmpgtsq</a> (<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vrb)</div><div class="line"><a name="l02684"></a><span class="lineno"> 2684</span> {</div><div class="line"><a name="l02685"></a><span class="lineno"> 2685</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> signbit = <a class="code" href="vec__common__ppc_8h.html#ae4520a89b9b5a292a3e647a6d5b712ad">CONST_VINT128_W</a> (0x80000000, 0, 0, 0);</div><div class="line"><a name="l02686"></a><span class="lineno"> 2686</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> _a, _b;</div><div class="line"><a name="l02687"></a><span class="lineno"> 2687</span> </div><div class="line"><a name="l02688"></a><span class="lineno"> 2688</span>  _a = vec_xor ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vra, signbit);</div><div class="line"><a name="l02689"></a><span class="lineno"> 2689</span>  _b = vec_xor ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb, signbit);</div><div class="line"><a name="l02690"></a><span class="lineno"> 2690</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#ad4ce43dcbc14fb34623d5ece8073b86e">vec_cmpgtuq</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) _a, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) _b);</div><div class="line"><a name="l02691"></a><span class="lineno"> 2691</span> }</div><div class="line"><a name="l02692"></a><span class="lineno"> 2692</span> </div><div class="line"><a name="l02717"></a><span class="lineno"> 2717</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a></div><div class="line"><a name="l02718"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#ad4ce43dcbc14fb34623d5ece8073b86e"> 2718</a></span> <a class="code" href="vec__int128__ppc_8h.html#ad4ce43dcbc14fb34623d5ece8073b86e">vec_cmpgtuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l02719"></a><span class="lineno"> 2719</span> {</div><div class="line"><a name="l02720"></a><span class="lineno"> 2720</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b_a;</div><div class="line"><a name="l02721"></a><span class="lineno"> 2721</span> </div><div class="line"><a name="l02722"></a><span class="lineno"> 2722</span>  b_a = <a class="code" href="vec__int128__ppc_8h.html#a95d3546b2fd6840b46b031c15b4f60d3">vec_subcuq</a> (vrb, vra);</div><div class="line"><a name="l02723"></a><span class="lineno"> 2723</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#a921647d5b67f0de5006ee32fb3d9c4f1">vec_setb_ncq</a> (b_a);</div><div class="line"><a name="l02724"></a><span class="lineno"> 2724</span> }</div><div class="line"><a name="l02725"></a><span class="lineno"> 2725</span> </div><div class="line"><a name="l02743"></a><span class="lineno"> 2743</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a></div><div class="line"><a name="l02744"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a3642b1e0d48117c91189f69dd0e955ad"> 2744</a></span> <a class="code" href="vec__int128__ppc_8h.html#a3642b1e0d48117c91189f69dd0e955ad">vec_cmplesq</a> (<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vrb)</div><div class="line"><a name="l02745"></a><span class="lineno"> 2745</span> {</div><div class="line"><a name="l02746"></a><span class="lineno"> 2746</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> signbit = <a class="code" href="vec__common__ppc_8h.html#ae4520a89b9b5a292a3e647a6d5b712ad">CONST_VINT128_W</a> (0x80000000, 0, 0, 0);</div><div class="line"><a name="l02747"></a><span class="lineno"> 2747</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> _a, _b;</div><div class="line"><a name="l02748"></a><span class="lineno"> 2748</span> </div><div class="line"><a name="l02749"></a><span class="lineno"> 2749</span>  _a = vec_xor ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vra, signbit);</div><div class="line"><a name="l02750"></a><span class="lineno"> 2750</span>  _b = vec_xor ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb, signbit);</div><div class="line"><a name="l02751"></a><span class="lineno"> 2751</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#a69b25e7f46986d00997fedaeeb7871c2">vec_cmpleuq</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) _a, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) _b);</div><div class="line"><a name="l02752"></a><span class="lineno"> 2752</span> }</div><div class="line"><a name="l02753"></a><span class="lineno"> 2753</span> </div><div class="line"><a name="l02778"></a><span class="lineno"> 2778</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a></div><div class="line"><a name="l02779"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a69b25e7f46986d00997fedaeeb7871c2"> 2779</a></span> <a class="code" href="vec__int128__ppc_8h.html#a69b25e7f46986d00997fedaeeb7871c2">vec_cmpleuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l02780"></a><span class="lineno"> 2780</span> {</div><div class="line"><a name="l02781"></a><span class="lineno"> 2781</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b_a;</div><div class="line"><a name="l02782"></a><span class="lineno"> 2782</span> </div><div class="line"><a name="l02783"></a><span class="lineno"> 2783</span>  b_a = <a class="code" href="vec__int128__ppc_8h.html#a95d3546b2fd6840b46b031c15b4f60d3">vec_subcuq</a> (vrb, vra);</div><div class="line"><a name="l02784"></a><span class="lineno"> 2784</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#af74036e39e72e0f3c29706d30fbb96d1">vec_setb_cyq</a> (b_a);</div><div class="line"><a name="l02785"></a><span class="lineno"> 2785</span> }</div><div class="line"><a name="l02786"></a><span class="lineno"> 2786</span> </div><div class="line"><a name="l02787"></a><span class="lineno"> 2787</span> </div><div class="line"><a name="l02805"></a><span class="lineno"> 2805</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a></div><div class="line"><a name="l02806"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a82d83d78ff2330205a8d74741b34a1be"> 2806</a></span> <a class="code" href="vec__int128__ppc_8h.html#a82d83d78ff2330205a8d74741b34a1be">vec_cmpltsq</a> (<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vrb)</div><div class="line"><a name="l02807"></a><span class="lineno"> 2807</span> {</div><div class="line"><a name="l02808"></a><span class="lineno"> 2808</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> signbit = <a class="code" href="vec__common__ppc_8h.html#ae4520a89b9b5a292a3e647a6d5b712ad">CONST_VINT128_W</a>(0x80000000, 0, 0, 0);</div><div class="line"><a name="l02809"></a><span class="lineno"> 2809</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> _a, _b;</div><div class="line"><a name="l02810"></a><span class="lineno"> 2810</span> </div><div class="line"><a name="l02811"></a><span class="lineno"> 2811</span>  _a = vec_xor ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vra, signbit);</div><div class="line"><a name="l02812"></a><span class="lineno"> 2812</span>  _b = vec_xor ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb, signbit);</div><div class="line"><a name="l02813"></a><span class="lineno"> 2813</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#a7f9ebc5ad32b151a3e08136d51aad4dc">vec_cmpltuq</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) _a, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) _b);</div><div class="line"><a name="l02814"></a><span class="lineno"> 2814</span> }</div><div class="line"><a name="l02815"></a><span class="lineno"> 2815</span> </div><div class="line"><a name="l02840"></a><span class="lineno"> 2840</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a></div><div class="line"><a name="l02841"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a7f9ebc5ad32b151a3e08136d51aad4dc"> 2841</a></span> <a class="code" href="vec__int128__ppc_8h.html#a7f9ebc5ad32b151a3e08136d51aad4dc">vec_cmpltuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l02842"></a><span class="lineno"> 2842</span> {</div><div class="line"><a name="l02843"></a><span class="lineno"> 2843</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a_b;</div><div class="line"><a name="l02844"></a><span class="lineno"> 2844</span> </div><div class="line"><a name="l02845"></a><span class="lineno"> 2845</span>  a_b = <a class="code" href="vec__int128__ppc_8h.html#a95d3546b2fd6840b46b031c15b4f60d3">vec_subcuq</a> (vra, vrb);</div><div class="line"><a name="l02846"></a><span class="lineno"> 2846</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#a921647d5b67f0de5006ee32fb3d9c4f1">vec_setb_ncq</a> (a_b);</div><div class="line"><a name="l02847"></a><span class="lineno"> 2847</span> }</div><div class="line"><a name="l02848"></a><span class="lineno"> 2848</span> </div><div class="line"><a name="l02865"></a><span class="lineno"> 2865</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a></div><div class="line"><a name="l02866"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#ae2cdf052bf633951201589454e50f52e"> 2866</a></span> <a class="code" href="vec__int128__ppc_8h.html#ae2cdf052bf633951201589454e50f52e">vec_cmpnesq</a> (<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vrb)</div><div class="line"><a name="l02867"></a><span class="lineno"> 2867</span> {</div><div class="line"><a name="l02868"></a><span class="lineno"> 2868</span>  <span class="comment">/* vec_cmpneuq works for both signed and unsigned compares. */</span></div><div class="line"><a name="l02869"></a><span class="lineno"> 2869</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#a186d0b94bbc652e700ab4e1733b9524c">vec_cmpneuq</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vra, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vrb);</div><div class="line"><a name="l02870"></a><span class="lineno"> 2870</span> }</div><div class="line"><a name="l02871"></a><span class="lineno"> 2871</span> </div><div class="line"><a name="l02895"></a><span class="lineno"> 2895</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a></div><div class="line"><a name="l02896"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a186d0b94bbc652e700ab4e1733b9524c"> 2896</a></span> <a class="code" href="vec__int128__ppc_8h.html#a186d0b94bbc652e700ab4e1733b9524c">vec_cmpneuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l02897"></a><span class="lineno"> 2897</span> {</div><div class="line"><a name="l02898"></a><span class="lineno"> 2898</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l02899"></a><span class="lineno"> 2899</span>  __vector <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> equd, swapd;</div><div class="line"><a name="l02900"></a><span class="lineno"> 2900</span> </div><div class="line"><a name="l02901"></a><span class="lineno"> 2901</span>  equd = (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) <a class="code" href="vec__int64__ppc_8h.html#a560aef2acfdf1db1cf14848ec6cb0c1c">vec_cmpequd</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) vra,</div><div class="line"><a name="l02902"></a><span class="lineno"> 2902</span>  (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) vrb);</div><div class="line"><a name="l02903"></a><span class="lineno"> 2903</span>  swapd = <a class="code" href="vec__int64__ppc_8h.html#a42d2b39711c06106097ef869a20420b6">vec_swapd</a> (equd);</div><div class="line"><a name="l02904"></a><span class="lineno"> 2904</span>  <span class="keywordflow">return</span> (<a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a>) vec_nand (equd, swapd);</div><div class="line"><a name="l02905"></a><span class="lineno"> 2905</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l02906"></a><span class="lineno"> 2906</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> equw, equ1, equ2, equ3;</div><div class="line"><a name="l02907"></a><span class="lineno"> 2907</span> </div><div class="line"><a name="l02908"></a><span class="lineno"> 2908</span>  equw = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_cmpeq ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vra, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb);</div><div class="line"><a name="l02909"></a><span class="lineno"> 2909</span>  equ1 = vec_sld (equw, equw, 4);</div><div class="line"><a name="l02910"></a><span class="lineno"> 2910</span>  equ2 = vec_sld (equw, equw, 8);</div><div class="line"><a name="l02911"></a><span class="lineno"> 2911</span>  equ3 = vec_sld (equw, equw, 12);</div><div class="line"><a name="l02912"></a><span class="lineno"> 2912</span>  equw = vec_and (equw, equ1);</div><div class="line"><a name="l02913"></a><span class="lineno"> 2913</span>  equ2 = vec_and (equ2, equ3);</div><div class="line"><a name="l02914"></a><span class="lineno"> 2914</span>  <span class="comment">/* POWER7 does not have vnand nor xxlnand, so requires an extra vnor</span></div><div class="line"><a name="l02915"></a><span class="lineno"> 2915</span> <span class="comment"> after the final vand. */</span></div><div class="line"><a name="l02916"></a><span class="lineno"> 2916</span>  equw = vec_and (equw, equ2);</div><div class="line"><a name="l02917"></a><span class="lineno"> 2917</span>  <span class="keywordflow">return</span> (<a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a>) vec_nor (equw, equw);</div><div class="line"><a name="l02918"></a><span class="lineno"> 2918</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02919"></a><span class="lineno"> 2919</span> }</div><div class="line"><a name="l02920"></a><span class="lineno"> 2920</span> </div><div class="line"><a name="l02938"></a><span class="lineno"> 2938</span> <span class="keyword">static</span> <span class="keyword">inline</span></div><div class="line"><a name="l02939"></a><span class="lineno"> 2939</span> <span class="keywordtype">int</span></div><div class="line"><a name="l02940"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a391cc9e4b1221618840767c7487d3032"> 2940</a></span> <a class="code" href="vec__int128__ppc_8h.html#a391cc9e4b1221618840767c7487d3032">vec_cmpsq_all_eq</a> (<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vrb)</div><div class="line"><a name="l02941"></a><span class="lineno"> 2941</span> {</div><div class="line"><a name="l02942"></a><span class="lineno"> 2942</span>  <span class="keywordtype">int</span> result;</div><div class="line"><a name="l02943"></a><span class="lineno"> 2943</span> <span class="preprocessor">#if defined (_ARCH_PWR8) && (__GNUC__ >= 6) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)</span></div><div class="line"><a name="l02944"></a><span class="lineno"> 2944</span>  result = vec_all_eq((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>)vra, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>)vrb);</div><div class="line"><a name="l02945"></a><span class="lineno"> 2945</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l02946"></a><span class="lineno"> 2946</span>  result = vec_all_eq((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vra, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vrb);</div><div class="line"><a name="l02947"></a><span class="lineno"> 2947</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02948"></a><span class="lineno"> 2948</span>  <span class="keywordflow">return</span> (result);</div><div class="line"><a name="l02949"></a><span class="lineno"> 2949</span> }</div><div class="line"><a name="l02950"></a><span class="lineno"> 2950</span> </div><div class="line"><a name="l02968"></a><span class="lineno"> 2968</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span></div><div class="line"><a name="l02969"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a269401b65405524bb2d971bef595cb0d"> 2969</a></span> <a class="code" href="vec__int128__ppc_8h.html#a269401b65405524bb2d971bef595cb0d">vec_cmpsq_all_ge</a> (<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vrb)</div><div class="line"><a name="l02970"></a><span class="lineno"> 2970</span> {</div><div class="line"><a name="l02971"></a><span class="lineno"> 2971</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> carry128 = <a class="code" href="vec__common__ppc_8h.html#ae4520a89b9b5a292a3e647a6d5b712ad">CONST_VINT128_W</a> (0, 0, 0, 1);</div><div class="line"><a name="l02972"></a><span class="lineno"> 2972</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> signbit = <a class="code" href="vec__common__ppc_8h.html#ae4520a89b9b5a292a3e647a6d5b712ad">CONST_VINT128_W</a> (0x80000000, 0, 0, 0);</div><div class="line"><a name="l02973"></a><span class="lineno"> 2973</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a_b, _a, _b;</div><div class="line"><a name="l02974"></a><span class="lineno"> 2974</span> </div><div class="line"><a name="l02975"></a><span class="lineno"> 2975</span>  _a = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vec_xor ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vra, signbit);</div><div class="line"><a name="l02976"></a><span class="lineno"> 2976</span>  _b = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vec_xor ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb, signbit);</div><div class="line"><a name="l02977"></a><span class="lineno"> 2977</span> </div><div class="line"><a name="l02978"></a><span class="lineno"> 2978</span>  a_b = <a class="code" href="vec__int128__ppc_8h.html#a95d3546b2fd6840b46b031c15b4f60d3">vec_subcuq</a> (_a, _b);</div><div class="line"><a name="l02979"></a><span class="lineno"> 2979</span>  <span class="keywordflow">return</span> vec_all_eq((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a_b, carry128);</div><div class="line"><a name="l02980"></a><span class="lineno"> 2980</span> }</div><div class="line"><a name="l02981"></a><span class="lineno"> 2981</span> </div><div class="line"><a name="l02999"></a><span class="lineno"> 2999</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span></div><div class="line"><a name="l03000"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a62a38e9016e2d94a56f935ddded3830b"> 3000</a></span> <a class="code" href="vec__int128__ppc_8h.html#a62a38e9016e2d94a56f935ddded3830b">vec_cmpsq_all_gt</a> (<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vrb)</div><div class="line"><a name="l03001"></a><span class="lineno"> 3001</span> {</div><div class="line"><a name="l03002"></a><span class="lineno"> 3002</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> ncarry128 = <a class="code" href="vec__common__ppc_8h.html#ae4520a89b9b5a292a3e647a6d5b712ad">CONST_VINT128_W</a> (0, 0, 0, 0);</div><div class="line"><a name="l03003"></a><span class="lineno"> 3003</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> signbit = <a class="code" href="vec__common__ppc_8h.html#ae4520a89b9b5a292a3e647a6d5b712ad">CONST_VINT128_W</a> (0x80000000, 0, 0, 0);</div><div class="line"><a name="l03004"></a><span class="lineno"> 3004</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b_a, _a, _b;</div><div class="line"><a name="l03005"></a><span class="lineno"> 3005</span> </div><div class="line"><a name="l03006"></a><span class="lineno"> 3006</span>  _a = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vec_xor ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vra, signbit);</div><div class="line"><a name="l03007"></a><span class="lineno"> 3007</span>  _b = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vec_xor ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb, signbit);</div><div class="line"><a name="l03008"></a><span class="lineno"> 3008</span> </div><div class="line"><a name="l03009"></a><span class="lineno"> 3009</span>  b_a = <a class="code" href="vec__int128__ppc_8h.html#a95d3546b2fd6840b46b031c15b4f60d3">vec_subcuq</a> (_b, _a);</div><div class="line"><a name="l03010"></a><span class="lineno"> 3010</span>  <span class="keywordflow">return</span> vec_all_eq((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)b_a, ncarry128);</div><div class="line"><a name="l03011"></a><span class="lineno"> 3011</span> }</div><div class="line"><a name="l03012"></a><span class="lineno"> 3012</span> </div><div class="line"><a name="l03030"></a><span class="lineno"> 3030</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span></div><div class="line"><a name="l03031"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a88209b466e628a6a77c6ddab7a15b4c8"> 3031</a></span> <a class="code" href="vec__int128__ppc_8h.html#a88209b466e628a6a77c6ddab7a15b4c8">vec_cmpsq_all_le</a> (<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vrb)</div><div class="line"><a name="l03032"></a><span class="lineno"> 3032</span> {</div><div class="line"><a name="l03033"></a><span class="lineno"> 3033</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> carry128 = <a class="code" href="vec__common__ppc_8h.html#ae4520a89b9b5a292a3e647a6d5b712ad">CONST_VINT128_W</a> (0, 0, 0, 1);</div><div class="line"><a name="l03034"></a><span class="lineno"> 3034</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> signbit = <a class="code" href="vec__common__ppc_8h.html#ae4520a89b9b5a292a3e647a6d5b712ad">CONST_VINT128_W</a> (0x80000000, 0, 0, 0);</div><div class="line"><a name="l03035"></a><span class="lineno"> 3035</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b_a, _a, _b;</div><div class="line"><a name="l03036"></a><span class="lineno"> 3036</span> </div><div class="line"><a name="l03037"></a><span class="lineno"> 3037</span>  _a = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vec_xor ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vra, signbit);</div><div class="line"><a name="l03038"></a><span class="lineno"> 3038</span>  _b = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vec_xor ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb, signbit);</div><div class="line"><a name="l03039"></a><span class="lineno"> 3039</span> </div><div class="line"><a name="l03040"></a><span class="lineno"> 3040</span>  b_a = <a class="code" href="vec__int128__ppc_8h.html#a95d3546b2fd6840b46b031c15b4f60d3">vec_subcuq</a> (_b, _a);</div><div class="line"><a name="l03041"></a><span class="lineno"> 3041</span>  <span class="keywordflow">return</span> vec_all_eq((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)b_a, carry128);</div><div class="line"><a name="l03042"></a><span class="lineno"> 3042</span> }</div><div class="line"><a name="l03043"></a><span class="lineno"> 3043</span> </div><div class="line"><a name="l03061"></a><span class="lineno"> 3061</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span></div><div class="line"><a name="l03062"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a395dad1916a94a6cdb2b601565d7ffce"> 3062</a></span> <a class="code" href="vec__int128__ppc_8h.html#a395dad1916a94a6cdb2b601565d7ffce">vec_cmpsq_all_lt</a> (<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vrb)</div><div class="line"><a name="l03063"></a><span class="lineno"> 3063</span> {</div><div class="line"><a name="l03064"></a><span class="lineno"> 3064</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> ncarry128 = <a class="code" href="vec__common__ppc_8h.html#ae4520a89b9b5a292a3e647a6d5b712ad">CONST_VINT128_W</a> (0, 0, 0, 0);</div><div class="line"><a name="l03065"></a><span class="lineno"> 3065</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> signbit = <a class="code" href="vec__common__ppc_8h.html#ae4520a89b9b5a292a3e647a6d5b712ad">CONST_VINT128_W</a> (0x80000000, 0, 0, 0);</div><div class="line"><a name="l03066"></a><span class="lineno"> 3066</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a_b, _a, _b;</div><div class="line"><a name="l03067"></a><span class="lineno"> 3067</span> </div><div class="line"><a name="l03068"></a><span class="lineno"> 3068</span>  _a = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vec_xor ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vra, signbit);</div><div class="line"><a name="l03069"></a><span class="lineno"> 3069</span>  _b = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vec_xor ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb, signbit);</div><div class="line"><a name="l03070"></a><span class="lineno"> 3070</span> </div><div class="line"><a name="l03071"></a><span class="lineno"> 3071</span>  a_b = <a class="code" href="vec__int128__ppc_8h.html#a95d3546b2fd6840b46b031c15b4f60d3">vec_subcuq</a> (_a, _b);</div><div class="line"><a name="l03072"></a><span class="lineno"> 3072</span>  <span class="keywordflow">return</span> vec_all_eq((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a_b, ncarry128);</div><div class="line"><a name="l03073"></a><span class="lineno"> 3073</span> }</div><div class="line"><a name="l03074"></a><span class="lineno"> 3074</span> </div><div class="line"><a name="l03092"></a><span class="lineno"> 3092</span> <span class="keyword">static</span> <span class="keyword">inline</span></div><div class="line"><a name="l03093"></a><span class="lineno"> 3093</span> <span class="keywordtype">int</span></div><div class="line"><a name="l03094"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#af7587275a406a1e2437ef86c23e2875a"> 3094</a></span> <a class="code" href="vec__int128__ppc_8h.html#af7587275a406a1e2437ef86c23e2875a">vec_cmpsq_all_ne</a> (<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vrb)</div><div class="line"><a name="l03095"></a><span class="lineno"> 3095</span> {</div><div class="line"><a name="l03096"></a><span class="lineno"> 3096</span>  <span class="keywordtype">int</span> result;</div><div class="line"><a name="l03097"></a><span class="lineno"> 3097</span> <span class="preprocessor">#if defined (_ARCH_PWR8) && (__GNUC__ >= 6) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)</span></div><div class="line"><a name="l03098"></a><span class="lineno"> 3098</span>  result = !vec_all_eq ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) vra, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) vrb);</div><div class="line"><a name="l03099"></a><span class="lineno"> 3099</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l03100"></a><span class="lineno"> 3100</span>  result = !vec_all_eq ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vra, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb);</div><div class="line"><a name="l03101"></a><span class="lineno"> 3101</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l03102"></a><span class="lineno"> 3102</span>  <span class="keywordflow">return</span> (result);</div><div class="line"><a name="l03103"></a><span class="lineno"> 3103</span> }</div><div class="line"><a name="l03104"></a><span class="lineno"> 3104</span> </div><div class="line"><a name="l03122"></a><span class="lineno"> 3122</span> <span class="keyword">static</span> <span class="keyword">inline</span></div><div class="line"><a name="l03123"></a><span class="lineno"> 3123</span> <span class="keywordtype">int</span></div><div class="line"><a name="l03124"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a2c2c01f3aa165fedba47600f87067768"> 3124</a></span> <a class="code" href="vec__int128__ppc_8h.html#a2c2c01f3aa165fedba47600f87067768">vec_cmpuq_all_eq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l03125"></a><span class="lineno"> 3125</span> {</div><div class="line"><a name="l03126"></a><span class="lineno"> 3126</span>  <span class="keywordtype">int</span> result;</div><div class="line"><a name="l03127"></a><span class="lineno"> 3127</span> <span class="preprocessor">#if defined (_ARCH_PWR8) && (__GNUC__ >= 6) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)</span></div><div class="line"><a name="l03128"></a><span class="lineno"> 3128</span>  result = vec_all_eq ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) vra, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) vrb);</div><div class="line"><a name="l03129"></a><span class="lineno"> 3129</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l03130"></a><span class="lineno"> 3130</span>  result = vec_all_eq ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vra, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb);</div><div class="line"><a name="l03131"></a><span class="lineno"> 3131</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l03132"></a><span class="lineno"> 3132</span>  <span class="keywordflow">return</span> (result);</div><div class="line"><a name="l03133"></a><span class="lineno"> 3133</span> }</div><div class="line"><a name="l03134"></a><span class="lineno"> 3134</span> </div><div class="line"><a name="l03152"></a><span class="lineno"> 3152</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span></div><div class="line"><a name="l03153"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#af8f06b2c3d612a7cfdeb3bb883c59e19"> 3153</a></span> <a class="code" href="vec__int128__ppc_8h.html#af8f06b2c3d612a7cfdeb3bb883c59e19">vec_cmpuq_all_ge</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l03154"></a><span class="lineno"> 3154</span> {</div><div class="line"><a name="l03155"></a><span class="lineno"> 3155</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> carry128 = <a class="code" href="vec__common__ppc_8h.html#ae4520a89b9b5a292a3e647a6d5b712ad">CONST_VINT128_W</a> (0, 0, 0, 1);</div><div class="line"><a name="l03156"></a><span class="lineno"> 3156</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a_b;</div><div class="line"><a name="l03157"></a><span class="lineno"> 3157</span> </div><div class="line"><a name="l03158"></a><span class="lineno"> 3158</span>  a_b = <a class="code" href="vec__int128__ppc_8h.html#a95d3546b2fd6840b46b031c15b4f60d3">vec_subcuq</a> (vra, vrb);</div><div class="line"><a name="l03159"></a><span class="lineno"> 3159</span>  <span class="keywordflow">return</span> vec_all_eq ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) a_b, carry128);</div><div class="line"><a name="l03160"></a><span class="lineno"> 3160</span> }</div><div class="line"><a name="l03161"></a><span class="lineno"> 3161</span> </div><div class="line"><a name="l03179"></a><span class="lineno"> 3179</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span></div><div class="line"><a name="l03180"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#ac93dc5ed8bb3501470cf70c5cb5796a9"> 3180</a></span> <a class="code" href="vec__int128__ppc_8h.html#ac93dc5ed8bb3501470cf70c5cb5796a9">vec_cmpuq_all_gt</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l03181"></a><span class="lineno"> 3181</span> {</div><div class="line"><a name="l03182"></a><span class="lineno"> 3182</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> ncarry128 = <a class="code" href="vec__common__ppc_8h.html#ae4520a89b9b5a292a3e647a6d5b712ad">CONST_VINT128_W</a> (0, 0, 0, 0);</div><div class="line"><a name="l03183"></a><span class="lineno"> 3183</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b_a;</div><div class="line"><a name="l03184"></a><span class="lineno"> 3184</span> </div><div class="line"><a name="l03185"></a><span class="lineno"> 3185</span>  b_a = <a class="code" href="vec__int128__ppc_8h.html#a95d3546b2fd6840b46b031c15b4f60d3">vec_subcuq</a> (vrb, vra);</div><div class="line"><a name="l03186"></a><span class="lineno"> 3186</span>  <span class="keywordflow">return</span> vec_all_eq ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b_a, ncarry128);</div><div class="line"><a name="l03187"></a><span class="lineno"> 3187</span> }</div><div class="line"><a name="l03188"></a><span class="lineno"> 3188</span> </div><div class="line"><a name="l03206"></a><span class="lineno"> 3206</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span></div><div class="line"><a name="l03207"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a2b7f505ebca731aa6fdc7433f82c0c6d"> 3207</a></span> <a class="code" href="vec__int128__ppc_8h.html#a2b7f505ebca731aa6fdc7433f82c0c6d">vec_cmpuq_all_le</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l03208"></a><span class="lineno"> 3208</span> {</div><div class="line"><a name="l03209"></a><span class="lineno"> 3209</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> carry128 = <a class="code" href="vec__common__ppc_8h.html#ae4520a89b9b5a292a3e647a6d5b712ad">CONST_VINT128_W</a> (0, 0, 0, 1);</div><div class="line"><a name="l03210"></a><span class="lineno"> 3210</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b_a;</div><div class="line"><a name="l03211"></a><span class="lineno"> 3211</span> </div><div class="line"><a name="l03212"></a><span class="lineno"> 3212</span>  b_a = <a class="code" href="vec__int128__ppc_8h.html#a95d3546b2fd6840b46b031c15b4f60d3">vec_subcuq</a> (vrb, vra);</div><div class="line"><a name="l03213"></a><span class="lineno"> 3213</span>  <span class="keywordflow">return</span> vec_all_eq ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b_a, carry128);</div><div class="line"><a name="l03214"></a><span class="lineno"> 3214</span> }</div><div class="line"><a name="l03215"></a><span class="lineno"> 3215</span> </div><div class="line"><a name="l03233"></a><span class="lineno"> 3233</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span></div><div class="line"><a name="l03234"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a31ddb6149475e80f4a1d38277317d980"> 3234</a></span> <a class="code" href="vec__int128__ppc_8h.html#a31ddb6149475e80f4a1d38277317d980">vec_cmpuq_all_lt</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l03235"></a><span class="lineno"> 3235</span> {</div><div class="line"><a name="l03236"></a><span class="lineno"> 3236</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> ncarry128 = <a class="code" href="vec__common__ppc_8h.html#ae4520a89b9b5a292a3e647a6d5b712ad">CONST_VINT128_W</a> (0, 0, 0, 0);</div><div class="line"><a name="l03237"></a><span class="lineno"> 3237</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a_b;</div><div class="line"><a name="l03238"></a><span class="lineno"> 3238</span> </div><div class="line"><a name="l03239"></a><span class="lineno"> 3239</span>  a_b = <a class="code" href="vec__int128__ppc_8h.html#a95d3546b2fd6840b46b031c15b4f60d3">vec_subcuq</a> (vra, vrb);</div><div class="line"><a name="l03240"></a><span class="lineno"> 3240</span>  <span class="keywordflow">return</span> vec_all_eq ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) a_b, ncarry128);</div><div class="line"><a name="l03241"></a><span class="lineno"> 3241</span> }</div><div class="line"><a name="l03242"></a><span class="lineno"> 3242</span> </div><div class="line"><a name="l03260"></a><span class="lineno"> 3260</span> <span class="keyword">static</span> <span class="keyword">inline</span></div><div class="line"><a name="l03261"></a><span class="lineno"> 3261</span> <span class="keywordtype">int</span></div><div class="line"><a name="l03262"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a1799f860ba79e698c66b171392afde01"> 3262</a></span> <a class="code" href="vec__int128__ppc_8h.html#a1799f860ba79e698c66b171392afde01">vec_cmpuq_all_ne</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l03263"></a><span class="lineno"> 3263</span> {</div><div class="line"><a name="l03264"></a><span class="lineno"> 3264</span>  <span class="keywordtype">int</span> result;</div><div class="line"><a name="l03265"></a><span class="lineno"> 3265</span> <span class="preprocessor">#if defined (_ARCH_PWR8) && (__GNUC__ >= 6) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)</span></div><div class="line"><a name="l03266"></a><span class="lineno"> 3266</span>  result = !vec_all_eq ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) vra, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) vrb);</div><div class="line"><a name="l03267"></a><span class="lineno"> 3267</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l03268"></a><span class="lineno"> 3268</span>  result = !vec_all_eq ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vra, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb);</div><div class="line"><a name="l03269"></a><span class="lineno"> 3269</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l03270"></a><span class="lineno"> 3270</span>  <span class="keywordflow">return</span> (result);</div><div class="line"><a name="l03271"></a><span class="lineno"> 3271</span> }</div><div class="line"><a name="l03272"></a><span class="lineno"> 3272</span> </div><div class="line"><a name="l03288"></a><span class="lineno"> 3288</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l03289"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a5f250dfab2a4aee0fd247a1d0217237b"> 3289</a></span> <a class="code" href="vec__int128__ppc_8h.html#a5f250dfab2a4aee0fd247a1d0217237b">vec_cmul10ecuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> *cout, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> cin)</div><div class="line"><a name="l03290"></a><span class="lineno"> 3290</span> {</div><div class="line"><a name="l03291"></a><span class="lineno"> 3291</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t;</div><div class="line"><a name="l03292"></a><span class="lineno"> 3292</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t_carry;</div><div class="line"><a name="l03293"></a><span class="lineno"> 3293</span> <span class="preprocessor">#ifdef _ARCH_PWR9</span></div><div class="line"><a name="l03294"></a><span class="lineno"> 3294</span>  __asm__(</div><div class="line"><a name="l03295"></a><span class="lineno"> 3295</span>  <span class="stringliteral">"vmul10ecuq %0,%2,%3;\n"</span></div><div class="line"><a name="l03296"></a><span class="lineno"> 3296</span>  <span class="stringliteral">"vmul10euq %1,%2,%3;\n"</span></div><div class="line"><a name="l03297"></a><span class="lineno"> 3297</span>  : <span class="stringliteral">"=&v"</span> (t_carry),</div><div class="line"><a name="l03298"></a><span class="lineno"> 3298</span>  <span class="stringliteral">"=v"</span> (t)</div><div class="line"><a name="l03299"></a><span class="lineno"> 3299</span>  : <span class="stringliteral">"v"</span> (a),</div><div class="line"><a name="l03300"></a><span class="lineno"> 3300</span>  <span class="stringliteral">"v"</span> (cin)</div><div class="line"><a name="l03301"></a><span class="lineno"> 3301</span>  : );</div><div class="line"><a name="l03302"></a><span class="lineno"> 3302</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l03303"></a><span class="lineno"> 3303</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> ts = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a;</div><div class="line"><a name="l03304"></a><span class="lineno"> 3304</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> tc;</div><div class="line"><a name="l03305"></a><span class="lineno"> 3305</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> t10;</div><div class="line"><a name="l03306"></a><span class="lineno"> 3306</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t_odd, t_even, t_high;</div><div class="line"><a name="l03307"></a><span class="lineno"> 3307</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> z = { 0, 0, 0, 0 };</div><div class="line"><a name="l03308"></a><span class="lineno"> 3308</span>  t10 = vec_splat_u16(10);</div><div class="line"><a name="l03309"></a><span class="lineno"> 3309</span> <span class="preprocessor">#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__</span></div><div class="line"><a name="l03310"></a><span class="lineno"> 3310</span>  t_even = vec_vmulouh (ts, t10);</div><div class="line"><a name="l03311"></a><span class="lineno"> 3311</span>  t_odd = vec_vmuleuh (ts, t10);</div><div class="line"><a name="l03312"></a><span class="lineno"> 3312</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l03313"></a><span class="lineno"> 3313</span>  t_even = vec_vmuleuh (ts, t10);</div><div class="line"><a name="l03314"></a><span class="lineno"> 3314</span>  t_odd = vec_vmulouh (ts, t10);</div><div class="line"><a name="l03315"></a><span class="lineno"> 3315</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l03316"></a><span class="lineno"> 3316</span>  <span class="comment">/* Shift t_even left 16-bits (right 112-bits) for the partial carry. */</span></div><div class="line"><a name="l03317"></a><span class="lineno"> 3317</span>  t_high = vec_sld (z, t_even, 2);</div><div class="line"><a name="l03318"></a><span class="lineno"> 3318</span>  <span class="comment">/* Shift cin left 112 bits. */</span></div><div class="line"><a name="l03319"></a><span class="lineno"> 3319</span>  tc = vec_sld ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) cin, z, 14);</div><div class="line"><a name="l03320"></a><span class="lineno"> 3320</span>  <span class="comment">/* Shift t_even left 16 bits, merging the carry into the low bits. */</span></div><div class="line"><a name="l03321"></a><span class="lineno"> 3321</span>  t_even = vec_sld (t_even, tc, 2);</div><div class="line"><a name="l03322"></a><span class="lineno"> 3322</span>  <span class="comment">/* then add the even/odd sub-products to generate the final product */</span></div><div class="line"><a name="l03323"></a><span class="lineno"> 3323</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l03324"></a><span class="lineno"> 3324</span>  <span class="comment">/* Any compiler that supports ARCH_PWR8 should support these builtins. */</span></div><div class="line"><a name="l03325"></a><span class="lineno"> 3325</span>  t_carry = t_high; <span class="comment">/* there is not carry into high */</span></div><div class="line"><a name="l03326"></a><span class="lineno"> 3326</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_vadduqm ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l03327"></a><span class="lineno"> 3327</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l03328"></a><span class="lineno"> 3328</span>  t_carry = t_high; <span class="comment">/* there is no carry into high */</span></div><div class="line"><a name="l03329"></a><span class="lineno"> 3329</span>  <span class="comment">/* Use pveclib adduqm implementation for pre _ARCH_PWR8. */</span></div><div class="line"><a name="l03330"></a><span class="lineno"> 3330</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l03331"></a><span class="lineno"> 3331</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l03332"></a><span class="lineno"> 3332</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l03333"></a><span class="lineno"> 3333</span>  *cout = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_carry;</div><div class="line"><a name="l03334"></a><span class="lineno"> 3334</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t);</div><div class="line"><a name="l03335"></a><span class="lineno"> 3335</span> }</div><div class="line"><a name="l03336"></a><span class="lineno"> 3336</span> </div><div class="line"><a name="l03351"></a><span class="lineno"> 3351</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l03352"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a9449c746cad42f0cd9e2fe4560364e18"> 3352</a></span> <a class="code" href="vec__int128__ppc_8h.html#a9449c746cad42f0cd9e2fe4560364e18">vec_cmul10cuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> *cout, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a)</div><div class="line"><a name="l03353"></a><span class="lineno"> 3353</span> {</div><div class="line"><a name="l03354"></a><span class="lineno"> 3354</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t;</div><div class="line"><a name="l03355"></a><span class="lineno"> 3355</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t_carry;</div><div class="line"><a name="l03356"></a><span class="lineno"> 3356</span> <span class="preprocessor">#ifdef _ARCH_PWR9</span></div><div class="line"><a name="l03357"></a><span class="lineno"> 3357</span>  __asm__(</div><div class="line"><a name="l03358"></a><span class="lineno"> 3358</span>  <span class="stringliteral">"vmul10cuq %0,%2;\n"</span></div><div class="line"><a name="l03359"></a><span class="lineno"> 3359</span>  <span class="stringliteral">"vmul10uq %1,%2;\n"</span></div><div class="line"><a name="l03360"></a><span class="lineno"> 3360</span>  : <span class="stringliteral">"=&v"</span> (t_carry),</div><div class="line"><a name="l03361"></a><span class="lineno"> 3361</span>  <span class="stringliteral">"=v"</span> (t)</div><div class="line"><a name="l03362"></a><span class="lineno"> 3362</span>  : <span class="stringliteral">"v"</span> (a)</div><div class="line"><a name="l03363"></a><span class="lineno"> 3363</span>  : );</div><div class="line"><a name="l03364"></a><span class="lineno"> 3364</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l03365"></a><span class="lineno"> 3365</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> ts = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a;</div><div class="line"><a name="l03366"></a><span class="lineno"> 3366</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> t10;</div><div class="line"><a name="l03367"></a><span class="lineno"> 3367</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t_odd, t_even, t_high;</div><div class="line"><a name="l03368"></a><span class="lineno"> 3368</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> z = { 0, 0, 0, 0 };</div><div class="line"><a name="l03369"></a><span class="lineno"> 3369</span>  t10 = vec_splat_u16(10);</div><div class="line"><a name="l03370"></a><span class="lineno"> 3370</span> <span class="preprocessor">#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__</span></div><div class="line"><a name="l03371"></a><span class="lineno"> 3371</span>  t_even = vec_vmulouh (ts, t10);</div><div class="line"><a name="l03372"></a><span class="lineno"> 3372</span>  t_odd = vec_vmuleuh (ts, t10);</div><div class="line"><a name="l03373"></a><span class="lineno"> 3373</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l03374"></a><span class="lineno"> 3374</span>  t_even = vec_vmuleuh(ts, t10);</div><div class="line"><a name="l03375"></a><span class="lineno"> 3375</span>  t_odd = vec_vmulouh(ts, t10);</div><div class="line"><a name="l03376"></a><span class="lineno"> 3376</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l03377"></a><span class="lineno"> 3377</span>  <span class="comment">/* Shift t_even left 16-bits (right 112-bits) for the partial carry. */</span></div><div class="line"><a name="l03378"></a><span class="lineno"> 3378</span>  t_high = vec_sld (z, t_even, 2);</div><div class="line"><a name="l03379"></a><span class="lineno"> 3379</span>  <span class="comment">/* Shift t_even left 16 bits to align for lower 128-bits. */</span></div><div class="line"><a name="l03380"></a><span class="lineno"> 3380</span>  t_even = vec_sld (t_even, z, 2);</div><div class="line"><a name="l03381"></a><span class="lineno"> 3381</span>  <span class="comment">/* then add the even/odd sub-products to generate the final product */</span></div><div class="line"><a name="l03382"></a><span class="lineno"> 3382</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l03383"></a><span class="lineno"> 3383</span>  <span class="comment">/* Any compiler that supports ARCH_PWR8 should support these builtins. */</span></div><div class="line"><a name="l03384"></a><span class="lineno"> 3384</span>  t_carry = t_high; <span class="comment">/* there is no carry into high */</span></div><div class="line"><a name="l03385"></a><span class="lineno"> 3385</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_vadduqm ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l03386"></a><span class="lineno"> 3386</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l03387"></a><span class="lineno"> 3387</span>  t_carry = t_high; <span class="comment">/* there is no carry into high */</span></div><div class="line"><a name="l03388"></a><span class="lineno"> 3388</span>  <span class="comment">/* Use pveclib adduqm implementation for pre _ARCH_PWR8. */</span></div><div class="line"><a name="l03389"></a><span class="lineno"> 3389</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l03390"></a><span class="lineno"> 3390</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l03391"></a><span class="lineno"> 3391</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l03392"></a><span class="lineno"> 3392</span>  *cout = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_carry;</div><div class="line"><a name="l03393"></a><span class="lineno"> 3393</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t);</div><div class="line"><a name="l03394"></a><span class="lineno"> 3394</span> }</div><div class="line"><a name="l03395"></a><span class="lineno"> 3395</span> </div><div class="line"><a name="l03414"></a><span class="lineno"> 3414</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a></div><div class="line"><a name="l03415"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#ae320909aca43d55b8be1069f38544ee8"> 3415</a></span> <a class="code" href="vec__int128__ppc_8h.html#ae320909aca43d55b8be1069f38544ee8">vec_divsq_10e31</a> (<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vra)</div><div class="line"><a name="l03416"></a><span class="lineno"> 3416</span> {</div><div class="line"><a name="l03417"></a><span class="lineno"> 3417</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> zero = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) { (__int128) 0 };</div><div class="line"><a name="l03418"></a><span class="lineno"> 3418</span>  <span class="comment">/* ten32 = +100000000000000000000000000000000UQ */</span></div><div class="line"><a name="l03419"></a><span class="lineno"> 3419</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> ten31 = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>)</div><div class="line"><a name="l03420"></a><span class="lineno"> 3420</span>  { (__int128) 1000000000000000UL * (__int128) 10000000000000000UL };</div><div class="line"><a name="l03421"></a><span class="lineno"> 3421</span>  <span class="comment">/* Magic numbers for multiplicative inverse to divide by 10**31</span></div><div class="line"><a name="l03422"></a><span class="lineno"> 3422</span> <span class="comment"> are 4804950418589725908363185682083061167, corrective add,</span></div><div class="line"><a name="l03423"></a><span class="lineno"> 3423</span> <span class="comment"> and shift right 107 bits. */</span></div><div class="line"><a name="l03424"></a><span class="lineno"> 3424</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> mul_invs_ten31 = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) <a class="code" href="vec__common__ppc_8h.html#a9ed8c282b57705c960542ed869de3325">CONST_VINT128_DW</a>(</div><div class="line"><a name="l03425"></a><span class="lineno"> 3425</span>  0x039d66589687f9e9UL, 0x01d59f290ee19dafUL);</div><div class="line"><a name="l03426"></a><span class="lineno"> 3426</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> shift_ten31 = 103;</div><div class="line"><a name="l03427"></a><span class="lineno"> 3427</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> result, t, q, uvra;</div><div class="line"><a name="l03428"></a><span class="lineno"> 3428</span>  <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a> negbool;</div><div class="line"><a name="l03429"></a><span class="lineno"> 3429</span> </div><div class="line"><a name="l03430"></a><span class="lineno"> 3430</span>  negbool = <a class="code" href="vec__int128__ppc_8h.html#af21d01bb19f0ea8605d8c37035837802">vec_setb_sq</a> (vra);</div><div class="line"><a name="l03431"></a><span class="lineno"> 3431</span>  uvra = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vec_sel ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vra,</div><div class="line"><a name="l03432"></a><span class="lineno"> 3432</span>  (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a6bafb410404d4f1e10a99263b57d1df0">vec_subuqm</a> (zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vra),</div><div class="line"><a name="l03433"></a><span class="lineno"> 3433</span>  (<a class="code" href="vec__common__ppc_8h.html#aafeddf1e79ef817440ff01fafb0e00ca">vb32_t</a>) negbool);</div><div class="line"><a name="l03434"></a><span class="lineno"> 3434</span> </div><div class="line"><a name="l03435"></a><span class="lineno"> 3435</span>  <span class="keywordflow">if</span> (<a class="code" href="vec__int128__ppc_8h.html#af8f06b2c3d612a7cfdeb3bb883c59e19">vec_cmpuq_all_ge</a> (uvra, ten31))</div><div class="line"><a name="l03436"></a><span class="lineno"> 3436</span>  {</div><div class="line"><a name="l03437"></a><span class="lineno"> 3437</span>  q = <a class="code" href="vec__int128__ppc_8h.html#ad6be9c8f02e43c39a659d6bbc9c3a2d2">vec_mulhuq</a> (uvra, mul_invs_ten31);</div><div class="line"><a name="l03438"></a><span class="lineno"> 3438</span>  <span class="comment">// Need corrective add but want to avoid carry & double quad shift</span></div><div class="line"><a name="l03439"></a><span class="lineno"> 3439</span>  <span class="comment">// The following avoids the carry and less instructions</span></div><div class="line"><a name="l03440"></a><span class="lineno"> 3440</span>  t = <a class="code" href="vec__int128__ppc_8h.html#a6bafb410404d4f1e10a99263b57d1df0">vec_subuqm</a> (uvra, q);</div><div class="line"><a name="l03441"></a><span class="lineno"> 3441</span>  t = <a class="code" href="vec__int128__ppc_8h.html#ac05c640c6a42770cb95466ff4a2d903c">vec_srqi</a> (t, 1);</div><div class="line"><a name="l03442"></a><span class="lineno"> 3442</span>  t = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (t, q);</div><div class="line"><a name="l03443"></a><span class="lineno"> 3443</span>  result = <a class="code" href="vec__int128__ppc_8h.html#ac05c640c6a42770cb95466ff4a2d903c">vec_srqi</a> (t, shift_ten31-1);</div><div class="line"><a name="l03444"></a><span class="lineno"> 3444</span>  result = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vec_sel ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) result,</div><div class="line"><a name="l03445"></a><span class="lineno"> 3445</span>  (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a6bafb410404d4f1e10a99263b57d1df0">vec_subuqm</a> (zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) result),</div><div class="line"><a name="l03446"></a><span class="lineno"> 3446</span>  (<a class="code" href="vec__common__ppc_8h.html#aafeddf1e79ef817440ff01fafb0e00ca">vb32_t</a>) negbool);</div><div class="line"><a name="l03447"></a><span class="lineno"> 3447</span>  }</div><div class="line"><a name="l03448"></a><span class="lineno"> 3448</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l03449"></a><span class="lineno"> 3449</span>  result = zero;</div><div class="line"><a name="l03450"></a><span class="lineno"> 3450</span> </div><div class="line"><a name="l03451"></a><span class="lineno"> 3451</span>  <span class="keywordflow">return</span> (<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a>) result;</div><div class="line"><a name="l03452"></a><span class="lineno"> 3452</span> }</div><div class="line"><a name="l03453"></a><span class="lineno"> 3453</span> </div><div class="line"><a name="l03478"></a><span class="lineno"> 3478</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l03479"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#afa2db6d665f837f96c746d88027e9e19"> 3479</a></span> <a class="code" href="vec__int128__ppc_8h.html#afa2db6d665f837f96c746d88027e9e19">vec_divudq_10e31</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> *qh, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l03480"></a><span class="lineno"> 3480</span> {</div><div class="line"><a name="l03481"></a><span class="lineno"> 3481</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> ten31 = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>)</div><div class="line"><a name="l03482"></a><span class="lineno"> 3482</span>  { (__int128) 1000000000000000UL * (__int128) 10000000000000000UL };</div><div class="line"><a name="l03483"></a><span class="lineno"> 3483</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> zero = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) { (__int128) 0UL };</div><div class="line"><a name="l03484"></a><span class="lineno"> 3484</span>  <span class="comment">/* Magic numbers for multiplicative inverse to divide by 10**31</span></div><div class="line"><a name="l03485"></a><span class="lineno"> 3485</span> <span class="comment"> are 4804950418589725908363185682083061167, corrective add,</span></div><div class="line"><a name="l03486"></a><span class="lineno"> 3486</span> <span class="comment"> and shift right 103 bits. */</span></div><div class="line"><a name="l03487"></a><span class="lineno"> 3487</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> mul_invs_ten31 = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) <a class="code" href="vec__common__ppc_8h.html#a9ed8c282b57705c960542ed869de3325">CONST_VINT128_DW</a>(</div><div class="line"><a name="l03488"></a><span class="lineno"> 3488</span>  0x039d66589687f9e9UL, 0x01d59f290ee19dafUL);</div><div class="line"><a name="l03489"></a><span class="lineno"> 3489</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> shift_ten31 = 103;</div><div class="line"><a name="l03490"></a><span class="lineno"> 3490</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> result, r2, t, q, q1, q2, c;</div><div class="line"><a name="l03491"></a><span class="lineno"> 3491</span> </div><div class="line"><a name="l03492"></a><span class="lineno"> 3492</span>  <span class="keywordflow">if</span> (<a class="code" href="vec__int128__ppc_8h.html#a1799f860ba79e698c66b171392afde01">vec_cmpuq_all_ne</a> (vra, zero) || <a class="code" href="vec__int128__ppc_8h.html#af8f06b2c3d612a7cfdeb3bb883c59e19">vec_cmpuq_all_ge</a> (vrb, ten31))</div><div class="line"><a name="l03493"></a><span class="lineno"> 3493</span>  {</div><div class="line"><a name="l03494"></a><span class="lineno"> 3494</span>  <span class="comment">// Multiply high [vra||vrb] * mul_invs_ten31</span></div><div class="line"><a name="l03495"></a><span class="lineno"> 3495</span>  q = <a class="code" href="vec__int128__ppc_8h.html#ad6be9c8f02e43c39a659d6bbc9c3a2d2">vec_mulhuq</a> (vrb, mul_invs_ten31);</div><div class="line"><a name="l03496"></a><span class="lineno"> 3496</span>  q1 = <a class="code" href="vec__int128__ppc_8h.html#aee5c5b2998ef105b4c6f39739748ffa8">vec_muludq</a> (&t, vra, mul_invs_ten31);</div><div class="line"><a name="l03497"></a><span class="lineno"> 3497</span>  c = <a class="code" href="vec__int128__ppc_8h.html#ad7aaadba249ce46c4c94f78df1020da3">vec_addcuq</a> (q1, q);</div><div class="line"><a name="l03498"></a><span class="lineno"> 3498</span>  q = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (q1, q);</div><div class="line"><a name="l03499"></a><span class="lineno"> 3499</span>  q1 = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (t, c);</div><div class="line"><a name="l03500"></a><span class="lineno"> 3500</span>  <span class="comment">// corrective add [q2||q1||q] = [q1||q] + [vra||vrb]</span></div><div class="line"><a name="l03501"></a><span class="lineno"> 3501</span>  c = <a class="code" href="vec__int128__ppc_8h.html#ad7aaadba249ce46c4c94f78df1020da3">vec_addcuq</a> (vrb, q);</div><div class="line"><a name="l03502"></a><span class="lineno"> 3502</span>  q = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (vrb, q);</div><div class="line"><a name="l03503"></a><span class="lineno"> 3503</span>  <span class="comment">// q2 is the carry-out from the corrective add</span></div><div class="line"><a name="l03504"></a><span class="lineno"> 3504</span>  q2 = <a class="code" href="vec__int128__ppc_8h.html#af18b98d2d73f1afbc439e1407c78f305">vec_addecuq</a> (q1, vra, c);</div><div class="line"><a name="l03505"></a><span class="lineno"> 3505</span>  q1 = <a class="code" href="vec__int128__ppc_8h.html#a44e63f70b182d60fe03b43a80647451a">vec_addeuqm</a> (q1, vra, c);</div><div class="line"><a name="l03506"></a><span class="lineno"> 3506</span>  <span class="comment">// shift 384-bits (including the carry) right 107 bits</span></div><div class="line"><a name="l03507"></a><span class="lineno"> 3507</span>  <span class="comment">// Using shift left double quadword shift by (128-107)-bits</span></div><div class="line"><a name="l03508"></a><span class="lineno"> 3508</span>  r2 = <a class="code" href="vec__int128__ppc_8h.html#aaa33904ec4de42f54cceab34adb303c5">vec_sldqi</a> (q2, q1, (128 - shift_ten31));</div><div class="line"><a name="l03509"></a><span class="lineno"> 3509</span>  result = <a class="code" href="vec__int128__ppc_8h.html#aaa33904ec4de42f54cceab34adb303c5">vec_sldqi</a> (q1, q, (128 - shift_ten31));</div><div class="line"><a name="l03510"></a><span class="lineno"> 3510</span>  }</div><div class="line"><a name="l03511"></a><span class="lineno"> 3511</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l03512"></a><span class="lineno"> 3512</span>  {</div><div class="line"><a name="l03513"></a><span class="lineno"> 3513</span>  <span class="comment">// Dividend less than divisor then return zero quotient</span></div><div class="line"><a name="l03514"></a><span class="lineno"> 3514</span>  r2 = zero;</div><div class="line"><a name="l03515"></a><span class="lineno"> 3515</span>  result = zero;</div><div class="line"><a name="l03516"></a><span class="lineno"> 3516</span>  }</div><div class="line"><a name="l03517"></a><span class="lineno"> 3517</span> </div><div class="line"><a name="l03518"></a><span class="lineno"> 3518</span>  <span class="comment">// return 256-bit quotient</span></div><div class="line"><a name="l03519"></a><span class="lineno"> 3519</span>  *qh = r2;</div><div class="line"><a name="l03520"></a><span class="lineno"> 3520</span>  <span class="keywordflow">return</span> result;</div><div class="line"><a name="l03521"></a><span class="lineno"> 3521</span> }</div><div class="line"><a name="l03522"></a><span class="lineno"> 3522</span> </div><div class="line"><a name="l03523"></a><span class="lineno"> 3523</span> </div><div class="line"><a name="l03548"></a><span class="lineno"> 3548</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l03549"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a917acd42e775f4bb323ba2104c52d7cb"> 3549</a></span> <a class="code" href="vec__int128__ppc_8h.html#a917acd42e775f4bb323ba2104c52d7cb">vec_divudq_10e32</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> *qh, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l03550"></a><span class="lineno"> 3550</span> {</div><div class="line"><a name="l03551"></a><span class="lineno"> 3551</span>  <span class="comment">/* ten32 = +100000000000000000000000000000000UQ */</span></div><div class="line"><a name="l03552"></a><span class="lineno"> 3552</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> ten32 = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>)</div><div class="line"><a name="l03553"></a><span class="lineno"> 3553</span>  { (__int128) 10000000000000000UL * (__int128) 10000000000000000UL };</div><div class="line"><a name="l03554"></a><span class="lineno"> 3554</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> zero = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) { (__int128) 0UL };</div><div class="line"><a name="l03555"></a><span class="lineno"> 3555</span>  <span class="comment">/* Magic numbers for multiplicative inverse to divide by 10**32</span></div><div class="line"><a name="l03556"></a><span class="lineno"> 3556</span> <span class="comment"> are 211857340822306639531405861550393824741, corrective add,</span></div><div class="line"><a name="l03557"></a><span class="lineno"> 3557</span> <span class="comment"> and shift right 107 bits. */</span></div><div class="line"><a name="l03558"></a><span class="lineno"> 3558</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> mul_invs_ten32 = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) <a class="code" href="vec__common__ppc_8h.html#a9ed8c282b57705c960542ed869de3325">CONST_VINT128_DW</a>(</div><div class="line"><a name="l03559"></a><span class="lineno"> 3559</span>  0x9f623d5a8a732974UL, 0xcfbc31db4b0295e5UL);</div><div class="line"><a name="l03560"></a><span class="lineno"> 3560</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> shift_ten32 = 107;</div><div class="line"><a name="l03561"></a><span class="lineno"> 3561</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> result, r2, t, q, q1, q2, c;</div><div class="line"><a name="l03562"></a><span class="lineno"> 3562</span> </div><div class="line"><a name="l03563"></a><span class="lineno"> 3563</span>  <span class="keywordflow">if</span> (<a class="code" href="vec__int128__ppc_8h.html#a1799f860ba79e698c66b171392afde01">vec_cmpuq_all_ne</a> (vra, zero) || <a class="code" href="vec__int128__ppc_8h.html#af8f06b2c3d612a7cfdeb3bb883c59e19">vec_cmpuq_all_ge</a> (vrb, ten32))</div><div class="line"><a name="l03564"></a><span class="lineno"> 3564</span>  {</div><div class="line"><a name="l03565"></a><span class="lineno"> 3565</span>  <span class="comment">// Multiply high [vra||vrb] * mul_invs_ten31</span></div><div class="line"><a name="l03566"></a><span class="lineno"> 3566</span>  q = <a class="code" href="vec__int128__ppc_8h.html#ad6be9c8f02e43c39a659d6bbc9c3a2d2">vec_mulhuq</a> (vrb, mul_invs_ten32);</div><div class="line"><a name="l03567"></a><span class="lineno"> 3567</span>  q1 = <a class="code" href="vec__int128__ppc_8h.html#aee5c5b2998ef105b4c6f39739748ffa8">vec_muludq</a> (&t, vra, mul_invs_ten32);</div><div class="line"><a name="l03568"></a><span class="lineno"> 3568</span>  c = <a class="code" href="vec__int128__ppc_8h.html#ad7aaadba249ce46c4c94f78df1020da3">vec_addcuq</a> (q1, q);</div><div class="line"><a name="l03569"></a><span class="lineno"> 3569</span>  q = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (q1, q);</div><div class="line"><a name="l03570"></a><span class="lineno"> 3570</span>  q1 = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (t, c);</div><div class="line"><a name="l03571"></a><span class="lineno"> 3571</span>  <span class="comment">// corrective add [q2||q1||q] = [q1||q] + [vra||vrb]</span></div><div class="line"><a name="l03572"></a><span class="lineno"> 3572</span>  c = <a class="code" href="vec__int128__ppc_8h.html#ad7aaadba249ce46c4c94f78df1020da3">vec_addcuq</a> (vrb, q);</div><div class="line"><a name="l03573"></a><span class="lineno"> 3573</span>  q = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (vrb, q);</div><div class="line"><a name="l03574"></a><span class="lineno"> 3574</span>  <span class="comment">// q2 is the carry-out from the corrective add</span></div><div class="line"><a name="l03575"></a><span class="lineno"> 3575</span>  q2 = <a class="code" href="vec__int128__ppc_8h.html#af18b98d2d73f1afbc439e1407c78f305">vec_addecuq</a> (q1, vra, c);</div><div class="line"><a name="l03576"></a><span class="lineno"> 3576</span>  q1 = <a class="code" href="vec__int128__ppc_8h.html#a44e63f70b182d60fe03b43a80647451a">vec_addeuqm</a> (q1, vra, c);</div><div class="line"><a name="l03577"></a><span class="lineno"> 3577</span>  <span class="comment">// shift 384-bits (including the carry) right 107 bits</span></div><div class="line"><a name="l03578"></a><span class="lineno"> 3578</span>  <span class="comment">// Using shift left double quadword shift by (128-107)-bits</span></div><div class="line"><a name="l03579"></a><span class="lineno"> 3579</span>  r2 = <a class="code" href="vec__int128__ppc_8h.html#aaa33904ec4de42f54cceab34adb303c5">vec_sldqi</a> (q2, q1, (128 - shift_ten32));</div><div class="line"><a name="l03580"></a><span class="lineno"> 3580</span>  result = <a class="code" href="vec__int128__ppc_8h.html#aaa33904ec4de42f54cceab34adb303c5">vec_sldqi</a> (q1, q, (128 - shift_ten32));</div><div class="line"><a name="l03581"></a><span class="lineno"> 3581</span>  }</div><div class="line"><a name="l03582"></a><span class="lineno"> 3582</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l03583"></a><span class="lineno"> 3583</span>  {</div><div class="line"><a name="l03584"></a><span class="lineno"> 3584</span>  <span class="comment">// Dividend less than divisor then return zero quotient</span></div><div class="line"><a name="l03585"></a><span class="lineno"> 3585</span>  r2 = zero;</div><div class="line"><a name="l03586"></a><span class="lineno"> 3586</span>  result = zero;</div><div class="line"><a name="l03587"></a><span class="lineno"> 3587</span>  }</div><div class="line"><a name="l03588"></a><span class="lineno"> 3588</span> </div><div class="line"><a name="l03589"></a><span class="lineno"> 3589</span>  <span class="comment">// return 256-bit quotient</span></div><div class="line"><a name="l03590"></a><span class="lineno"> 3590</span>  *qh = r2;</div><div class="line"><a name="l03591"></a><span class="lineno"> 3591</span>  <span class="keywordflow">return</span> result;</div><div class="line"><a name="l03592"></a><span class="lineno"> 3592</span> }</div><div class="line"><a name="l03593"></a><span class="lineno"> 3593</span> </div><div class="line"><a name="l03612"></a><span class="lineno"> 3612</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l03613"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a9a6a39212f8a8b9ebf20e0117e1e1e88"> 3613</a></span> <a class="code" href="vec__int128__ppc_8h.html#a9a6a39212f8a8b9ebf20e0117e1e1e88">vec_divuq_10e31</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra)</div><div class="line"><a name="l03614"></a><span class="lineno"> 3614</span> {</div><div class="line"><a name="l03615"></a><span class="lineno"> 3615</span>  <span class="comment">/* ten32 = +100000000000000000000000000000000UQ */</span></div><div class="line"><a name="l03616"></a><span class="lineno"> 3616</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> ten31 = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>)</div><div class="line"><a name="l03617"></a><span class="lineno"> 3617</span>  { (__int128) 1000000000000000UL * (__int128) 10000000000000000UL };</div><div class="line"><a name="l03618"></a><span class="lineno"> 3618</span>  <span class="comment">/* Magic numbers for multiplicative inverse to divide by 10**31</span></div><div class="line"><a name="l03619"></a><span class="lineno"> 3619</span> <span class="comment"> are 4804950418589725908363185682083061167, corrective add,</span></div><div class="line"><a name="l03620"></a><span class="lineno"> 3620</span> <span class="comment"> and shift right 103 bits. */</span></div><div class="line"><a name="l03621"></a><span class="lineno"> 3621</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> mul_invs_ten31 = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) <a class="code" href="vec__common__ppc_8h.html#a9ed8c282b57705c960542ed869de3325">CONST_VINT128_DW</a>(</div><div class="line"><a name="l03622"></a><span class="lineno"> 3622</span>  0x039d66589687f9e9UL, 0x01d59f290ee19dafUL);</div><div class="line"><a name="l03623"></a><span class="lineno"> 3623</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> shift_ten31 = 103;</div><div class="line"><a name="l03624"></a><span class="lineno"> 3624</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> result, t, q;</div><div class="line"><a name="l03625"></a><span class="lineno"> 3625</span> </div><div class="line"><a name="l03626"></a><span class="lineno"> 3626</span>  <span class="keywordflow">if</span> (<a class="code" href="vec__int128__ppc_8h.html#af8f06b2c3d612a7cfdeb3bb883c59e19">vec_cmpuq_all_ge</a> (vra, ten31))</div><div class="line"><a name="l03627"></a><span class="lineno"> 3627</span>  {</div><div class="line"><a name="l03628"></a><span class="lineno"> 3628</span>  q = <a class="code" href="vec__int128__ppc_8h.html#ad6be9c8f02e43c39a659d6bbc9c3a2d2">vec_mulhuq</a> (vra, mul_invs_ten31);</div><div class="line"><a name="l03629"></a><span class="lineno"> 3629</span>  <span class="comment">// Need corrective add but want to avoid carry & double quad shift</span></div><div class="line"><a name="l03630"></a><span class="lineno"> 3630</span>  <span class="comment">// The following avoids the carry and less instructions</span></div><div class="line"><a name="l03631"></a><span class="lineno"> 3631</span>  t = <a class="code" href="vec__int128__ppc_8h.html#a6bafb410404d4f1e10a99263b57d1df0">vec_subuqm</a> (vra, q);</div><div class="line"><a name="l03632"></a><span class="lineno"> 3632</span>  t = <a class="code" href="vec__int128__ppc_8h.html#ac05c640c6a42770cb95466ff4a2d903c">vec_srqi</a> (t, 1);</div><div class="line"><a name="l03633"></a><span class="lineno"> 3633</span>  t = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (t, q);</div><div class="line"><a name="l03634"></a><span class="lineno"> 3634</span>  result = <a class="code" href="vec__int128__ppc_8h.html#ac05c640c6a42770cb95466ff4a2d903c">vec_srqi</a> (t, shift_ten31-1);</div><div class="line"><a name="l03635"></a><span class="lineno"> 3635</span>  }</div><div class="line"><a name="l03636"></a><span class="lineno"> 3636</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l03637"></a><span class="lineno"> 3637</span>  result = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) { (__int128) 0 };</div><div class="line"><a name="l03638"></a><span class="lineno"> 3638</span> </div><div class="line"><a name="l03639"></a><span class="lineno"> 3639</span>  <span class="keywordflow">return</span> result;</div><div class="line"><a name="l03640"></a><span class="lineno"> 3640</span> }</div><div class="line"><a name="l03641"></a><span class="lineno"> 3641</span> </div><div class="line"><a name="l03660"></a><span class="lineno"> 3660</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l03661"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#ae2b45341cc9cc918198bb69da0552098"> 3661</a></span> <a class="code" href="vec__int128__ppc_8h.html#ae2b45341cc9cc918198bb69da0552098">vec_divuq_10e32</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra)</div><div class="line"><a name="l03662"></a><span class="lineno"> 3662</span> {</div><div class="line"><a name="l03663"></a><span class="lineno"> 3663</span>  <span class="comment">/* ten32 = +100000000000000000000000000000000UQ */</span></div><div class="line"><a name="l03664"></a><span class="lineno"> 3664</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> ten32 = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>)</div><div class="line"><a name="l03665"></a><span class="lineno"> 3665</span>  { (__int128) 10000000000000000UL * (__int128) 10000000000000000UL };</div><div class="line"><a name="l03666"></a><span class="lineno"> 3666</span>  <span class="comment">/* Magic numbers for multiplicative inverse to divide by 10**32</span></div><div class="line"><a name="l03667"></a><span class="lineno"> 3667</span> <span class="comment"> are 211857340822306639531405861550393824741, corrective add,</span></div><div class="line"><a name="l03668"></a><span class="lineno"> 3668</span> <span class="comment"> and shift right 107 bits. */</span></div><div class="line"><a name="l03669"></a><span class="lineno"> 3669</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> mul_invs_ten32 = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) <a class="code" href="vec__common__ppc_8h.html#a9ed8c282b57705c960542ed869de3325">CONST_VINT128_DW</a>(</div><div class="line"><a name="l03670"></a><span class="lineno"> 3670</span>  0x9f623d5a8a732974UL, 0xcfbc31db4b0295e5UL);</div><div class="line"><a name="l03671"></a><span class="lineno"> 3671</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> shift_ten32 = 107;</div><div class="line"><a name="l03672"></a><span class="lineno"> 3672</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> result, t, q;</div><div class="line"><a name="l03673"></a><span class="lineno"> 3673</span> </div><div class="line"><a name="l03674"></a><span class="lineno"> 3674</span>  <span class="keywordflow">if</span> (<a class="code" href="vec__int128__ppc_8h.html#af8f06b2c3d612a7cfdeb3bb883c59e19">vec_cmpuq_all_ge</a> (vra, ten32))</div><div class="line"><a name="l03675"></a><span class="lineno"> 3675</span>  {</div><div class="line"><a name="l03676"></a><span class="lineno"> 3676</span>  q = <a class="code" href="vec__int128__ppc_8h.html#ad6be9c8f02e43c39a659d6bbc9c3a2d2">vec_mulhuq</a> (vra, mul_invs_ten32);</div><div class="line"><a name="l03677"></a><span class="lineno"> 3677</span>  <span class="comment">// Need corrective add but want to avoid carry & double quad shift</span></div><div class="line"><a name="l03678"></a><span class="lineno"> 3678</span>  <span class="comment">// The following avoids the carry and less instructions</span></div><div class="line"><a name="l03679"></a><span class="lineno"> 3679</span>  t = <a class="code" href="vec__int128__ppc_8h.html#a6bafb410404d4f1e10a99263b57d1df0">vec_subuqm</a> (vra, q);</div><div class="line"><a name="l03680"></a><span class="lineno"> 3680</span>  t = <a class="code" href="vec__int128__ppc_8h.html#ac05c640c6a42770cb95466ff4a2d903c">vec_srqi</a> (t, 1);</div><div class="line"><a name="l03681"></a><span class="lineno"> 3681</span>  t = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (t, q);</div><div class="line"><a name="l03682"></a><span class="lineno"> 3682</span>  result = <a class="code" href="vec__int128__ppc_8h.html#ac05c640c6a42770cb95466ff4a2d903c">vec_srqi</a> (t, shift_ten32-1);</div><div class="line"><a name="l03683"></a><span class="lineno"> 3683</span>  }</div><div class="line"><a name="l03684"></a><span class="lineno"> 3684</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l03685"></a><span class="lineno"> 3685</span>  result = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) { (__int128) 0 };</div><div class="line"><a name="l03686"></a><span class="lineno"> 3686</span> </div><div class="line"><a name="l03687"></a><span class="lineno"> 3687</span>  <span class="keywordflow">return</span> result;</div><div class="line"><a name="l03688"></a><span class="lineno"> 3688</span> }</div><div class="line"><a name="l03689"></a><span class="lineno"> 3689</span> </div><div class="line"><a name="l03704"></a><span class="lineno"> 3704</span> <span class="keyword">static</span> <span class="keyword">inline</span></div><div class="line"><a name="l03705"></a><span class="lineno"> 3705</span> <a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a></div><div class="line"><a name="l03706"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#acef64f9ffe8af5a8f08b6bdd0a9e218f"> 3706</a></span> <a class="code" href="vec__int128__ppc_8h.html#acef64f9ffe8af5a8f08b6bdd0a9e218f">vec_maxsq</a>(<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vrb)</div><div class="line"><a name="l03707"></a><span class="lineno"> 3707</span> {</div><div class="line"><a name="l03708"></a><span class="lineno"> 3708</span>  <a class="code" href="vec__common__ppc_8h.html#aafeddf1e79ef817440ff01fafb0e00ca">vb32_t</a> maxmask;</div><div class="line"><a name="l03709"></a><span class="lineno"> 3709</span> </div><div class="line"><a name="l03710"></a><span class="lineno"> 3710</span>  maxmask = (<a class="code" href="vec__common__ppc_8h.html#aafeddf1e79ef817440ff01fafb0e00ca">vb32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a45ce55b0cba15cddb6764a900922d768">vec_cmpgtsq</a> ( vra, vrb );</div><div class="line"><a name="l03711"></a><span class="lineno"> 3711</span>  <span class="keywordflow">return</span> (<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a>) vec_sel ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vra, maxmask);</div><div class="line"><a name="l03712"></a><span class="lineno"> 3712</span> }</div><div class="line"><a name="l03713"></a><span class="lineno"> 3713</span> </div><div class="line"><a name="l03728"></a><span class="lineno"> 3728</span> <span class="keyword">static</span> <span class="keyword">inline</span></div><div class="line"><a name="l03729"></a><span class="lineno"> 3729</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l03730"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#adb02d0572ecc17eca0de6d4f0d9aa302"> 3730</a></span> <a class="code" href="vec__int128__ppc_8h.html#adb02d0572ecc17eca0de6d4f0d9aa302">vec_maxuq</a>(<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l03731"></a><span class="lineno"> 3731</span> {</div><div class="line"><a name="l03732"></a><span class="lineno"> 3732</span>  <a class="code" href="vec__common__ppc_8h.html#aafeddf1e79ef817440ff01fafb0e00ca">vb32_t</a> maxmask;</div><div class="line"><a name="l03733"></a><span class="lineno"> 3733</span> </div><div class="line"><a name="l03734"></a><span class="lineno"> 3734</span>  maxmask = (<a class="code" href="vec__common__ppc_8h.html#aafeddf1e79ef817440ff01fafb0e00ca">vb32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#ad4ce43dcbc14fb34623d5ece8073b86e">vec_cmpgtuq</a> ( vra, vrb );</div><div class="line"><a name="l03735"></a><span class="lineno"> 3735</span>  <span class="keywordflow">return</span> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vec_sel ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vra, maxmask);</div><div class="line"><a name="l03736"></a><span class="lineno"> 3736</span> }</div><div class="line"><a name="l03737"></a><span class="lineno"> 3737</span> </div><div class="line"><a name="l03752"></a><span class="lineno"> 3752</span> <span class="keyword">static</span> <span class="keyword">inline</span></div><div class="line"><a name="l03753"></a><span class="lineno"> 3753</span> <a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a></div><div class="line"><a name="l03754"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#ab435fd182688a615fb88b6578321839d"> 3754</a></span> <a class="code" href="vec__int128__ppc_8h.html#ab435fd182688a615fb88b6578321839d">vec_minsq</a>(<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vrb)</div><div class="line"><a name="l03755"></a><span class="lineno"> 3755</span> {</div><div class="line"><a name="l03756"></a><span class="lineno"> 3756</span>  <a class="code" href="vec__common__ppc_8h.html#aafeddf1e79ef817440ff01fafb0e00ca">vb32_t</a> minmask;</div><div class="line"><a name="l03757"></a><span class="lineno"> 3757</span> </div><div class="line"><a name="l03758"></a><span class="lineno"> 3758</span>  minmask = (<a class="code" href="vec__common__ppc_8h.html#aafeddf1e79ef817440ff01fafb0e00ca">vb32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a45ce55b0cba15cddb6764a900922d768">vec_cmpgtsq</a> ( vrb, vra );</div><div class="line"><a name="l03759"></a><span class="lineno"> 3759</span>  <span class="keywordflow">return</span> (<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a>) vec_sel ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vra, minmask);</div><div class="line"><a name="l03760"></a><span class="lineno"> 3760</span> }</div><div class="line"><a name="l03761"></a><span class="lineno"> 3761</span> </div><div class="line"><a name="l03776"></a><span class="lineno"> 3776</span> <span class="keyword">static</span> <span class="keyword">inline</span></div><div class="line"><a name="l03777"></a><span class="lineno"> 3777</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l03778"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#ad0fa6a9987d3bd9593d1780b1c28c390"> 3778</a></span> <a class="code" href="vec__int128__ppc_8h.html#ad0fa6a9987d3bd9593d1780b1c28c390">vec_minuq</a>(<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l03779"></a><span class="lineno"> 3779</span> {</div><div class="line"><a name="l03780"></a><span class="lineno"> 3780</span>  <a class="code" href="vec__common__ppc_8h.html#aafeddf1e79ef817440ff01fafb0e00ca">vb32_t</a> minmask;</div><div class="line"><a name="l03781"></a><span class="lineno"> 3781</span> </div><div class="line"><a name="l03782"></a><span class="lineno"> 3782</span>  minmask = (<a class="code" href="vec__common__ppc_8h.html#aafeddf1e79ef817440ff01fafb0e00ca">vb32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#ad4ce43dcbc14fb34623d5ece8073b86e">vec_cmpgtuq</a> ( vrb, vra );</div><div class="line"><a name="l03783"></a><span class="lineno"> 3783</span>  <span class="keywordflow">return</span> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vec_sel ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vra, minmask);</div><div class="line"><a name="l03784"></a><span class="lineno"> 3784</span> }</div><div class="line"><a name="l03785"></a><span class="lineno"> 3785</span> </div><div class="line"><a name="l03799"></a><span class="lineno"> 3799</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a></div><div class="line"><a name="l03800"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#aab5db88e4608d4a7408df9042adce86c"> 3800</a></span> <a class="code" href="vec__int128__ppc_8h.html#aab5db88e4608d4a7408df9042adce86c">vec_modsq_10e31</a> (<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> q)</div><div class="line"><a name="l03801"></a><span class="lineno"> 3801</span> {</div><div class="line"><a name="l03802"></a><span class="lineno"> 3802</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> zero = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) { (__int128) 0 };</div><div class="line"><a name="l03803"></a><span class="lineno"> 3803</span>  <span class="comment">/* ten32 = +100000000000000000000000000000000UQ */</span></div><div class="line"><a name="l03804"></a><span class="lineno"> 3804</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> ten31 = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>)</div><div class="line"><a name="l03805"></a><span class="lineno"> 3805</span>  { (__int128) 1000000000000000UL * (__int128) 10000000000000000UL };</div><div class="line"><a name="l03806"></a><span class="lineno"> 3806</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> result, t;</div><div class="line"><a name="l03807"></a><span class="lineno"> 3807</span> </div><div class="line"><a name="l03808"></a><span class="lineno"> 3808</span>  <span class="comment">// multiply low and subtract modulo are the same for signed/unsigned</span></div><div class="line"><a name="l03809"></a><span class="lineno"> 3809</span>  <span class="comment">// But now easier to compare q for zero than signed compare to vra</span></div><div class="line"><a name="l03810"></a><span class="lineno"> 3810</span>  <span class="keywordflow">if</span> (<a class="code" href="vec__int128__ppc_8h.html#a1799f860ba79e698c66b171392afde01">vec_cmpuq_all_ne</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vra, zero))</div><div class="line"><a name="l03811"></a><span class="lineno"> 3811</span>  {</div><div class="line"><a name="l03812"></a><span class="lineno"> 3812</span>  t = <a class="code" href="vec__int128__ppc_8h.html#a9aaaf0e4c2705be1e0e8e925b09c52de">vec_mulluq</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) q, ten31);</div><div class="line"><a name="l03813"></a><span class="lineno"> 3813</span>  result = <a class="code" href="vec__int128__ppc_8h.html#a6bafb410404d4f1e10a99263b57d1df0">vec_subuqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vra, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t);</div><div class="line"><a name="l03814"></a><span class="lineno"> 3814</span>  }</div><div class="line"><a name="l03815"></a><span class="lineno"> 3815</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l03816"></a><span class="lineno"> 3816</span>  result = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vra;</div><div class="line"><a name="l03817"></a><span class="lineno"> 3817</span> </div><div class="line"><a name="l03818"></a><span class="lineno"> 3818</span>  <span class="keywordflow">return</span> (<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a>) result;</div><div class="line"><a name="l03819"></a><span class="lineno"> 3819</span> }</div><div class="line"><a name="l03820"></a><span class="lineno"> 3820</span> </div><div class="line"><a name="l03841"></a><span class="lineno"> 3841</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l03842"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a31a893a75e42f5f6c4dfe793678fea59"> 3842</a></span> <a class="code" href="vec__int128__ppc_8h.html#a31a893a75e42f5f6c4dfe793678fea59">vec_modudq_10e31</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> *ql)</div><div class="line"><a name="l03843"></a><span class="lineno"> 3843</span> {</div><div class="line"><a name="l03844"></a><span class="lineno"> 3844</span>  <span class="comment">/* ten31 = +100000000000000000000000000000000UQ */</span></div><div class="line"><a name="l03845"></a><span class="lineno"> 3845</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> ten31 = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>)</div><div class="line"><a name="l03846"></a><span class="lineno"> 3846</span>  { (__int128) 1000000000000000UL * (__int128) 10000000000000000UL };</div><div class="line"><a name="l03847"></a><span class="lineno"> 3847</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> zero = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) { (__int128) 0UL };</div><div class="line"><a name="l03848"></a><span class="lineno"> 3848</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> minus_one = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) { (__int128) -1L };</div><div class="line"><a name="l03849"></a><span class="lineno"> 3849</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> result, t, th, c;</div><div class="line"><a name="l03850"></a><span class="lineno"> 3850</span> </div><div class="line"><a name="l03851"></a><span class="lineno"> 3851</span>  <span class="keywordflow">if</span> (<a class="code" href="vec__int128__ppc_8h.html#a1799f860ba79e698c66b171392afde01">vec_cmpuq_all_ne</a> (vra, zero) || <a class="code" href="vec__int128__ppc_8h.html#af8f06b2c3d612a7cfdeb3bb883c59e19">vec_cmpuq_all_ge</a> (vrb, ten31))</div><div class="line"><a name="l03852"></a><span class="lineno"> 3852</span>  {</div><div class="line"><a name="l03853"></a><span class="lineno"> 3853</span>  t = <a class="code" href="vec__int128__ppc_8h.html#aee5c5b2998ef105b4c6f39739748ffa8">vec_muludq</a> (&th, *ql, ten31);</div><div class="line"><a name="l03854"></a><span class="lineno"> 3854</span>  c = <a class="code" href="vec__int128__ppc_8h.html#a95d3546b2fd6840b46b031c15b4f60d3">vec_subcuq</a> (vrb, t);</div><div class="line"><a name="l03855"></a><span class="lineno"> 3855</span>  t = <a class="code" href="vec__int128__ppc_8h.html#a6bafb410404d4f1e10a99263b57d1df0">vec_subuqm</a> (vrb, t);</div><div class="line"><a name="l03856"></a><span class="lineno"> 3856</span>  th = <a class="code" href="vec__int128__ppc_8h.html#a2e40f9bf5df59b725cbfb6738c765202">vec_subeuqm</a> (vra, th, c);</div><div class="line"><a name="l03857"></a><span class="lineno"> 3857</span>  <span class="comment">// The remainder should be less than the divisor</span></div><div class="line"><a name="l03858"></a><span class="lineno"> 3858</span>  <span class="keywordflow">if</span> (<a class="code" href="vec__int128__ppc_8h.html#a1799f860ba79e698c66b171392afde01">vec_cmpuq_all_ne</a> (th, zero) && <a class="code" href="vec__int128__ppc_8h.html#af8f06b2c3d612a7cfdeb3bb883c59e19">vec_cmpuq_all_ge</a> (t, ten31))</div><div class="line"><a name="l03859"></a><span class="lineno"> 3859</span>  {</div><div class="line"><a name="l03860"></a><span class="lineno"> 3860</span>  <span class="comment">// If not the estimated quotient is off by 1</span></div><div class="line"><a name="l03861"></a><span class="lineno"> 3861</span>  *ql = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (*ql, minus_one);</div><div class="line"><a name="l03862"></a><span class="lineno"> 3862</span>  <span class="comment">// And the remainder is negative, so add the divisor</span></div><div class="line"><a name="l03863"></a><span class="lineno"> 3863</span>  t = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (t, ten31);</div><div class="line"><a name="l03864"></a><span class="lineno"> 3864</span>  }</div><div class="line"><a name="l03865"></a><span class="lineno"> 3865</span>  result = t;</div><div class="line"><a name="l03866"></a><span class="lineno"> 3866</span>  }</div><div class="line"><a name="l03867"></a><span class="lineno"> 3867</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l03868"></a><span class="lineno"> 3868</span>  result = vrb;</div><div class="line"><a name="l03869"></a><span class="lineno"> 3869</span> </div><div class="line"><a name="l03870"></a><span class="lineno"> 3870</span>  <span class="keywordflow">return</span> result;</div><div class="line"><a name="l03871"></a><span class="lineno"> 3871</span> }</div><div class="line"><a name="l03872"></a><span class="lineno"> 3872</span> </div><div class="line"><a name="l03873"></a><span class="lineno"> 3873</span> </div><div class="line"><a name="l03894"></a><span class="lineno"> 3894</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l03895"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a2ccbd77900956c01a51b88e672e593c6"> 3895</a></span> <a class="code" href="vec__int128__ppc_8h.html#a2ccbd77900956c01a51b88e672e593c6">vec_modudq_10e32</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> *ql)</div><div class="line"><a name="l03896"></a><span class="lineno"> 3896</span> {</div><div class="line"><a name="l03897"></a><span class="lineno"> 3897</span>  <span class="comment">/* ten32 = +100000000000000000000000000000000UQ */</span></div><div class="line"><a name="l03898"></a><span class="lineno"> 3898</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> ten32 = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>)</div><div class="line"><a name="l03899"></a><span class="lineno"> 3899</span>  { (__int128) 10000000000000000UL * (__int128) 10000000000000000UL };</div><div class="line"><a name="l03900"></a><span class="lineno"> 3900</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> zero = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) { (__int128) 0UL };</div><div class="line"><a name="l03901"></a><span class="lineno"> 3901</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> minus_one = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) { (__int128) -1L };</div><div class="line"><a name="l03902"></a><span class="lineno"> 3902</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> result, t, th, c;</div><div class="line"><a name="l03903"></a><span class="lineno"> 3903</span> </div><div class="line"><a name="l03904"></a><span class="lineno"> 3904</span>  <span class="keywordflow">if</span> (<a class="code" href="vec__int128__ppc_8h.html#a1799f860ba79e698c66b171392afde01">vec_cmpuq_all_ne</a> (vra, zero) || <a class="code" href="vec__int128__ppc_8h.html#af8f06b2c3d612a7cfdeb3bb883c59e19">vec_cmpuq_all_ge</a> (vrb, ten32))</div><div class="line"><a name="l03905"></a><span class="lineno"> 3905</span>  {</div><div class="line"><a name="l03906"></a><span class="lineno"> 3906</span>  t = <a class="code" href="vec__int128__ppc_8h.html#aee5c5b2998ef105b4c6f39739748ffa8">vec_muludq</a> (&th, *ql, ten32);</div><div class="line"><a name="l03907"></a><span class="lineno"> 3907</span>  c = <a class="code" href="vec__int128__ppc_8h.html#a95d3546b2fd6840b46b031c15b4f60d3">vec_subcuq</a> (vrb, t);</div><div class="line"><a name="l03908"></a><span class="lineno"> 3908</span>  t = <a class="code" href="vec__int128__ppc_8h.html#a6bafb410404d4f1e10a99263b57d1df0">vec_subuqm</a> (vrb, t);</div><div class="line"><a name="l03909"></a><span class="lineno"> 3909</span>  th = <a class="code" href="vec__int128__ppc_8h.html#a2e40f9bf5df59b725cbfb6738c765202">vec_subeuqm</a> (vra, th, c);</div><div class="line"><a name="l03910"></a><span class="lineno"> 3910</span>  <span class="comment">// The remainder should be less than the divisor</span></div><div class="line"><a name="l03911"></a><span class="lineno"> 3911</span>  <span class="keywordflow">if</span> (<a class="code" href="vec__int128__ppc_8h.html#a1799f860ba79e698c66b171392afde01">vec_cmpuq_all_ne</a> (th, zero) && <a class="code" href="vec__int128__ppc_8h.html#af8f06b2c3d612a7cfdeb3bb883c59e19">vec_cmpuq_all_ge</a> (t, ten32))</div><div class="line"><a name="l03912"></a><span class="lineno"> 3912</span>  {</div><div class="line"><a name="l03913"></a><span class="lineno"> 3913</span>  <span class="comment">// If not the estimated quotient is off by 1</span></div><div class="line"><a name="l03914"></a><span class="lineno"> 3914</span>  *ql = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (*ql, minus_one);</div><div class="line"><a name="l03915"></a><span class="lineno"> 3915</span>  <span class="comment">// And the remainder is negative, so add the divisor</span></div><div class="line"><a name="l03916"></a><span class="lineno"> 3916</span>  t = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (t, ten32);</div><div class="line"><a name="l03917"></a><span class="lineno"> 3917</span>  }</div><div class="line"><a name="l03918"></a><span class="lineno"> 3918</span>  result = t;</div><div class="line"><a name="l03919"></a><span class="lineno"> 3919</span>  }</div><div class="line"><a name="l03920"></a><span class="lineno"> 3920</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l03921"></a><span class="lineno"> 3921</span>  result = vrb;</div><div class="line"><a name="l03922"></a><span class="lineno"> 3922</span> </div><div class="line"><a name="l03923"></a><span class="lineno"> 3923</span>  <span class="keywordflow">return</span> result;</div><div class="line"><a name="l03924"></a><span class="lineno"> 3924</span> }</div><div class="line"><a name="l03925"></a><span class="lineno"> 3925</span> </div><div class="line"><a name="l03939"></a><span class="lineno"> 3939</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l03940"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#af4b3b91f7e80522d8a8c0c171e077b99"> 3940</a></span> <a class="code" href="vec__int128__ppc_8h.html#af4b3b91f7e80522d8a8c0c171e077b99">vec_moduq_10e31</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> q)</div><div class="line"><a name="l03941"></a><span class="lineno"> 3941</span> {</div><div class="line"><a name="l03942"></a><span class="lineno"> 3942</span>  <span class="comment">/* ten31 = +100000000000000000000000000000000UQ */</span></div><div class="line"><a name="l03943"></a><span class="lineno"> 3943</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> ten31 = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>)</div><div class="line"><a name="l03944"></a><span class="lineno"> 3944</span>  { (__int128) 1000000000000000UL</div><div class="line"><a name="l03945"></a><span class="lineno"> 3945</span>  * (__int128) 10000000000000000UL };</div><div class="line"><a name="l03946"></a><span class="lineno"> 3946</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> result, t;</div><div class="line"><a name="l03947"></a><span class="lineno"> 3947</span> </div><div class="line"><a name="l03948"></a><span class="lineno"> 3948</span>  <span class="keywordflow">if</span> (<a class="code" href="vec__int128__ppc_8h.html#af8f06b2c3d612a7cfdeb3bb883c59e19">vec_cmpuq_all_ge</a> (vra, ten31))</div><div class="line"><a name="l03949"></a><span class="lineno"> 3949</span>  {</div><div class="line"><a name="l03950"></a><span class="lineno"> 3950</span>  t = <a class="code" href="vec__int128__ppc_8h.html#a9aaaf0e4c2705be1e0e8e925b09c52de">vec_mulluq</a> (q, ten31);</div><div class="line"><a name="l03951"></a><span class="lineno"> 3951</span>  result = <a class="code" href="vec__int128__ppc_8h.html#a6bafb410404d4f1e10a99263b57d1df0">vec_subuqm</a> (vra, t);</div><div class="line"><a name="l03952"></a><span class="lineno"> 3952</span>  }</div><div class="line"><a name="l03953"></a><span class="lineno"> 3953</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l03954"></a><span class="lineno"> 3954</span>  result = vra;</div><div class="line"><a name="l03955"></a><span class="lineno"> 3955</span> </div><div class="line"><a name="l03956"></a><span class="lineno"> 3956</span>  <span class="keywordflow">return</span> result;</div><div class="line"><a name="l03957"></a><span class="lineno"> 3957</span> }</div><div class="line"><a name="l03958"></a><span class="lineno"> 3958</span> </div><div class="line"><a name="l03972"></a><span class="lineno"> 3972</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l03973"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#aff4f1d8a707289d2271eafad4aeb1e82"> 3973</a></span> <a class="code" href="vec__int128__ppc_8h.html#aff4f1d8a707289d2271eafad4aeb1e82">vec_moduq_10e32</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> q)</div><div class="line"><a name="l03974"></a><span class="lineno"> 3974</span> {</div><div class="line"><a name="l03975"></a><span class="lineno"> 3975</span>  <span class="comment">/* ten32 = +100000000000000000000000000000000UQ */</span></div><div class="line"><a name="l03976"></a><span class="lineno"> 3976</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> ten32 = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>)</div><div class="line"><a name="l03977"></a><span class="lineno"> 3977</span>  { (__int128) 10000000000000000UL * (__int128) 10000000000000000UL };</div><div class="line"><a name="l03978"></a><span class="lineno"> 3978</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> result, t;</div><div class="line"><a name="l03979"></a><span class="lineno"> 3979</span> </div><div class="line"><a name="l03980"></a><span class="lineno"> 3980</span>  <span class="keywordflow">if</span> (<a class="code" href="vec__int128__ppc_8h.html#af8f06b2c3d612a7cfdeb3bb883c59e19">vec_cmpuq_all_ge</a> (vra, ten32))</div><div class="line"><a name="l03981"></a><span class="lineno"> 3981</span>  {</div><div class="line"><a name="l03982"></a><span class="lineno"> 3982</span>  t = <a class="code" href="vec__int128__ppc_8h.html#a9aaaf0e4c2705be1e0e8e925b09c52de">vec_mulluq</a> (q, ten32);</div><div class="line"><a name="l03983"></a><span class="lineno"> 3983</span>  result = <a class="code" href="vec__int128__ppc_8h.html#a6bafb410404d4f1e10a99263b57d1df0">vec_subuqm</a> (vra, t);</div><div class="line"><a name="l03984"></a><span class="lineno"> 3984</span>  }</div><div class="line"><a name="l03985"></a><span class="lineno"> 3985</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l03986"></a><span class="lineno"> 3986</span>  result = vra;</div><div class="line"><a name="l03987"></a><span class="lineno"> 3987</span> </div><div class="line"><a name="l03988"></a><span class="lineno"> 3988</span>  <span class="keywordflow">return</span> result;</div><div class="line"><a name="l03989"></a><span class="lineno"> 3989</span> }</div><div class="line"><a name="l03990"></a><span class="lineno"> 3990</span> </div><div class="line"><a name="l04006"></a><span class="lineno"> 4006</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l04007"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a8c641b0107fc3e1621ef729c04efd583"> 4007</a></span> <a class="code" href="vec__int128__ppc_8h.html#a8c641b0107fc3e1621ef729c04efd583">vec_mul10cuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a)</div><div class="line"><a name="l04008"></a><span class="lineno"> 4008</span> {</div><div class="line"><a name="l04009"></a><span class="lineno"> 4009</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t_carry;</div><div class="line"><a name="l04010"></a><span class="lineno"> 4010</span> <span class="preprocessor">#ifdef _ARCH_PWR9</span></div><div class="line"><a name="l04011"></a><span class="lineno"> 4011</span>  __asm__(</div><div class="line"><a name="l04012"></a><span class="lineno"> 4012</span>  <span class="stringliteral">"vmul10cuq %0,%1;\n"</span></div><div class="line"><a name="l04013"></a><span class="lineno"> 4013</span>  : <span class="stringliteral">"=v"</span> (t_carry)</div><div class="line"><a name="l04014"></a><span class="lineno"> 4014</span>  : <span class="stringliteral">"v"</span> (a)</div><div class="line"><a name="l04015"></a><span class="lineno"> 4015</span>  : );</div><div class="line"><a name="l04016"></a><span class="lineno"> 4016</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04017"></a><span class="lineno"> 4017</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> ts = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a;</div><div class="line"><a name="l04018"></a><span class="lineno"> 4018</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> t10;</div><div class="line"><a name="l04019"></a><span class="lineno"> 4019</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t_even, t_odd, t_high;</div><div class="line"><a name="l04020"></a><span class="lineno"> 4020</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> z = { 0, 0, 0, 0 };</div><div class="line"><a name="l04021"></a><span class="lineno"> 4021</span>  t10 = vec_splat_u16(10);</div><div class="line"><a name="l04022"></a><span class="lineno"> 4022</span> <span class="preprocessor">#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__</span></div><div class="line"><a name="l04023"></a><span class="lineno"> 4023</span>  t_even = vec_vmulouh (ts, t10);</div><div class="line"><a name="l04024"></a><span class="lineno"> 4024</span>  t_odd = vec_vmuleuh (ts, t10);</div><div class="line"><a name="l04025"></a><span class="lineno"> 4025</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04026"></a><span class="lineno"> 4026</span>  t_even = vec_vmuleuh(ts, t10);</div><div class="line"><a name="l04027"></a><span class="lineno"> 4027</span>  t_odd = vec_vmulouh(ts, t10);</div><div class="line"><a name="l04028"></a><span class="lineno"> 4028</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04029"></a><span class="lineno"> 4029</span>  <span class="comment">/* Shift t_even left 16-bits (right 112-bits) for the partial carry. */</span></div><div class="line"><a name="l04030"></a><span class="lineno"> 4030</span>  t_high = vec_sld (z, t_even, 2);</div><div class="line"><a name="l04031"></a><span class="lineno"> 4031</span>  <span class="comment">/* Shift t_even left 16 bits to align for lower 128-bits. */</span></div><div class="line"><a name="l04032"></a><span class="lineno"> 4032</span>  t_even = vec_sld (t_even, z, 2);</div><div class="line"><a name="l04033"></a><span class="lineno"> 4033</span>  <span class="comment">/* then add the even/odd sub-products to generate the final product */</span></div><div class="line"><a name="l04034"></a><span class="lineno"> 4034</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l04035"></a><span class="lineno"> 4035</span>  <span class="comment">/* Any compiler that supports ARCH_PWR8 should support these builtins. */</span></div><div class="line"><a name="l04036"></a><span class="lineno"> 4036</span>  t_carry = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_vaddcuq ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04037"></a><span class="lineno"> 4037</span>  t_carry = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_vadduqm ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_carry, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_high);</div><div class="line"><a name="l04038"></a><span class="lineno"> 4038</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04039"></a><span class="lineno"> 4039</span>  <span class="comment">/* Use pveclib addcuq implementation for pre _ARCH_PWR8. */</span></div><div class="line"><a name="l04040"></a><span class="lineno"> 4040</span>  t_carry = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#ad7aaadba249ce46c4c94f78df1020da3">vec_addcuq</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04041"></a><span class="lineno"> 4041</span>  <span class="comment">/* The final carry is small (0-9) so use word add, ignore carries. */</span></div><div class="line"><a name="l04042"></a><span class="lineno"> 4042</span>  t_carry = vec_vadduwm (t_carry, t_high);</div><div class="line"><a name="l04043"></a><span class="lineno"> 4043</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04044"></a><span class="lineno"> 4044</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04045"></a><span class="lineno"> 4045</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_carry);</div><div class="line"><a name="l04046"></a><span class="lineno"> 4046</span> }</div><div class="line"><a name="l04047"></a><span class="lineno"> 4047</span> </div><div class="line"><a name="l04062"></a><span class="lineno"> 4062</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l04063"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a7ca2a6427ecb9458858b5caaac8c4dca"> 4063</a></span> <a class="code" href="vec__int128__ppc_8h.html#a7ca2a6427ecb9458858b5caaac8c4dca">vec_mul10ecuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> cin)</div><div class="line"><a name="l04064"></a><span class="lineno"> 4064</span> {</div><div class="line"><a name="l04065"></a><span class="lineno"> 4065</span> <span class="comment">// vui32_t t;</span></div><div class="line"><a name="l04066"></a><span class="lineno"> 4066</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t_carry;</div><div class="line"><a name="l04067"></a><span class="lineno"> 4067</span> <span class="preprocessor">#ifdef _ARCH_PWR9</span></div><div class="line"><a name="l04068"></a><span class="lineno"> 4068</span>  __asm__(</div><div class="line"><a name="l04069"></a><span class="lineno"> 4069</span>  <span class="stringliteral">"vmul10ecuq %0,%1,%2;\n"</span></div><div class="line"><a name="l04070"></a><span class="lineno"> 4070</span>  : <span class="stringliteral">"=&v"</span> (t_carry)</div><div class="line"><a name="l04071"></a><span class="lineno"> 4071</span>  : <span class="stringliteral">"v"</span> (a),</div><div class="line"><a name="l04072"></a><span class="lineno"> 4072</span>  <span class="stringliteral">"v"</span> (cin)</div><div class="line"><a name="l04073"></a><span class="lineno"> 4073</span>  : );</div><div class="line"><a name="l04074"></a><span class="lineno"> 4074</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04075"></a><span class="lineno"> 4075</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> ts = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a;</div><div class="line"><a name="l04076"></a><span class="lineno"> 4076</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> tc;</div><div class="line"><a name="l04077"></a><span class="lineno"> 4077</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> t10;</div><div class="line"><a name="l04078"></a><span class="lineno"> 4078</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t_odd;</div><div class="line"><a name="l04079"></a><span class="lineno"> 4079</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t_even, t_high;</div><div class="line"><a name="l04080"></a><span class="lineno"> 4080</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> z = { 0, 0, 0, 0 };</div><div class="line"><a name="l04081"></a><span class="lineno"> 4081</span>  t10 = vec_splat_u16(10);</div><div class="line"><a name="l04082"></a><span class="lineno"> 4082</span> <span class="preprocessor">#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__</span></div><div class="line"><a name="l04083"></a><span class="lineno"> 4083</span>  t_even = vec_vmulouh (ts, t10);</div><div class="line"><a name="l04084"></a><span class="lineno"> 4084</span>  t_odd = vec_vmuleuh (ts, t10);</div><div class="line"><a name="l04085"></a><span class="lineno"> 4085</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04086"></a><span class="lineno"> 4086</span>  t_even = vec_vmuleuh(ts, t10);</div><div class="line"><a name="l04087"></a><span class="lineno"> 4087</span>  t_odd = vec_vmulouh(ts, t10);</div><div class="line"><a name="l04088"></a><span class="lineno"> 4088</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04089"></a><span class="lineno"> 4089</span>  <span class="comment">/* Shift t_even left 16-bits (right 112-bits) for the partial carry. */</span></div><div class="line"><a name="l04090"></a><span class="lineno"> 4090</span>  t_high = vec_sld (z, t_even, 2);</div><div class="line"><a name="l04091"></a><span class="lineno"> 4091</span>  <span class="comment">/* Shift cin left 112 bits. */</span></div><div class="line"><a name="l04092"></a><span class="lineno"> 4092</span>  tc = vec_sld ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) cin, z, 14);</div><div class="line"><a name="l04093"></a><span class="lineno"> 4093</span>  <span class="comment">/* Shift t_even left 16 bits, merging the carry into the low bits. */</span></div><div class="line"><a name="l04094"></a><span class="lineno"> 4094</span>  t_even = vec_sld (t_even, tc, 2);</div><div class="line"><a name="l04095"></a><span class="lineno"> 4095</span>  <span class="comment">/* then add the even/odd sub-products to generate the final product */</span></div><div class="line"><a name="l04096"></a><span class="lineno"> 4096</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l04097"></a><span class="lineno"> 4097</span>  <span class="comment">/* Any compiler that supports ARCH_PWR8 should support these builtins. */</span></div><div class="line"><a name="l04098"></a><span class="lineno"> 4098</span>  t_carry = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_vaddcuq ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04099"></a><span class="lineno"> 4099</span>  t_carry = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_vadduqm ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_carry, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_high);</div><div class="line"><a name="l04100"></a><span class="lineno"> 4100</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04101"></a><span class="lineno"> 4101</span>  <span class="comment">/* Use pveclib addcuq implementation for pre _ARCH_PWR8. */</span></div><div class="line"><a name="l04102"></a><span class="lineno"> 4102</span>  t_carry = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#ad7aaadba249ce46c4c94f78df1020da3">vec_addcuq</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04103"></a><span class="lineno"> 4103</span>  <span class="comment">/* The final carry is small (0-9) so use word add, ignore carries. */</span></div><div class="line"><a name="l04104"></a><span class="lineno"> 4104</span>  t_carry = vec_vadduwm (t_carry, t_high);</div><div class="line"><a name="l04105"></a><span class="lineno"> 4105</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04106"></a><span class="lineno"> 4106</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04107"></a><span class="lineno"> 4107</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_carry);</div><div class="line"><a name="l04108"></a><span class="lineno"> 4108</span> }</div><div class="line"><a name="l04109"></a><span class="lineno"> 4109</span> </div><div class="line"><a name="l04124"></a><span class="lineno"> 4124</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l04125"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a2245626e7b90621b33ba79b763a4215e"> 4125</a></span> <a class="code" href="vec__int128__ppc_8h.html#a2245626e7b90621b33ba79b763a4215e">vec_mul10euq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> cin)</div><div class="line"><a name="l04126"></a><span class="lineno"> 4126</span> {</div><div class="line"><a name="l04127"></a><span class="lineno"> 4127</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t;</div><div class="line"><a name="l04128"></a><span class="lineno"> 4128</span> <span class="preprocessor">#ifdef _ARCH_PWR9</span></div><div class="line"><a name="l04129"></a><span class="lineno"> 4129</span>  __asm__(</div><div class="line"><a name="l04130"></a><span class="lineno"> 4130</span>  <span class="stringliteral">"vmul10euq %0,%1,%2;\n"</span></div><div class="line"><a name="l04131"></a><span class="lineno"> 4131</span>  : <span class="stringliteral">"=v"</span> (t)</div><div class="line"><a name="l04132"></a><span class="lineno"> 4132</span>  : <span class="stringliteral">"v"</span> (a),</div><div class="line"><a name="l04133"></a><span class="lineno"> 4133</span>  <span class="stringliteral">"v"</span> (cin)</div><div class="line"><a name="l04134"></a><span class="lineno"> 4134</span>  : );</div><div class="line"><a name="l04135"></a><span class="lineno"> 4135</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04136"></a><span class="lineno"> 4136</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> ts = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a;</div><div class="line"><a name="l04137"></a><span class="lineno"> 4137</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> tc;</div><div class="line"><a name="l04138"></a><span class="lineno"> 4138</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> t10;</div><div class="line"><a name="l04139"></a><span class="lineno"> 4139</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t_odd, t_even;</div><div class="line"><a name="l04140"></a><span class="lineno"> 4140</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> z = { 0, 0, 0, 0 };</div><div class="line"><a name="l04141"></a><span class="lineno"> 4141</span>  t10 = vec_splat_u16(10);</div><div class="line"><a name="l04142"></a><span class="lineno"> 4142</span> <span class="preprocessor">#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__</span></div><div class="line"><a name="l04143"></a><span class="lineno"> 4143</span>  t_even = vec_vmulouh (ts, t10);</div><div class="line"><a name="l04144"></a><span class="lineno"> 4144</span>  t_odd = vec_vmuleuh (ts, t10);</div><div class="line"><a name="l04145"></a><span class="lineno"> 4145</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04146"></a><span class="lineno"> 4146</span>  t_even = vec_vmuleuh(ts, t10);</div><div class="line"><a name="l04147"></a><span class="lineno"> 4147</span>  t_odd = vec_vmulouh(ts, t10);</div><div class="line"><a name="l04148"></a><span class="lineno"> 4148</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04149"></a><span class="lineno"> 4149</span>  <span class="comment">/* Shift cin left 112 bits. */</span></div><div class="line"><a name="l04150"></a><span class="lineno"> 4150</span>  tc = vec_sld ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) cin, z, 14);</div><div class="line"><a name="l04151"></a><span class="lineno"> 4151</span>  <span class="comment">/* Shift t_even left 16 bits, merging the carry into the low bits. */</span></div><div class="line"><a name="l04152"></a><span class="lineno"> 4152</span>  t_even = vec_sld (t_even, tc, 2);</div><div class="line"><a name="l04153"></a><span class="lineno"> 4153</span>  <span class="comment">/* then add the even/odd sub-products to generate the final product. */</span></div><div class="line"><a name="l04154"></a><span class="lineno"> 4154</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l04155"></a><span class="lineno"> 4155</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_vadduqm ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04156"></a><span class="lineno"> 4156</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04157"></a><span class="lineno"> 4157</span>  <span class="comment">/* Use pveclib addcuq implementation for pre _ARCH_PWR8. */</span></div><div class="line"><a name="l04158"></a><span class="lineno"> 4158</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04159"></a><span class="lineno"> 4159</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04160"></a><span class="lineno"> 4160</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04161"></a><span class="lineno"> 4161</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t);</div><div class="line"><a name="l04162"></a><span class="lineno"> 4162</span> }</div><div class="line"><a name="l04163"></a><span class="lineno"> 4163</span> </div><div class="line"><a name="l04177"></a><span class="lineno"> 4177</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l04178"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a3675fa1a2334eff913df447904be78ad"> 4178</a></span> <a class="code" href="vec__int128__ppc_8h.html#a3675fa1a2334eff913df447904be78ad">vec_mul10uq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a)</div><div class="line"><a name="l04179"></a><span class="lineno"> 4179</span> {</div><div class="line"><a name="l04180"></a><span class="lineno"> 4180</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t;</div><div class="line"><a name="l04181"></a><span class="lineno"> 4181</span> <span class="preprocessor">#ifdef _ARCH_PWR9</span></div><div class="line"><a name="l04182"></a><span class="lineno"> 4182</span>  __asm__(</div><div class="line"><a name="l04183"></a><span class="lineno"> 4183</span>  <span class="stringliteral">"vmul10uq %0,%1;\n"</span></div><div class="line"><a name="l04184"></a><span class="lineno"> 4184</span>  : <span class="stringliteral">"=v"</span> (t)</div><div class="line"><a name="l04185"></a><span class="lineno"> 4185</span>  : <span class="stringliteral">"v"</span> (a)</div><div class="line"><a name="l04186"></a><span class="lineno"> 4186</span>  : );</div><div class="line"><a name="l04187"></a><span class="lineno"> 4187</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04188"></a><span class="lineno"> 4188</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> ts = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a;</div><div class="line"><a name="l04189"></a><span class="lineno"> 4189</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> t10;</div><div class="line"><a name="l04190"></a><span class="lineno"> 4190</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t_odd, t_even;</div><div class="line"><a name="l04191"></a><span class="lineno"> 4191</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> z = { 0, 0, 0, 0 };</div><div class="line"><a name="l04192"></a><span class="lineno"> 4192</span>  t10 = vec_splat_u16(10);</div><div class="line"><a name="l04193"></a><span class="lineno"> 4193</span> <span class="preprocessor">#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__</span></div><div class="line"><a name="l04194"></a><span class="lineno"> 4194</span>  t_even = vec_vmulouh (ts, t10);</div><div class="line"><a name="l04195"></a><span class="lineno"> 4195</span>  t_odd = vec_vmuleuh (ts, t10);</div><div class="line"><a name="l04196"></a><span class="lineno"> 4196</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04197"></a><span class="lineno"> 4197</span>  t_even = vec_vmuleuh(ts, t10);</div><div class="line"><a name="l04198"></a><span class="lineno"> 4198</span>  t_odd = vec_vmulouh(ts, t10);</div><div class="line"><a name="l04199"></a><span class="lineno"> 4199</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04200"></a><span class="lineno"> 4200</span>  <span class="comment">/* Shift t_even left 16 bits */</span></div><div class="line"><a name="l04201"></a><span class="lineno"> 4201</span>  t_even = vec_sld (t_even, z, 2);</div><div class="line"><a name="l04202"></a><span class="lineno"> 4202</span>  <span class="comment">/* then add the even/odd sub-products to generate the final product */</span></div><div class="line"><a name="l04203"></a><span class="lineno"> 4203</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l04204"></a><span class="lineno"> 4204</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_vadduqm ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04205"></a><span class="lineno"> 4205</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04206"></a><span class="lineno"> 4206</span>  <span class="comment">/* Use pveclib addcuq implementation for pre _ARCH_PWR8. */</span></div><div class="line"><a name="l04207"></a><span class="lineno"> 4207</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04208"></a><span class="lineno"> 4208</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04209"></a><span class="lineno"> 4209</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04210"></a><span class="lineno"> 4210</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t);</div><div class="line"><a name="l04211"></a><span class="lineno"> 4211</span> }</div><div class="line"><a name="l04212"></a><span class="lineno"> 4212</span> </div><div class="line"><a name="l04227"></a><span class="lineno"> 4227</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l04228"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a8bc23a0cd3f522c017ec95d5ce93a2f0"> 4228</a></span> <a class="code" href="vec__int128__ppc_8h.html#a8bc23a0cd3f522c017ec95d5ce93a2f0">vec_cmul100cuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> *cout, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a)</div><div class="line"><a name="l04229"></a><span class="lineno"> 4229</span> {</div><div class="line"><a name="l04230"></a><span class="lineno"> 4230</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t;</div><div class="line"><a name="l04231"></a><span class="lineno"> 4231</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t_carry;</div><div class="line"><a name="l04232"></a><span class="lineno"> 4232</span> <span class="preprocessor">#ifdef _ARCH_PWR9</span></div><div class="line"><a name="l04233"></a><span class="lineno"> 4233</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> t0, t1, tc0, tc1;</div><div class="line"><a name="l04234"></a><span class="lineno"> 4234</span>  <span class="comment">/* Times 10 with 1st carry. */</span></div><div class="line"><a name="l04235"></a><span class="lineno"> 4235</span>  tc0 = <a class="code" href="vec__int128__ppc_8h.html#a8c641b0107fc3e1621ef729c04efd583">vec_mul10cuq</a> (a);</div><div class="line"><a name="l04236"></a><span class="lineno"> 4236</span>  t0 = <a class="code" href="vec__int128__ppc_8h.html#a3675fa1a2334eff913df447904be78ad">vec_mul10uq</a> (a);</div><div class="line"><a name="l04237"></a><span class="lineno"> 4237</span>  <span class="comment">/* Times 10 again with 2nd carry. */</span></div><div class="line"><a name="l04238"></a><span class="lineno"> 4238</span>  tc1 = <a class="code" href="vec__int128__ppc_8h.html#a8c641b0107fc3e1621ef729c04efd583">vec_mul10cuq</a> (t0);</div><div class="line"><a name="l04239"></a><span class="lineno"> 4239</span>  t1 = <a class="code" href="vec__int128__ppc_8h.html#a3675fa1a2334eff913df447904be78ad">vec_mul10uq</a> (t0);</div><div class="line"><a name="l04240"></a><span class="lineno"> 4240</span>  <span class="comment">/* 1st carry times 10 plus 2nd carry. */</span></div><div class="line"><a name="l04241"></a><span class="lineno"> 4241</span>  t_carry = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a2245626e7b90621b33ba79b763a4215e">vec_mul10euq</a> (tc0, tc1);</div><div class="line"><a name="l04242"></a><span class="lineno"> 4242</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)t1;</div><div class="line"><a name="l04243"></a><span class="lineno"> 4243</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04244"></a><span class="lineno"> 4244</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> ts = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a;</div><div class="line"><a name="l04245"></a><span class="lineno"> 4245</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> t100 = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> ) { 100, 100, 100, 100, 100, 100, 100, 100 };</div><div class="line"><a name="l04246"></a><span class="lineno"> 4246</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t_odd, t_even, t_high;</div><div class="line"><a name="l04247"></a><span class="lineno"> 4247</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> z = { 0, 0, 0, 0 };</div><div class="line"><a name="l04248"></a><span class="lineno"> 4248</span>  <span class="comment">//t100 = vec_splat_u16 (100);</span></div><div class="line"><a name="l04249"></a><span class="lineno"> 4249</span> <span class="preprocessor">#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__</span></div><div class="line"><a name="l04250"></a><span class="lineno"> 4250</span>  t_even = vec_vmulouh (ts, t100);</div><div class="line"><a name="l04251"></a><span class="lineno"> 4251</span>  t_odd = vec_vmuleuh (ts, t100);</div><div class="line"><a name="l04252"></a><span class="lineno"> 4252</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04253"></a><span class="lineno"> 4253</span>  t_even = vec_vmuleuh(ts, t100);</div><div class="line"><a name="l04254"></a><span class="lineno"> 4254</span>  t_odd = vec_vmulouh(ts, t100);</div><div class="line"><a name="l04255"></a><span class="lineno"> 4255</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04256"></a><span class="lineno"> 4256</span>  <span class="comment">/* Shift t_even left 16-bits (right 112-bits) for the partial carry. */</span></div><div class="line"><a name="l04257"></a><span class="lineno"> 4257</span>  t_high = vec_sld (z, t_even, 2);</div><div class="line"><a name="l04258"></a><span class="lineno"> 4258</span>  <span class="comment">/* Shift t_even left 16 bits to align for lower 128-bits. */</span></div><div class="line"><a name="l04259"></a><span class="lineno"> 4259</span>  t_even = vec_sld (t_even, z, 2);</div><div class="line"><a name="l04260"></a><span class="lineno"> 4260</span>  <span class="comment">/* then add the even/odd sub-products to generate the final product */</span></div><div class="line"><a name="l04261"></a><span class="lineno"> 4261</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l04262"></a><span class="lineno"> 4262</span>  <span class="comment">/* Any compiler that supports ARCH_PWR8 should support these builtins. */</span></div><div class="line"><a name="l04263"></a><span class="lineno"> 4263</span>  t_carry = t_high; <span class="comment">/* there is no carry into high */</span></div><div class="line"><a name="l04264"></a><span class="lineno"> 4264</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_vadduqm ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04265"></a><span class="lineno"> 4265</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04266"></a><span class="lineno"> 4266</span>  t_carry = t_high; <span class="comment">/* there is no carry into high */</span></div><div class="line"><a name="l04267"></a><span class="lineno"> 4267</span>  <span class="comment">/* Use pveclib adduqm implementation for pre _ARCH_PWR8. */</span></div><div class="line"><a name="l04268"></a><span class="lineno"> 4268</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04269"></a><span class="lineno"> 4269</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04270"></a><span class="lineno"> 4270</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04271"></a><span class="lineno"> 4271</span>  *cout = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_carry;</div><div class="line"><a name="l04272"></a><span class="lineno"> 4272</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t);</div><div class="line"><a name="l04273"></a><span class="lineno"> 4273</span> }</div><div class="line"><a name="l04274"></a><span class="lineno"> 4274</span> </div><div class="line"><a name="l04292"></a><span class="lineno"> 4292</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l04293"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#ac3f85b6577e5ab0de2b3f68ca45dd33b"> 4293</a></span> <a class="code" href="vec__int128__ppc_8h.html#ac3f85b6577e5ab0de2b3f68ca45dd33b">vec_cmul100ecuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> *cout, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> cin)</div><div class="line"><a name="l04294"></a><span class="lineno"> 4294</span> {</div><div class="line"><a name="l04295"></a><span class="lineno"> 4295</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t;</div><div class="line"><a name="l04296"></a><span class="lineno"> 4296</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t_carry;</div><div class="line"><a name="l04297"></a><span class="lineno"> 4297</span> <span class="preprocessor">#ifdef _ARCH_PWR9</span></div><div class="line"><a name="l04298"></a><span class="lineno"> 4298</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> t0, t1, tc0, tc1;</div><div class="line"><a name="l04299"></a><span class="lineno"> 4299</span>  <span class="comment">/* Times 10 with 1st carry. */</span></div><div class="line"><a name="l04300"></a><span class="lineno"> 4300</span>  tc0 = <a class="code" href="vec__int128__ppc_8h.html#a8c641b0107fc3e1621ef729c04efd583">vec_mul10cuq</a> (a);</div><div class="line"><a name="l04301"></a><span class="lineno"> 4301</span>  t0 = <a class="code" href="vec__int128__ppc_8h.html#a3675fa1a2334eff913df447904be78ad">vec_mul10uq</a> (a);</div><div class="line"><a name="l04302"></a><span class="lineno"> 4302</span>  <span class="comment">/* Times 10 again with 2nd carry. No carry in yet. */</span></div><div class="line"><a name="l04303"></a><span class="lineno"> 4303</span>  tc1 = <a class="code" href="vec__int128__ppc_8h.html#a8c641b0107fc3e1621ef729c04efd583">vec_mul10cuq</a> (t0);</div><div class="line"><a name="l04304"></a><span class="lineno"> 4304</span>  t1 = <a class="code" href="vec__int128__ppc_8h.html#a3675fa1a2334eff913df447904be78ad">vec_mul10uq</a> (t0);</div><div class="line"><a name="l04305"></a><span class="lineno"> 4305</span>  <span class="comment">/* 1st carry times 10 plus 2nd carry. */</span></div><div class="line"><a name="l04306"></a><span class="lineno"> 4306</span>  t_carry = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a2245626e7b90621b33ba79b763a4215e">vec_mul10euq</a> (tc0, tc1);</div><div class="line"><a name="l04307"></a><span class="lineno"> 4307</span>  <span class="comment">/* Add cin to the low bits of a * 100. If cin is in valid range</span></div><div class="line"><a name="l04308"></a><span class="lineno"> 4308</span> <span class="comment"> * (0-99) then can not generate carry out of low 128-bits. */</span></div><div class="line"><a name="l04309"></a><span class="lineno"> 4309</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_vadduqm ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t1, cin);</div><div class="line"><a name="l04310"></a><span class="lineno"> 4310</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04311"></a><span class="lineno"> 4311</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> ts = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a;</div><div class="line"><a name="l04312"></a><span class="lineno"> 4312</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> tc;</div><div class="line"><a name="l04313"></a><span class="lineno"> 4313</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> t100 = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> ) { 100, 100, 100, 100, 100, 100, 100, 100 };</div><div class="line"><a name="l04314"></a><span class="lineno"> 4314</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t_odd, t_even, t_high;</div><div class="line"><a name="l04315"></a><span class="lineno"> 4315</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> z = { 0, 0, 0, 0 };</div><div class="line"><a name="l04316"></a><span class="lineno"> 4316</span>  <span class="comment">//t100 = vec_splat_u16 (100);</span></div><div class="line"><a name="l04317"></a><span class="lineno"> 4317</span> <span class="preprocessor">#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__</span></div><div class="line"><a name="l04318"></a><span class="lineno"> 4318</span>  t_even = vec_vmulouh (ts, t100);</div><div class="line"><a name="l04319"></a><span class="lineno"> 4319</span>  t_odd = vec_vmuleuh (ts, t100);</div><div class="line"><a name="l04320"></a><span class="lineno"> 4320</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04321"></a><span class="lineno"> 4321</span>  t_even = vec_vmuleuh (ts, t100);</div><div class="line"><a name="l04322"></a><span class="lineno"> 4322</span>  t_odd = vec_vmulouh (ts, t100);</div><div class="line"><a name="l04323"></a><span class="lineno"> 4323</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04324"></a><span class="lineno"> 4324</span>  <span class="comment">/* Shift t_even left 16-bits (right 112-bits) for the partial carry. */</span></div><div class="line"><a name="l04325"></a><span class="lineno"> 4325</span>  t_high = vec_sld (z, t_even, 2);</div><div class="line"><a name="l04326"></a><span class="lineno"> 4326</span>  <span class="comment">/* Shift cin left 112 bits. */</span></div><div class="line"><a name="l04327"></a><span class="lineno"> 4327</span>  tc = vec_sld ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) cin, z, 14);</div><div class="line"><a name="l04328"></a><span class="lineno"> 4328</span>  <span class="comment">/* Shift t_even left 16 bits, merging the carry into the low bits. */</span></div><div class="line"><a name="l04329"></a><span class="lineno"> 4329</span>  t_even = vec_sld (t_even, tc, 2);</div><div class="line"><a name="l04330"></a><span class="lineno"> 4330</span>  <span class="comment">/* then add the even/odd sub-products to generate the final product */</span></div><div class="line"><a name="l04331"></a><span class="lineno"> 4331</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l04332"></a><span class="lineno"> 4332</span>  <span class="comment">/* Any compiler that supports ARCH_PWR8 should support these builtins. */</span></div><div class="line"><a name="l04333"></a><span class="lineno"> 4333</span>  t_carry = t_high; <span class="comment">/* there is no carry into high */</span></div><div class="line"><a name="l04334"></a><span class="lineno"> 4334</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_vadduqm ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04335"></a><span class="lineno"> 4335</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04336"></a><span class="lineno"> 4336</span>  t_carry = t_high; <span class="comment">/* there is no carry into high */</span></div><div class="line"><a name="l04337"></a><span class="lineno"> 4337</span>  <span class="comment">/* Use pveclib adduqm implementation for pre _ARCH_PWR8. */</span></div><div class="line"><a name="l04338"></a><span class="lineno"> 4338</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04339"></a><span class="lineno"> 4339</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04340"></a><span class="lineno"> 4340</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04341"></a><span class="lineno"> 4341</span>  *cout = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_carry;</div><div class="line"><a name="l04342"></a><span class="lineno"> 4342</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t);</div><div class="line"><a name="l04343"></a><span class="lineno"> 4343</span> }</div><div class="line"><a name="l04344"></a><span class="lineno"> 4344</span> </div><div class="line"><a name="l04367"></a><span class="lineno"> 4367</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l04368"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a1d183ebd232e5826be109cdaa421aeed"> 4368</a></span> <a class="code" href="vec__int128__ppc_8h.html#a1d183ebd232e5826be109cdaa421aeed">vec_msumudm</a> (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> a, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> c)</div><div class="line"><a name="l04369"></a><span class="lineno"> 4369</span> {</div><div class="line"><a name="l04370"></a><span class="lineno"> 4370</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> res;</div><div class="line"><a name="l04371"></a><span class="lineno"> 4371</span> <span class="preprocessor">#if defined (_ARCH_PWR9) && ((__GNUC__ >= 6) || (__clang_major__ >= 11))</span></div><div class="line"><a name="l04372"></a><span class="lineno"> 4372</span>  __asm__(</div><div class="line"><a name="l04373"></a><span class="lineno"> 4373</span>  <span class="stringliteral">"vmsumudm %0,%1,%2,%3;\n"</span></div><div class="line"><a name="l04374"></a><span class="lineno"> 4374</span>  : <span class="stringliteral">"=v"</span> (res)</div><div class="line"><a name="l04375"></a><span class="lineno"> 4375</span>  : <span class="stringliteral">"v"</span> (a), <span class="stringliteral">"v"</span> (b), <span class="stringliteral">"v"</span> (c)</div><div class="line"><a name="l04376"></a><span class="lineno"> 4376</span>  : );</div><div class="line"><a name="l04377"></a><span class="lineno"> 4377</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04378"></a><span class="lineno"> 4378</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> p_even, p_odd, p_sum;</div><div class="line"><a name="l04379"></a><span class="lineno"> 4379</span> </div><div class="line"><a name="l04380"></a><span class="lineno"> 4380</span>  p_even = <a class="code" href="vec__int128__ppc_8h.html#a26f95e02f7b0551e3f2bb7e4b4da040d">vec_muleud</a> (a, b);</div><div class="line"><a name="l04381"></a><span class="lineno"> 4381</span>  p_odd = <a class="code" href="vec__int128__ppc_8h.html#aa989582cbfaa7984f78a937225e92f4a">vec_muloud</a> (a, b);</div><div class="line"><a name="l04382"></a><span class="lineno"> 4382</span>  p_sum = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (p_even, p_odd);</div><div class="line"><a name="l04383"></a><span class="lineno"> 4383</span>  res = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (p_sum, c);</div><div class="line"><a name="l04384"></a><span class="lineno"> 4384</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04385"></a><span class="lineno"> 4385</span> </div><div class="line"><a name="l04386"></a><span class="lineno"> 4386</span>  <span class="keywordflow">return</span> (res);</div><div class="line"><a name="l04387"></a><span class="lineno"> 4387</span> }</div><div class="line"><a name="l04388"></a><span class="lineno"> 4388</span> </div><div class="line"><a name="l04409"></a><span class="lineno"> 4409</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l04410"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a26f95e02f7b0551e3f2bb7e4b4da040d"> 4410</a></span> <a class="code" href="vec__int128__ppc_8h.html#a26f95e02f7b0551e3f2bb7e4b4da040d">vec_muleud</a> (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> a, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b)</div><div class="line"><a name="l04411"></a><span class="lineno"> 4411</span> {</div><div class="line"><a name="l04412"></a><span class="lineno"> 4412</span> <span class="preprocessor">#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__</span></div><div class="line"><a name="l04413"></a><span class="lineno"> 4413</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#a208744996e7482604ad274b44999d6ce">vec_vmuloud</a> (a, b);</div><div class="line"><a name="l04414"></a><span class="lineno"> 4414</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04415"></a><span class="lineno"> 4415</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#a84e6361054b52ac4564bcef25b718151">vec_vmuleud</a> (a, b);</div><div class="line"><a name="l04416"></a><span class="lineno"> 4416</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04417"></a><span class="lineno"> 4417</span> }</div><div class="line"><a name="l04418"></a><span class="lineno"> 4418</span> </div><div class="line"><a name="l04442"></a><span class="lineno"> 4442</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a></div><div class="line"><a name="l04443"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a10780cd8a88f18ec564ee6254c179a06"> 4443</a></span> <a class="code" href="vec__int128__ppc_8h.html#a10780cd8a88f18ec564ee6254c179a06">vec_mulhud</a> (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> vrb)</div><div class="line"><a name="l04444"></a><span class="lineno"> 4444</span> {</div><div class="line"><a name="l04445"></a><span class="lineno"> 4445</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int64__ppc_8h.html#acd5bafec6c1c15b0336551e82d1169d4">vec_mrgahd</a> (<a class="code" href="vec__int128__ppc_8h.html#a84e6361054b52ac4564bcef25b718151">vec_vmuleud</a> (vra, vrb), <a class="code" href="vec__int128__ppc_8h.html#a208744996e7482604ad274b44999d6ce">vec_vmuloud</a> (vra, vrb));</div><div class="line"><a name="l04446"></a><span class="lineno"> 4446</span> }</div><div class="line"><a name="l04447"></a><span class="lineno"> 4447</span> </div><div class="line"><a name="l04468"></a><span class="lineno"> 4468</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l04469"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#aa989582cbfaa7984f78a937225e92f4a"> 4469</a></span> <a class="code" href="vec__int128__ppc_8h.html#aa989582cbfaa7984f78a937225e92f4a">vec_muloud</a> (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> a, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b)</div><div class="line"><a name="l04470"></a><span class="lineno"> 4470</span> {</div><div class="line"><a name="l04471"></a><span class="lineno"> 4471</span> <span class="preprocessor">#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__</span></div><div class="line"><a name="l04472"></a><span class="lineno"> 4472</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#a84e6361054b52ac4564bcef25b718151">vec_vmuleud</a> (a, b);</div><div class="line"><a name="l04473"></a><span class="lineno"> 4473</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04474"></a><span class="lineno"> 4474</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#a208744996e7482604ad274b44999d6ce">vec_vmuloud</a> (a, b);</div><div class="line"><a name="l04475"></a><span class="lineno"> 4475</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04476"></a><span class="lineno"> 4476</span> }</div><div class="line"><a name="l04477"></a><span class="lineno"> 4477</span> </div><div class="line"><a name="l04499"></a><span class="lineno"> 4499</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a></div><div class="line"><a name="l04500"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a2f19a53d6d28ac9b2aab5b8e1c5b2cbb"> 4500</a></span> <a class="code" href="vec__int128__ppc_8h.html#a2f19a53d6d28ac9b2aab5b8e1c5b2cbb">vec_muludm</a> (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> vrb)</div><div class="line"><a name="l04501"></a><span class="lineno"> 4501</span> {</div><div class="line"><a name="l04502"></a><span class="lineno"> 4502</span> <span class="preprocessor">#ifdef _ARCH_PWR9</span></div><div class="line"><a name="l04503"></a><span class="lineno"> 4503</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int64__ppc_8h.html#a5242d6311cd5ab50377cfeb2cf2ac8bf">vec_mrgald</a> (<a class="code" href="vec__int128__ppc_8h.html#a84e6361054b52ac4564bcef25b718151">vec_vmuleud</a> (vra, vrb), <a class="code" href="vec__int128__ppc_8h.html#a208744996e7482604ad274b44999d6ce">vec_vmuloud</a> (vra, vrb));</div><div class="line"><a name="l04504"></a><span class="lineno"> 4504</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04505"></a><span class="lineno"> 4505</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l04506"></a><span class="lineno"> 4506</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> s32 = { 32, 32 }; <span class="comment">// shift / rotate amount.</span></div><div class="line"><a name="l04507"></a><span class="lineno"> 4507</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> z = { 0, 0 };</div><div class="line"><a name="l04508"></a><span class="lineno"> 4508</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> t2, t3, t4;</div><div class="line"><a name="l04509"></a><span class="lineno"> 4509</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t1;</div><div class="line"><a name="l04510"></a><span class="lineno"> 4510</span> </div><div class="line"><a name="l04511"></a><span class="lineno"> 4511</span>  t1 = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int64__ppc_8h.html#ad8406367635fbd8f1c50a11f6d650a2a">vec_vrld</a> (vrb, s32);</div><div class="line"><a name="l04512"></a><span class="lineno"> 4512</span>  t2 = <a class="code" href="vec__int32__ppc_8h.html#ae52349ced57857d20fb5e06b1b09cc05">vec_vmulouw</a> ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vra, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vrb);</div><div class="line"><a name="l04513"></a><span class="lineno"> 4513</span>  t3 = <a class="code" href="vec__int64__ppc_8h.html#a431720fd713485fcb13963cdcb89ac76">vec_vmsumuwm</a> ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vra, t1, z);</div><div class="line"><a name="l04514"></a><span class="lineno"> 4514</span>  t4 = <a class="code" href="vec__int64__ppc_8h.html#a0fb3ddc8b334ae25119a02e749884290">vec_vsld</a> (t3, s32);</div><div class="line"><a name="l04515"></a><span class="lineno"> 4515</span>  <span class="keywordflow">return</span> (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) <a class="code" href="vec__int64__ppc_8h.html#a28052c1907d1f733c9dda8a48039e546">vec_addudm</a> (t4, t2);</div><div class="line"><a name="l04516"></a><span class="lineno"> 4516</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04517"></a><span class="lineno"> 4517</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int64__ppc_8h.html#a5242d6311cd5ab50377cfeb2cf2ac8bf">vec_mrgald</a> (<a class="code" href="vec__int128__ppc_8h.html#a84e6361054b52ac4564bcef25b718151">vec_vmuleud</a> (vra, vrb), <a class="code" href="vec__int128__ppc_8h.html#a208744996e7482604ad274b44999d6ce">vec_vmuloud</a> (vra, vrb));</div><div class="line"><a name="l04518"></a><span class="lineno"> 4518</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04519"></a><span class="lineno"> 4519</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04520"></a><span class="lineno"> 4520</span> }</div><div class="line"><a name="l04521"></a><span class="lineno"> 4521</span> </div><div class="line"><a name="l04536"></a><span class="lineno"> 4536</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l04537"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#ad6be9c8f02e43c39a659d6bbc9c3a2d2"> 4537</a></span> <a class="code" href="vec__int128__ppc_8h.html#ad6be9c8f02e43c39a659d6bbc9c3a2d2">vec_mulhuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b)</div><div class="line"><a name="l04538"></a><span class="lineno"> 4538</span> {</div><div class="line"><a name="l04539"></a><span class="lineno"> 4539</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t;</div><div class="line"><a name="l04540"></a><span class="lineno"> 4540</span>  <span class="comment">/* compute the 256 bit product of two 128 bit values a, b.</span></div><div class="line"><a name="l04541"></a><span class="lineno"> 4541</span> <span class="comment"> * The high 128 bits are accumulated in t and the low 128-bits</span></div><div class="line"><a name="l04542"></a><span class="lineno"> 4542</span> <span class="comment"> * in tmq. The high 128-bits are the return value.</span></div><div class="line"><a name="l04543"></a><span class="lineno"> 4543</span> <span class="comment"> */</span></div><div class="line"><a name="l04544"></a><span class="lineno"> 4544</span> <span class="preprocessor">#ifdef _ARCH_PWR9</span></div><div class="line"><a name="l04545"></a><span class="lineno"> 4545</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> zero = { 0, 0 };</div><div class="line"><a name="l04546"></a><span class="lineno"> 4546</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b_swap = <a class="code" href="vec__int64__ppc_8h.html#a42d2b39711c06106097ef869a20420b6">vec_swapd</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) b);</div><div class="line"><a name="l04547"></a><span class="lineno"> 4547</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> tmh, tab, tba, tb0, tc1, tc2, tmq;</div><div class="line"><a name="l04548"></a><span class="lineno"> 4548</span>  <span class="comment">/* multiply the low 64-bits of a and b. For PWR9 this is just</span></div><div class="line"><a name="l04549"></a><span class="lineno"> 4549</span> <span class="comment"> * vmsumudm with conditioned inputs. */</span></div><div class="line"><a name="l04550"></a><span class="lineno"> 4550</span>  tmq = <a class="code" href="vec__int128__ppc_8h.html#a208744996e7482604ad274b44999d6ce">vec_vmuloud</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) a, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) b);</div><div class="line"><a name="l04551"></a><span class="lineno"> 4551</span>  <span class="comment">/* compute the 2 middle partial projects. Can't directly use</span></div><div class="line"><a name="l04552"></a><span class="lineno"> 4552</span> <span class="comment"> * vmsumudm here because the sum of partial products can overflow. */</span></div><div class="line"><a name="l04553"></a><span class="lineno"> 4553</span>  tab = <a class="code" href="vec__int128__ppc_8h.html#a208744996e7482604ad274b44999d6ce">vec_vmuloud</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) a, b_swap);</div><div class="line"><a name="l04554"></a><span class="lineno"> 4554</span>  tba = <a class="code" href="vec__int128__ppc_8h.html#a84e6361054b52ac4564bcef25b718151">vec_vmuleud</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) a, b_swap);</div><div class="line"><a name="l04555"></a><span class="lineno"> 4555</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (tab, tba);</div><div class="line"><a name="l04556"></a><span class="lineno"> 4556</span>  tc1 = <a class="code" href="vec__int128__ppc_8h.html#ad7aaadba249ce46c4c94f78df1020da3">vec_addcuq</a> (tab, tba);</div><div class="line"><a name="l04557"></a><span class="lineno"> 4557</span>  tmh = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) <a class="code" href="vec__int64__ppc_8h.html#acd5bafec6c1c15b0336551e82d1169d4">vec_mrgahd</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) tmq);</div><div class="line"><a name="l04558"></a><span class="lineno"> 4558</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> ) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t, tmh);</div><div class="line"><a name="l04559"></a><span class="lineno"> 4559</span>  tc2 = <a class="code" href="vec__int128__ppc_8h.html#ad7aaadba249ce46c4c94f78df1020da3">vec_addcuq</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t, tmh);</div><div class="line"><a name="l04560"></a><span class="lineno"> 4560</span>  tc1 = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vec_vadduwm ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) tc1, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) tc2);</div><div class="line"><a name="l04561"></a><span class="lineno"> 4561</span>  <span class="comment">/* result = t[l] || tmq[l]. */</span></div><div class="line"><a name="l04562"></a><span class="lineno"> 4562</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) <a class="code" href="vec__int64__ppc_8h.html#a5242d6311cd5ab50377cfeb2cf2ac8bf">vec_mrgald</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) tmq);</div><div class="line"><a name="l04563"></a><span class="lineno"> 4563</span>  <span class="comment">/* we can use multiply sum here because the high product plus the</span></div><div class="line"><a name="l04564"></a><span class="lineno"> 4564</span> <span class="comment"> * high sum of middle partial products can't overflow. */</span></div><div class="line"><a name="l04565"></a><span class="lineno"> 4565</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int64__ppc_8h.html#a8238ba590103ac80fb146a6a2b1aed1c">vec_permdi</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) tc1, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) t, 2);</div><div class="line"><a name="l04566"></a><span class="lineno"> 4566</span>  tb0 = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) <a class="code" href="vec__int64__ppc_8h.html#acd5bafec6c1c15b0336551e82d1169d4">vec_mrgahd</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) b, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero);</div><div class="line"><a name="l04567"></a><span class="lineno"> 4567</span>  <span class="comment">/* sum = (a[h] * b[h]) + (a[l] * 0) + (tc1[l] || t[h]). */</span></div><div class="line"><a name="l04568"></a><span class="lineno"> 4568</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a1d183ebd232e5826be109cdaa421aeed">vec_msumudm</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) a, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) tb0, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t);</div><div class="line"><a name="l04569"></a><span class="lineno"> 4569</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04570"></a><span class="lineno"> 4570</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l04571"></a><span class="lineno"> 4571</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> tsw;</div><div class="line"><a name="l04572"></a><span class="lineno"> 4572</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t_odd, t_even;</div><div class="line"><a name="l04573"></a><span class="lineno"> 4573</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> z = { 0, 0, 0, 0 };</div><div class="line"><a name="l04574"></a><span class="lineno"> 4574</span>  <span class="comment">/* We use Vector Multiply Even/Odd Unsigned Word to compute</span></div><div class="line"><a name="l04575"></a><span class="lineno"> 4575</span> <span class="comment"> * the 128 x 32 partial (160-bit) product of vector a with a</span></div><div class="line"><a name="l04576"></a><span class="lineno"> 4576</span> <span class="comment"> * word element of b. The (for each word of vector b) 4 X 160-bit</span></div><div class="line"><a name="l04577"></a><span class="lineno"> 4577</span> <span class="comment"> * partial products are summed to produce the full 256-bit product.</span></div><div class="line"><a name="l04578"></a><span class="lineno"> 4578</span> <span class="comment"> * See the comment in vec_muludq for details.</span></div><div class="line"><a name="l04579"></a><span class="lineno"> 4579</span> <span class="comment"> */</span></div><div class="line"><a name="l04580"></a><span class="lineno"> 4580</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b, <a class="code" href="vec__common__ppc_8h.html#abf3504d2f86f03f90239a3196da3b3de">VEC_WE_3</a>);</div><div class="line"><a name="l04581"></a><span class="lineno"> 4581</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int32__ppc_8h.html#ae30f226bd27241513f0611b50967a080">vec_vmuleuw</a> ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) a, tsw);</div><div class="line"><a name="l04582"></a><span class="lineno"> 4582</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int32__ppc_8h.html#ae52349ced57857d20fb5e06b1b09cc05">vec_vmulouw</a> ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) a, tsw);</div><div class="line"><a name="l04583"></a><span class="lineno"> 4583</span>  <span class="comment">/* shift the low 128 bits of partial product right 32-bits */</span></div><div class="line"><a name="l04584"></a><span class="lineno"> 4584</span>  t_odd = vec_sld (z, t_odd, 12);</div><div class="line"><a name="l04585"></a><span class="lineno"> 4585</span>  <span class="comment">/* add the high 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04586"></a><span class="lineno"> 4586</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04587"></a><span class="lineno"> 4587</span> </div><div class="line"><a name="l04588"></a><span class="lineno"> 4588</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b, <a class="code" href="vec__common__ppc_8h.html#ad739666851dfec6cc520c2ee06fd5d41">VEC_WE_2</a>);</div><div class="line"><a name="l04589"></a><span class="lineno"> 4589</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a1e20bdd1df7e3e49dca06d5512ada84b">vec_vmaddeuw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, t);</div><div class="line"><a name="l04590"></a><span class="lineno"> 4590</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a32acead723b7867ff4c9f8be9bb708ca">vec_vmaddouw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, t);</div><div class="line"><a name="l04591"></a><span class="lineno"> 4591</span>  <span class="comment">/* shift the low 128 bits of partial product right 32-bits */</span></div><div class="line"><a name="l04592"></a><span class="lineno"> 4592</span>  t_odd = vec_sld (z, t_odd, 12);</div><div class="line"><a name="l04593"></a><span class="lineno"> 4593</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04594"></a><span class="lineno"> 4594</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04595"></a><span class="lineno"> 4595</span> </div><div class="line"><a name="l04596"></a><span class="lineno"> 4596</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b, <a class="code" href="vec__common__ppc_8h.html#a0cbf2bc0426544f7d64ce84da322a919">VEC_WE_1</a>);</div><div class="line"><a name="l04597"></a><span class="lineno"> 4597</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a1e20bdd1df7e3e49dca06d5512ada84b">vec_vmaddeuw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, t);</div><div class="line"><a name="l04598"></a><span class="lineno"> 4598</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a32acead723b7867ff4c9f8be9bb708ca">vec_vmaddouw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, t);</div><div class="line"><a name="l04599"></a><span class="lineno"> 4599</span>  <span class="comment">/* shift the low 128 bits of partial product right 32-bits */</span></div><div class="line"><a name="l04600"></a><span class="lineno"> 4600</span>  t_odd = vec_sld (z, t_odd, 12);</div><div class="line"><a name="l04601"></a><span class="lineno"> 4601</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04602"></a><span class="lineno"> 4602</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04603"></a><span class="lineno"> 4603</span> </div><div class="line"><a name="l04604"></a><span class="lineno"> 4604</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b, <a class="code" href="vec__common__ppc_8h.html#aa4c9ef3ba2f2c2a8b33f4f4459bbd2aa">VEC_WE_0</a>);</div><div class="line"><a name="l04605"></a><span class="lineno"> 4605</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a1e20bdd1df7e3e49dca06d5512ada84b">vec_vmaddeuw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, t);</div><div class="line"><a name="l04606"></a><span class="lineno"> 4606</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a32acead723b7867ff4c9f8be9bb708ca">vec_vmaddouw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, t);</div><div class="line"><a name="l04607"></a><span class="lineno"> 4607</span>  <span class="comment">/* shift the low 128 bits of partial product right 32-bits */</span></div><div class="line"><a name="l04608"></a><span class="lineno"> 4608</span>  t_odd = vec_sld (z, t_odd, 12);</div><div class="line"><a name="l04609"></a><span class="lineno"> 4609</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04610"></a><span class="lineno"> 4610</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04611"></a><span class="lineno"> 4611</span> <span class="preprocessor">#else // _ARCH_PWR7 or earlier and Big Endian only. */</span></div><div class="line"><a name="l04612"></a><span class="lineno"> 4612</span>  <span class="comment">/* We use Vector Multiply Even/Odd Unsigned Halfword to compute</span></div><div class="line"><a name="l04613"></a><span class="lineno"> 4613</span> <span class="comment"> * the 128 x 16 partial (144-bit) product of vector a with a</span></div><div class="line"><a name="l04614"></a><span class="lineno"> 4614</span> <span class="comment"> * halfword element of b. The (for each halfword of vector b)</span></div><div class="line"><a name="l04615"></a><span class="lineno"> 4615</span> <span class="comment"> * 8 X 144-bit partial products are summed to produce the full</span></div><div class="line"><a name="l04616"></a><span class="lineno"> 4616</span> <span class="comment"> * 256-bit product. */</span></div><div class="line"><a name="l04617"></a><span class="lineno"> 4617</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> tsw;</div><div class="line"><a name="l04618"></a><span class="lineno"> 4618</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> t_odd, t_even;</div><div class="line"><a name="l04619"></a><span class="lineno"> 4619</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> z = { 0, 0, 0, 0, 0, 0, 0, 0 };</div><div class="line"><a name="l04620"></a><span class="lineno"> 4620</span> </div><div class="line"><a name="l04621"></a><span class="lineno"> 4621</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 7);</div><div class="line"><a name="l04622"></a><span class="lineno"> 4622</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) vec_vmuleuh ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw);</div><div class="line"><a name="l04623"></a><span class="lineno"> 4623</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) vec_vmulouh ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw);</div><div class="line"><a name="l04624"></a><span class="lineno"> 4624</span> </div><div class="line"><a name="l04625"></a><span class="lineno"> 4625</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l04626"></a><span class="lineno"> 4626</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l04627"></a><span class="lineno"> 4627</span>  <span class="comment">/* add the high 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04628"></a><span class="lineno"> 4628</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04629"></a><span class="lineno"> 4629</span> </div><div class="line"><a name="l04630"></a><span class="lineno"> 4630</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 6);</div><div class="line"><a name="l04631"></a><span class="lineno"> 4631</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04632"></a><span class="lineno"> 4632</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04633"></a><span class="lineno"> 4633</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l04634"></a><span class="lineno"> 4634</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l04635"></a><span class="lineno"> 4635</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04636"></a><span class="lineno"> 4636</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04637"></a><span class="lineno"> 4637</span> </div><div class="line"><a name="l04638"></a><span class="lineno"> 4638</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 5);</div><div class="line"><a name="l04639"></a><span class="lineno"> 4639</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04640"></a><span class="lineno"> 4640</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04641"></a><span class="lineno"> 4641</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l04642"></a><span class="lineno"> 4642</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l04643"></a><span class="lineno"> 4643</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04644"></a><span class="lineno"> 4644</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04645"></a><span class="lineno"> 4645</span> </div><div class="line"><a name="l04646"></a><span class="lineno"> 4646</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 4);</div><div class="line"><a name="l04647"></a><span class="lineno"> 4647</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04648"></a><span class="lineno"> 4648</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04649"></a><span class="lineno"> 4649</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l04650"></a><span class="lineno"> 4650</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l04651"></a><span class="lineno"> 4651</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04652"></a><span class="lineno"> 4652</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04653"></a><span class="lineno"> 4653</span> </div><div class="line"><a name="l04654"></a><span class="lineno"> 4654</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 3);</div><div class="line"><a name="l04655"></a><span class="lineno"> 4655</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04656"></a><span class="lineno"> 4656</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04657"></a><span class="lineno"> 4657</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l04658"></a><span class="lineno"> 4658</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l04659"></a><span class="lineno"> 4659</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04660"></a><span class="lineno"> 4660</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04661"></a><span class="lineno"> 4661</span> </div><div class="line"><a name="l04662"></a><span class="lineno"> 4662</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 2);</div><div class="line"><a name="l04663"></a><span class="lineno"> 4663</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04664"></a><span class="lineno"> 4664</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04665"></a><span class="lineno"> 4665</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l04666"></a><span class="lineno"> 4666</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l04667"></a><span class="lineno"> 4667</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04668"></a><span class="lineno"> 4668</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04669"></a><span class="lineno"> 4669</span> </div><div class="line"><a name="l04670"></a><span class="lineno"> 4670</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 1);</div><div class="line"><a name="l04671"></a><span class="lineno"> 4671</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04672"></a><span class="lineno"> 4672</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04673"></a><span class="lineno"> 4673</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l04674"></a><span class="lineno"> 4674</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l04675"></a><span class="lineno"> 4675</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04676"></a><span class="lineno"> 4676</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04677"></a><span class="lineno"> 4677</span> </div><div class="line"><a name="l04678"></a><span class="lineno"> 4678</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 0);</div><div class="line"><a name="l04679"></a><span class="lineno"> 4679</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04680"></a><span class="lineno"> 4680</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04681"></a><span class="lineno"> 4681</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l04682"></a><span class="lineno"> 4682</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l04683"></a><span class="lineno"> 4683</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04684"></a><span class="lineno"> 4684</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04685"></a><span class="lineno"> 4685</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04686"></a><span class="lineno"> 4686</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04687"></a><span class="lineno"> 4687</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t);</div><div class="line"><a name="l04688"></a><span class="lineno"> 4688</span> }</div><div class="line"><a name="l04689"></a><span class="lineno"> 4689</span> </div><div class="line"><a name="l04704"></a><span class="lineno"> 4704</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l04705"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a9aaaf0e4c2705be1e0e8e925b09c52de"> 4705</a></span> <a class="code" href="vec__int128__ppc_8h.html#a9aaaf0e4c2705be1e0e8e925b09c52de">vec_mulluq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b)</div><div class="line"><a name="l04706"></a><span class="lineno"> 4706</span> {</div><div class="line"><a name="l04707"></a><span class="lineno"> 4707</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t, tmq;</div><div class="line"><a name="l04708"></a><span class="lineno"> 4708</span>  <span class="comment">/* compute the 256 bit product of two 128 bit values a, b.</span></div><div class="line"><a name="l04709"></a><span class="lineno"> 4709</span> <span class="comment"> * The high 128 bits are accumulated in t and the low 128-bits</span></div><div class="line"><a name="l04710"></a><span class="lineno"> 4710</span> <span class="comment"> * in tmq. Only the low order 128 bits of the product are</span></div><div class="line"><a name="l04711"></a><span class="lineno"> 4711</span> <span class="comment"> * returned.</span></div><div class="line"><a name="l04712"></a><span class="lineno"> 4712</span> <span class="comment"> */</span></div><div class="line"><a name="l04713"></a><span class="lineno"> 4713</span> <span class="preprocessor">#ifdef _ARCH_PWR9</span></div><div class="line"><a name="l04714"></a><span class="lineno"> 4714</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> zero = { 0, 0 };</div><div class="line"><a name="l04715"></a><span class="lineno"> 4715</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b_swap = <a class="code" href="vec__int64__ppc_8h.html#a42d2b39711c06106097ef869a20420b6">vec_swapd</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) b);</div><div class="line"><a name="l04716"></a><span class="lineno"> 4716</span>  <span class="comment">/* multiply the low 64-bits of a and b. For PWR9 this is just</span></div><div class="line"><a name="l04717"></a><span class="lineno"> 4717</span> <span class="comment"> * vmsumudm with conditioned inputs. */</span></div><div class="line"><a name="l04718"></a><span class="lineno"> 4718</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a208744996e7482604ad274b44999d6ce">vec_vmuloud</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) a, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) b);</div><div class="line"><a name="l04719"></a><span class="lineno"> 4719</span>  <span class="comment">/* we can use multiply sum here because we only need the low 64-bits</span></div><div class="line"><a name="l04720"></a><span class="lineno"> 4720</span> <span class="comment"> * and don't care if we lose the carry / overflow. */</span></div><div class="line"><a name="l04721"></a><span class="lineno"> 4721</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int64__ppc_8h.html#acd5bafec6c1c15b0336551e82d1169d4">vec_mrgahd</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) tmq);</div><div class="line"><a name="l04722"></a><span class="lineno"> 4722</span>  <span class="comment">/* sum = (a[h] * b[l]) + (a[l] * b[h]) + (zero || tmq[h]). */</span></div><div class="line"><a name="l04723"></a><span class="lineno"> 4723</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a1d183ebd232e5826be109cdaa421aeed">vec_msumudm</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) a, b_swap, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t);</div><div class="line"><a name="l04724"></a><span class="lineno"> 4724</span>  <span class="comment">/* result = t[l] || tmq[l]. */</span></div><div class="line"><a name="l04725"></a><span class="lineno"> 4725</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int64__ppc_8h.html#a5242d6311cd5ab50377cfeb2cf2ac8bf">vec_mrgald</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) tmq);</div><div class="line"><a name="l04726"></a><span class="lineno"> 4726</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04727"></a><span class="lineno"> 4727</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l04728"></a><span class="lineno"> 4728</span>  <span class="comment">/* We use Vector Multiply Even/Odd Unsigned Word to compute</span></div><div class="line"><a name="l04729"></a><span class="lineno"> 4729</span> <span class="comment"> * the 128 x 32 partial (160-bit) product of vector a with a</span></div><div class="line"><a name="l04730"></a><span class="lineno"> 4730</span> <span class="comment"> * word element of b. The (for each word of vector b) 4 X 160-bit</span></div><div class="line"><a name="l04731"></a><span class="lineno"> 4731</span> <span class="comment"> * partial products are summed to produce the full 256-bit product.</span></div><div class="line"><a name="l04732"></a><span class="lineno"> 4732</span> <span class="comment"> * See the comment in vec_muludq for details.</span></div><div class="line"><a name="l04733"></a><span class="lineno"> 4733</span> <span class="comment"> */</span></div><div class="line"><a name="l04734"></a><span class="lineno"> 4734</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> tsw;</div><div class="line"><a name="l04735"></a><span class="lineno"> 4735</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t_odd, t_even;</div><div class="line"><a name="l04736"></a><span class="lineno"> 4736</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> z = { 0, 0, 0, 0 };</div><div class="line"><a name="l04737"></a><span class="lineno"> 4737</span> </div><div class="line"><a name="l04738"></a><span class="lineno"> 4738</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b, <a class="code" href="vec__common__ppc_8h.html#abf3504d2f86f03f90239a3196da3b3de">VEC_WE_3</a>);</div><div class="line"><a name="l04739"></a><span class="lineno"> 4739</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int32__ppc_8h.html#ae30f226bd27241513f0611b50967a080">vec_vmuleuw</a> ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) a, tsw);</div><div class="line"><a name="l04740"></a><span class="lineno"> 4740</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int32__ppc_8h.html#ae52349ced57857d20fb5e06b1b09cc05">vec_vmulouw</a> ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) a, tsw);</div><div class="line"><a name="l04741"></a><span class="lineno"> 4741</span>  <span class="comment">/* Rotate the low 32-bits (right) into tmq. This is actually</span></div><div class="line"><a name="l04742"></a><span class="lineno"> 4742</span> <span class="comment"> * implemented as 96-bit (12-byte) shift left. */</span></div><div class="line"><a name="l04743"></a><span class="lineno"> 4743</span>  tmq = vec_sld (t_odd, z, 12);</div><div class="line"><a name="l04744"></a><span class="lineno"> 4744</span>  <span class="comment">/* shift the low 128 bits of partial product right 32-bits */</span></div><div class="line"><a name="l04745"></a><span class="lineno"> 4745</span>  t_odd = vec_sld (z, t_odd, 12);</div><div class="line"><a name="l04746"></a><span class="lineno"> 4746</span>  <span class="comment">/* add the high 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04747"></a><span class="lineno"> 4747</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04748"></a><span class="lineno"> 4748</span> </div><div class="line"><a name="l04749"></a><span class="lineno"> 4749</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b, <a class="code" href="vec__common__ppc_8h.html#ad739666851dfec6cc520c2ee06fd5d41">VEC_WE_2</a>);</div><div class="line"><a name="l04750"></a><span class="lineno"> 4750</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a1e20bdd1df7e3e49dca06d5512ada84b">vec_vmaddeuw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, t);</div><div class="line"><a name="l04751"></a><span class="lineno"> 4751</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a32acead723b7867ff4c9f8be9bb708ca">vec_vmaddouw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, t);</div><div class="line"><a name="l04752"></a><span class="lineno"> 4752</span>  <span class="comment">/* rotate right the low 32-bits into tmq */</span></div><div class="line"><a name="l04753"></a><span class="lineno"> 4753</span>  tmq = vec_sld (t_odd, tmq, 12);</div><div class="line"><a name="l04754"></a><span class="lineno"> 4754</span>  <span class="comment">/* shift the low 128 bits of partial product right 32-bits */</span></div><div class="line"><a name="l04755"></a><span class="lineno"> 4755</span>  t_odd = vec_sld (z, t_odd, 12);</div><div class="line"><a name="l04756"></a><span class="lineno"> 4756</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04757"></a><span class="lineno"> 4757</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04758"></a><span class="lineno"> 4758</span> </div><div class="line"><a name="l04759"></a><span class="lineno"> 4759</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b, <a class="code" href="vec__common__ppc_8h.html#a0cbf2bc0426544f7d64ce84da322a919">VEC_WE_1</a>);</div><div class="line"><a name="l04760"></a><span class="lineno"> 4760</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a1e20bdd1df7e3e49dca06d5512ada84b">vec_vmaddeuw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, t);</div><div class="line"><a name="l04761"></a><span class="lineno"> 4761</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a32acead723b7867ff4c9f8be9bb708ca">vec_vmaddouw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, t);</div><div class="line"><a name="l04762"></a><span class="lineno"> 4762</span>  <span class="comment">/* rotate right the low 32-bits into tmq */</span></div><div class="line"><a name="l04763"></a><span class="lineno"> 4763</span>  tmq = vec_sld (t_odd, tmq, 12);</div><div class="line"><a name="l04764"></a><span class="lineno"> 4764</span>  <span class="comment">/* shift the low 128 bits of partial product right 32-bits */</span></div><div class="line"><a name="l04765"></a><span class="lineno"> 4765</span>  t_odd = vec_sld (z, t_odd, 12);</div><div class="line"><a name="l04766"></a><span class="lineno"> 4766</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04767"></a><span class="lineno"> 4767</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04768"></a><span class="lineno"> 4768</span> </div><div class="line"><a name="l04769"></a><span class="lineno"> 4769</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b, <a class="code" href="vec__common__ppc_8h.html#aa4c9ef3ba2f2c2a8b33f4f4459bbd2aa">VEC_WE_0</a>);</div><div class="line"><a name="l04770"></a><span class="lineno"> 4770</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a32acead723b7867ff4c9f8be9bb708ca">vec_vmaddouw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, t);</div><div class="line"><a name="l04771"></a><span class="lineno"> 4771</span>  <span class="comment">/* rotate right the low 32-bits into tmq */</span></div><div class="line"><a name="l04772"></a><span class="lineno"> 4772</span>  tmq = vec_sld (t_odd, tmq, 12);</div><div class="line"><a name="l04773"></a><span class="lineno"> 4773</span>  <span class="comment">// dont need the high 128-bits of 160-bits.</span></div><div class="line"><a name="l04774"></a><span class="lineno"> 4774</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04775"></a><span class="lineno"> 4775</span>  <span class="comment">// _ARCH_PWR7 or earlier and Big Endian only.</span></div><div class="line"><a name="l04776"></a><span class="lineno"> 4776</span>  <span class="comment">/* We use Vector Multiply Even/Odd Unsigned Halfword to compute</span></div><div class="line"><a name="l04777"></a><span class="lineno"> 4777</span> <span class="comment"> * the 128 x 16 partial (144-bit) product of vector a with a</span></div><div class="line"><a name="l04778"></a><span class="lineno"> 4778</span> <span class="comment"> * halfword element of b. The (for each halfword of vector b)</span></div><div class="line"><a name="l04779"></a><span class="lineno"> 4779</span> <span class="comment"> * 8 X 144-bit partial products are summed to produce the full</span></div><div class="line"><a name="l04780"></a><span class="lineno"> 4780</span> <span class="comment"> * 256-bit product. */</span></div><div class="line"><a name="l04781"></a><span class="lineno"> 4781</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> tsw;</div><div class="line"><a name="l04782"></a><span class="lineno"> 4782</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> t_odd, t_even;</div><div class="line"><a name="l04783"></a><span class="lineno"> 4783</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> z = { 0, 0, 0, 0, 0, 0, 0, 0 };</div><div class="line"><a name="l04784"></a><span class="lineno"> 4784</span> </div><div class="line"><a name="l04785"></a><span class="lineno"> 4785</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 7);</div><div class="line"><a name="l04786"></a><span class="lineno"> 4786</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) vec_vmuleuh ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw);</div><div class="line"><a name="l04787"></a><span class="lineno"> 4787</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) vec_vmulouh ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw);</div><div class="line"><a name="l04788"></a><span class="lineno"> 4788</span> </div><div class="line"><a name="l04789"></a><span class="lineno"> 4789</span>  <span class="comment">/* Rotate the low 16-bits (right) into tmq. This is actually</span></div><div class="line"><a name="l04790"></a><span class="lineno"> 4790</span> <span class="comment"> * implemented as 112-bit (14-byte) shift left. */</span></div><div class="line"><a name="l04791"></a><span class="lineno"> 4791</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_sld (t_odd, z, 14);</div><div class="line"><a name="l04792"></a><span class="lineno"> 4792</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l04793"></a><span class="lineno"> 4793</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l04794"></a><span class="lineno"> 4794</span>  <span class="comment">/* add the high 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04795"></a><span class="lineno"> 4795</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04796"></a><span class="lineno"> 4796</span> </div><div class="line"><a name="l04797"></a><span class="lineno"> 4797</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 6);</div><div class="line"><a name="l04798"></a><span class="lineno"> 4798</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04799"></a><span class="lineno"> 4799</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04800"></a><span class="lineno"> 4800</span>  <span class="comment">/* rotate right the low 16-bits into tmq */</span></div><div class="line"><a name="l04801"></a><span class="lineno"> 4801</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vec_sld (t_odd, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)tmq, 14);</div><div class="line"><a name="l04802"></a><span class="lineno"> 4802</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l04803"></a><span class="lineno"> 4803</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l04804"></a><span class="lineno"> 4804</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04805"></a><span class="lineno"> 4805</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04806"></a><span class="lineno"> 4806</span> </div><div class="line"><a name="l04807"></a><span class="lineno"> 4807</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 5);</div><div class="line"><a name="l04808"></a><span class="lineno"> 4808</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04809"></a><span class="lineno"> 4809</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04810"></a><span class="lineno"> 4810</span>  <span class="comment">/* rotate right the low 16-bits into tmq */</span></div><div class="line"><a name="l04811"></a><span class="lineno"> 4811</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vec_sld (t_odd, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)tmq, 14);</div><div class="line"><a name="l04812"></a><span class="lineno"> 4812</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l04813"></a><span class="lineno"> 4813</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l04814"></a><span class="lineno"> 4814</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04815"></a><span class="lineno"> 4815</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04816"></a><span class="lineno"> 4816</span> </div><div class="line"><a name="l04817"></a><span class="lineno"> 4817</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 4);</div><div class="line"><a name="l04818"></a><span class="lineno"> 4818</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04819"></a><span class="lineno"> 4819</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04820"></a><span class="lineno"> 4820</span>  <span class="comment">/* rotate right the low 16-bits into tmq */</span></div><div class="line"><a name="l04821"></a><span class="lineno"> 4821</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vec_sld (t_odd, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)tmq, 14);</div><div class="line"><a name="l04822"></a><span class="lineno"> 4822</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l04823"></a><span class="lineno"> 4823</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l04824"></a><span class="lineno"> 4824</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04825"></a><span class="lineno"> 4825</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04826"></a><span class="lineno"> 4826</span> </div><div class="line"><a name="l04827"></a><span class="lineno"> 4827</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 3);</div><div class="line"><a name="l04828"></a><span class="lineno"> 4828</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04829"></a><span class="lineno"> 4829</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04830"></a><span class="lineno"> 4830</span>  <span class="comment">/* rotate right the low 16-bits into tmq */</span></div><div class="line"><a name="l04831"></a><span class="lineno"> 4831</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vec_sld (t_odd, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)tmq, 14);</div><div class="line"><a name="l04832"></a><span class="lineno"> 4832</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l04833"></a><span class="lineno"> 4833</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l04834"></a><span class="lineno"> 4834</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04835"></a><span class="lineno"> 4835</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04836"></a><span class="lineno"> 4836</span> </div><div class="line"><a name="l04837"></a><span class="lineno"> 4837</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 2);</div><div class="line"><a name="l04838"></a><span class="lineno"> 4838</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04839"></a><span class="lineno"> 4839</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04840"></a><span class="lineno"> 4840</span>  <span class="comment">/* rotate right the low 16-bits into tmq */</span></div><div class="line"><a name="l04841"></a><span class="lineno"> 4841</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vec_sld (t_odd, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)tmq, 14);</div><div class="line"><a name="l04842"></a><span class="lineno"> 4842</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l04843"></a><span class="lineno"> 4843</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l04844"></a><span class="lineno"> 4844</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04845"></a><span class="lineno"> 4845</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04846"></a><span class="lineno"> 4846</span> </div><div class="line"><a name="l04847"></a><span class="lineno"> 4847</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 1);</div><div class="line"><a name="l04848"></a><span class="lineno"> 4848</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04849"></a><span class="lineno"> 4849</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04850"></a><span class="lineno"> 4850</span>  <span class="comment">/* rotate right the low 16-bits into tmq */</span></div><div class="line"><a name="l04851"></a><span class="lineno"> 4851</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vec_sld (t_odd, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)tmq, 14);</div><div class="line"><a name="l04852"></a><span class="lineno"> 4852</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l04853"></a><span class="lineno"> 4853</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l04854"></a><span class="lineno"> 4854</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04855"></a><span class="lineno"> 4855</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04856"></a><span class="lineno"> 4856</span> </div><div class="line"><a name="l04857"></a><span class="lineno"> 4857</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 0);</div><div class="line"><a name="l04858"></a><span class="lineno"> 4858</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l04859"></a><span class="lineno"> 4859</span>  <span class="comment">/* rotate right the low 16-bits into tmq */</span></div><div class="line"><a name="l04860"></a><span class="lineno"> 4860</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vec_sld (t_odd, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)tmq, 14);</div><div class="line"><a name="l04861"></a><span class="lineno"> 4861</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04862"></a><span class="lineno"> 4862</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04863"></a><span class="lineno"> 4863</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) tmq);</div><div class="line"><a name="l04864"></a><span class="lineno"> 4864</span> }</div><div class="line"><a name="l04865"></a><span class="lineno"> 4865</span> </div><div class="line"><a name="l04883"></a><span class="lineno"> 4883</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l04884"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#aee5c5b2998ef105b4c6f39739748ffa8"> 4884</a></span> <a class="code" href="vec__int128__ppc_8h.html#aee5c5b2998ef105b4c6f39739748ffa8">vec_muludq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> *mulu, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b)</div><div class="line"><a name="l04885"></a><span class="lineno"> 4885</span> {</div><div class="line"><a name="l04886"></a><span class="lineno"> 4886</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t, tmq;</div><div class="line"><a name="l04887"></a><span class="lineno"> 4887</span>  <span class="comment">/* compute the 256 bit product of two 128 bit values a, b.</span></div><div class="line"><a name="l04888"></a><span class="lineno"> 4888</span> <span class="comment"> * The high 128 bits are accumulated in t and the low 128-bits</span></div><div class="line"><a name="l04889"></a><span class="lineno"> 4889</span> <span class="comment"> * in tmq. The high 128-bits of the product are returned to the</span></div><div class="line"><a name="l04890"></a><span class="lineno"> 4890</span> <span class="comment"> * address of the 1st parm. The low 128-bits are the return</span></div><div class="line"><a name="l04891"></a><span class="lineno"> 4891</span> <span class="comment"> * value.</span></div><div class="line"><a name="l04892"></a><span class="lineno"> 4892</span> <span class="comment"> */</span></div><div class="line"><a name="l04893"></a><span class="lineno"> 4893</span> <span class="preprocessor">#ifdef _ARCH_PWR9</span></div><div class="line"><a name="l04894"></a><span class="lineno"> 4894</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> zero = { 0, 0 };</div><div class="line"><a name="l04895"></a><span class="lineno"> 4895</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> a_swap = <a class="code" href="vec__int64__ppc_8h.html#a42d2b39711c06106097ef869a20420b6">vec_swapd</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) a);</div><div class="line"><a name="l04896"></a><span class="lineno"> 4896</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> thq, tlq, tx;</div><div class="line"><a name="l04897"></a><span class="lineno"> 4897</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> t0l, tc1;</div><div class="line"><a name="l04898"></a><span class="lineno"> 4898</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> thh, thl, tlh, tll;</div><div class="line"><a name="l04899"></a><span class="lineno"> 4899</span>  <span class="comment">/* multiply the low 64-bits of a and b. For PWR9 this is just</span></div><div class="line"><a name="l04900"></a><span class="lineno"> 4900</span> <span class="comment"> * vmsumudm with conditioned inputs. */</span></div><div class="line"><a name="l04901"></a><span class="lineno"> 4901</span>  tll = <a class="code" href="vec__int128__ppc_8h.html#a208744996e7482604ad274b44999d6ce">vec_vmuloud</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>)a, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>)b);</div><div class="line"><a name="l04902"></a><span class="lineno"> 4902</span>  thh = <a class="code" href="vec__int128__ppc_8h.html#a84e6361054b52ac4564bcef25b718151">vec_vmuleud</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>)a, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>)b);</div><div class="line"><a name="l04903"></a><span class="lineno"> 4903</span>  thl = <a class="code" href="vec__int128__ppc_8h.html#a208744996e7482604ad274b44999d6ce">vec_vmuloud</a> (a_swap, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>)b);</div><div class="line"><a name="l04904"></a><span class="lineno"> 4904</span>  tlh = <a class="code" href="vec__int128__ppc_8h.html#a84e6361054b52ac4564bcef25b718151">vec_vmuleud</a> (a_swap, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>)b);</div><div class="line"><a name="l04905"></a><span class="lineno"> 4905</span>  <span class="comment">/* sum the two middle products (plus the high 64-bits of the low</span></div><div class="line"><a name="l04906"></a><span class="lineno"> 4906</span> <span class="comment"> * product. This will generate a carry that we need to capture. */</span></div><div class="line"><a name="l04907"></a><span class="lineno"> 4907</span>  t0l = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) <a class="code" href="vec__int64__ppc_8h.html#acd5bafec6c1c15b0336551e82d1169d4">vec_mrgahd</a> ( (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero, tll);</div><div class="line"><a name="l04908"></a><span class="lineno"> 4908</span>  tc1 = <a class="code" href="vec__int128__ppc_8h.html#ad7aaadba249ce46c4c94f78df1020da3">vec_addcuq</a> (thl, tlh);</div><div class="line"><a name="l04909"></a><span class="lineno"> 4909</span>  tx = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (thl, tlh);</div><div class="line"><a name="l04910"></a><span class="lineno"> 4910</span>  tx = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (tx, t0l);</div><div class="line"><a name="l04911"></a><span class="lineno"> 4911</span>  <span class="comment">/* result = t[l] || tll[l]. */</span></div><div class="line"><a name="l04912"></a><span class="lineno"> 4912</span>  tlq = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) <a class="code" href="vec__int64__ppc_8h.html#a5242d6311cd5ab50377cfeb2cf2ac8bf">vec_mrgald</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) tx, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) tll);</div><div class="line"><a name="l04913"></a><span class="lineno"> 4913</span>  <span class="comment">/* Sum the high product plus the high sum (with carry) of middle</span></div><div class="line"><a name="l04914"></a><span class="lineno"> 4914</span> <span class="comment"> * partial products. This can't overflow. */</span></div><div class="line"><a name="l04915"></a><span class="lineno"> 4915</span>  thq = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) <a class="code" href="vec__int64__ppc_8h.html#a8238ba590103ac80fb146a6a2b1aed1c">vec_permdi</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) tc1, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) tx, 2);</div><div class="line"><a name="l04916"></a><span class="lineno"> 4916</span>  thq = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ( thh, thq);</div><div class="line"><a name="l04917"></a><span class="lineno"> 4917</span> </div><div class="line"><a name="l04918"></a><span class="lineno"> 4918</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) thq;</div><div class="line"><a name="l04919"></a><span class="lineno"> 4919</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) tlq;</div><div class="line"><a name="l04920"></a><span class="lineno"> 4920</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04921"></a><span class="lineno"> 4921</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l04922"></a><span class="lineno"> 4922</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> tsw;</div><div class="line"><a name="l04923"></a><span class="lineno"> 4923</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t_odd, t_even;</div><div class="line"><a name="l04924"></a><span class="lineno"> 4924</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> z = { 0, 0, 0, 0 };</div><div class="line"><a name="l04925"></a><span class="lineno"> 4925</span>  <span class="comment">/* We use the Vector Multiple Even/Odd Unsigned Word to compute</span></div><div class="line"><a name="l04926"></a><span class="lineno"> 4926</span> <span class="comment"> * the 128 x 32 partial (160-bit) product of value a with the</span></div><div class="line"><a name="l04927"></a><span class="lineno"> 4927</span> <span class="comment"> * word splat of b. This produces four 64-bit (32 x 32)</span></div><div class="line"><a name="l04928"></a><span class="lineno"> 4928</span> <span class="comment"> * partial products in two vector registers.</span></div><div class="line"><a name="l04929"></a><span class="lineno"> 4929</span> <span class="comment"> *</span></div><div class="line"><a name="l04930"></a><span class="lineno"> 4930</span> <span class="comment"> * These results</span></div><div class="line"><a name="l04931"></a><span class="lineno"> 4931</span> <span class="comment"> * are not aligned for summation as is. So the odd result is</span></div><div class="line"><a name="l04932"></a><span class="lineno"> 4932</span> <span class="comment"> * shifted right 32-bits before it is summed (via Vector Add</span></div><div class="line"><a name="l04933"></a><span class="lineno"> 4933</span> <span class="comment"> * Unsigned Quadword Modulo) with the the even result.</span></div><div class="line"><a name="l04934"></a><span class="lineno"> 4934</span> <span class="comment"> * The low order 32-bits, of the 160-bit product</span></div><div class="line"><a name="l04935"></a><span class="lineno"> 4935</span> <span class="comment"> * is shifted (right) in to a separate vector (tmq).</span></div><div class="line"><a name="l04936"></a><span class="lineno"> 4936</span> <span class="comment"> *</span></div><div class="line"><a name="l04937"></a><span class="lineno"> 4937</span> <span class="comment"> * This is repeated for each (low to high order) words of b.</span></div><div class="line"><a name="l04938"></a><span class="lineno"> 4938</span> <span class="comment"> * After the first (160-bit) partial product, the high 128-bits</span></div><div class="line"><a name="l04939"></a><span class="lineno"> 4939</span> <span class="comment"> * (t) of the previous partial product is summed with the current</span></div><div class="line"><a name="l04940"></a><span class="lineno"> 4940</span> <span class="comment"> * odd multiply result, before this sum (including any carry out)</span></div><div class="line"><a name="l04941"></a><span class="lineno"> 4941</span> <span class="comment"> * is shifted right 32-bits. Bits shifted out of the of this sum</span></div><div class="line"><a name="l04942"></a><span class="lineno"> 4942</span> <span class="comment"> * are shifted (32-bits at a time) into the low order 128-bits</span></div><div class="line"><a name="l04943"></a><span class="lineno"> 4943</span> <span class="comment"> * of the product (tmq). The shifted odd sum is then added to the</span></div><div class="line"><a name="l04944"></a><span class="lineno"> 4944</span> <span class="comment"> * current even product, After the 4th step this sum is the</span></div><div class="line"><a name="l04945"></a><span class="lineno"> 4945</span> <span class="comment"> * final high order 128-bits of the quadword product. */</span></div><div class="line"><a name="l04946"></a><span class="lineno"> 4946</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b, <a class="code" href="vec__common__ppc_8h.html#abf3504d2f86f03f90239a3196da3b3de">VEC_WE_3</a>);</div><div class="line"><a name="l04947"></a><span class="lineno"> 4947</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int32__ppc_8h.html#ae30f226bd27241513f0611b50967a080">vec_vmuleuw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw);</div><div class="line"><a name="l04948"></a><span class="lineno"> 4948</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int32__ppc_8h.html#ae52349ced57857d20fb5e06b1b09cc05">vec_vmulouw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw);</div><div class="line"><a name="l04949"></a><span class="lineno"> 4949</span>  <span class="comment">/* Rotate the low 32-bits (right) into tmq. This is actually</span></div><div class="line"><a name="l04950"></a><span class="lineno"> 4950</span> <span class="comment"> * implemented as 96-bit (12-byte) shift left. */</span></div><div class="line"><a name="l04951"></a><span class="lineno"> 4951</span>  tmq = vec_sld (t_odd, z, 12);</div><div class="line"><a name="l04952"></a><span class="lineno"> 4952</span>  <span class="comment">/* shift the low 128 bits of partial product right 32-bits */</span></div><div class="line"><a name="l04953"></a><span class="lineno"> 4953</span>  t_odd = vec_sld (z, t_odd, 12);</div><div class="line"><a name="l04954"></a><span class="lineno"> 4954</span>  <span class="comment">/* add the high 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04955"></a><span class="lineno"> 4955</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04956"></a><span class="lineno"> 4956</span> </div><div class="line"><a name="l04957"></a><span class="lineno"> 4957</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b, <a class="code" href="vec__common__ppc_8h.html#ad739666851dfec6cc520c2ee06fd5d41">VEC_WE_2</a>);</div><div class="line"><a name="l04958"></a><span class="lineno"> 4958</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a1e20bdd1df7e3e49dca06d5512ada84b">vec_vmaddeuw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, t);</div><div class="line"><a name="l04959"></a><span class="lineno"> 4959</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a32acead723b7867ff4c9f8be9bb708ca">vec_vmaddouw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, t);</div><div class="line"><a name="l04960"></a><span class="lineno"> 4960</span>  <span class="comment">/* rotate right the low 32-bits into tmq */</span></div><div class="line"><a name="l04961"></a><span class="lineno"> 4961</span>  tmq = vec_sld (t_odd, tmq, 12);</div><div class="line"><a name="l04962"></a><span class="lineno"> 4962</span>  <span class="comment">/* shift the low 128 bits of partial product right 32-bits */</span></div><div class="line"><a name="l04963"></a><span class="lineno"> 4963</span>  t_odd = vec_sld (z, t_odd, 12);</div><div class="line"><a name="l04964"></a><span class="lineno"> 4964</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04965"></a><span class="lineno"> 4965</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04966"></a><span class="lineno"> 4966</span> </div><div class="line"><a name="l04967"></a><span class="lineno"> 4967</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b, <a class="code" href="vec__common__ppc_8h.html#a0cbf2bc0426544f7d64ce84da322a919">VEC_WE_1</a>);</div><div class="line"><a name="l04968"></a><span class="lineno"> 4968</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a1e20bdd1df7e3e49dca06d5512ada84b">vec_vmaddeuw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, t);</div><div class="line"><a name="l04969"></a><span class="lineno"> 4969</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a32acead723b7867ff4c9f8be9bb708ca">vec_vmaddouw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, t);</div><div class="line"><a name="l04970"></a><span class="lineno"> 4970</span>  <span class="comment">/* rotate right the low 32-bits into tmq */</span></div><div class="line"><a name="l04971"></a><span class="lineno"> 4971</span>  tmq = vec_sld (t_odd, tmq, 12);</div><div class="line"><a name="l04972"></a><span class="lineno"> 4972</span>  <span class="comment">/* shift the low 128 bits of partial product right 32-bits */</span></div><div class="line"><a name="l04973"></a><span class="lineno"> 4973</span>  t_odd = vec_sld (z, t_odd, 12);</div><div class="line"><a name="l04974"></a><span class="lineno"> 4974</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04975"></a><span class="lineno"> 4975</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04976"></a><span class="lineno"> 4976</span> </div><div class="line"><a name="l04977"></a><span class="lineno"> 4977</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b, <a class="code" href="vec__common__ppc_8h.html#aa4c9ef3ba2f2c2a8b33f4f4459bbd2aa">VEC_WE_0</a>);</div><div class="line"><a name="l04978"></a><span class="lineno"> 4978</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a1e20bdd1df7e3e49dca06d5512ada84b">vec_vmaddeuw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, t);</div><div class="line"><a name="l04979"></a><span class="lineno"> 4979</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a32acead723b7867ff4c9f8be9bb708ca">vec_vmaddouw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, t);</div><div class="line"><a name="l04980"></a><span class="lineno"> 4980</span>  <span class="comment">/* rotate right the low 32-bits into tmq */</span></div><div class="line"><a name="l04981"></a><span class="lineno"> 4981</span>  tmq = vec_sld (t_odd, tmq, 12);</div><div class="line"><a name="l04982"></a><span class="lineno"> 4982</span>  <span class="comment">/* shift the low 128 bits of partial product right 32-bits */</span></div><div class="line"><a name="l04983"></a><span class="lineno"> 4983</span>  t_odd = vec_sld (z, t_odd, 12);</div><div class="line"><a name="l04984"></a><span class="lineno"> 4984</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l04985"></a><span class="lineno"> 4985</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l04986"></a><span class="lineno"> 4986</span> <span class="preprocessor">#else // _ARCH_PWR7 or earlier and Big Endian only. */</span></div><div class="line"><a name="l04987"></a><span class="lineno"> 4987</span>  <span class="comment">/* We use Vector Multiply Even/Odd Unsigned Halfword to compute</span></div><div class="line"><a name="l04988"></a><span class="lineno"> 4988</span> <span class="comment"> * the 128 x 16 partial (144-bit) product of vector a with a</span></div><div class="line"><a name="l04989"></a><span class="lineno"> 4989</span> <span class="comment"> * halfword element of b. The (for each halfword of vector b)</span></div><div class="line"><a name="l04990"></a><span class="lineno"> 4990</span> <span class="comment"> * 8 X 144-bit partial products are summed to produce the full</span></div><div class="line"><a name="l04991"></a><span class="lineno"> 4991</span> <span class="comment"> * 256-bit product. */</span></div><div class="line"><a name="l04992"></a><span class="lineno"> 4992</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> tsw;</div><div class="line"><a name="l04993"></a><span class="lineno"> 4993</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> t_odd, t_even;</div><div class="line"><a name="l04994"></a><span class="lineno"> 4994</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> z = { 0, 0, 0, 0, 0, 0, 0, 0 };</div><div class="line"><a name="l04995"></a><span class="lineno"> 4995</span> </div><div class="line"><a name="l04996"></a><span class="lineno"> 4996</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 7);</div><div class="line"><a name="l04997"></a><span class="lineno"> 4997</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)vec_vmuleuh((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)a, tsw);</div><div class="line"><a name="l04998"></a><span class="lineno"> 4998</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)vec_vmulouh((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)a, tsw);</div><div class="line"><a name="l04999"></a><span class="lineno"> 4999</span> </div><div class="line"><a name="l05000"></a><span class="lineno"> 5000</span>  <span class="comment">/* Rotate the low 16-bits (right) into tmq. This is actually</span></div><div class="line"><a name="l05001"></a><span class="lineno"> 5001</span> <span class="comment"> * implemented as 112-bit (14-byte) shift left. */</span></div><div class="line"><a name="l05002"></a><span class="lineno"> 5002</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vec_sld (t_odd, z, 14);</div><div class="line"><a name="l05003"></a><span class="lineno"> 5003</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l05004"></a><span class="lineno"> 5004</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l05005"></a><span class="lineno"> 5005</span>  <span class="comment">/* add the high 128 bits of even / odd partial products */</span></div><div class="line"><a name="l05006"></a><span class="lineno"> 5006</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l05007"></a><span class="lineno"> 5007</span> </div><div class="line"><a name="l05008"></a><span class="lineno"> 5008</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 6);</div><div class="line"><a name="l05009"></a><span class="lineno"> 5009</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05010"></a><span class="lineno"> 5010</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05011"></a><span class="lineno"> 5011</span>  <span class="comment">/* rotate right the low 16-bits into tmq */</span></div><div class="line"><a name="l05012"></a><span class="lineno"> 5012</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vec_sld (t_odd, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)tmq, 14);</div><div class="line"><a name="l05013"></a><span class="lineno"> 5013</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l05014"></a><span class="lineno"> 5014</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l05015"></a><span class="lineno"> 5015</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l05016"></a><span class="lineno"> 5016</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l05017"></a><span class="lineno"> 5017</span> </div><div class="line"><a name="l05018"></a><span class="lineno"> 5018</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 5);</div><div class="line"><a name="l05019"></a><span class="lineno"> 5019</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05020"></a><span class="lineno"> 5020</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05021"></a><span class="lineno"> 5021</span>  <span class="comment">/* rotate right the low 16-bits into tmq */</span></div><div class="line"><a name="l05022"></a><span class="lineno"> 5022</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vec_sld (t_odd, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)tmq, 14);</div><div class="line"><a name="l05023"></a><span class="lineno"> 5023</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l05024"></a><span class="lineno"> 5024</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l05025"></a><span class="lineno"> 5025</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l05026"></a><span class="lineno"> 5026</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l05027"></a><span class="lineno"> 5027</span> </div><div class="line"><a name="l05028"></a><span class="lineno"> 5028</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 4);</div><div class="line"><a name="l05029"></a><span class="lineno"> 5029</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05030"></a><span class="lineno"> 5030</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05031"></a><span class="lineno"> 5031</span>  <span class="comment">/* rotate right the low 16-bits into tmq */</span></div><div class="line"><a name="l05032"></a><span class="lineno"> 5032</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vec_sld (t_odd, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)tmq, 14);</div><div class="line"><a name="l05033"></a><span class="lineno"> 5033</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l05034"></a><span class="lineno"> 5034</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l05035"></a><span class="lineno"> 5035</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l05036"></a><span class="lineno"> 5036</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l05037"></a><span class="lineno"> 5037</span> </div><div class="line"><a name="l05038"></a><span class="lineno"> 5038</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 3);</div><div class="line"><a name="l05039"></a><span class="lineno"> 5039</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05040"></a><span class="lineno"> 5040</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05041"></a><span class="lineno"> 5041</span>  <span class="comment">/* rotate right the low 16-bits into tmq */</span></div><div class="line"><a name="l05042"></a><span class="lineno"> 5042</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vec_sld (t_odd, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)tmq, 14);</div><div class="line"><a name="l05043"></a><span class="lineno"> 5043</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l05044"></a><span class="lineno"> 5044</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l05045"></a><span class="lineno"> 5045</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l05046"></a><span class="lineno"> 5046</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l05047"></a><span class="lineno"> 5047</span> </div><div class="line"><a name="l05048"></a><span class="lineno"> 5048</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 2);</div><div class="line"><a name="l05049"></a><span class="lineno"> 5049</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05050"></a><span class="lineno"> 5050</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05051"></a><span class="lineno"> 5051</span>  <span class="comment">/* rotate right the low 16-bits into tmq */</span></div><div class="line"><a name="l05052"></a><span class="lineno"> 5052</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vec_sld (t_odd, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)tmq, 14);</div><div class="line"><a name="l05053"></a><span class="lineno"> 5053</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l05054"></a><span class="lineno"> 5054</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l05055"></a><span class="lineno"> 5055</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l05056"></a><span class="lineno"> 5056</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l05057"></a><span class="lineno"> 5057</span> </div><div class="line"><a name="l05058"></a><span class="lineno"> 5058</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 1);</div><div class="line"><a name="l05059"></a><span class="lineno"> 5059</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05060"></a><span class="lineno"> 5060</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05061"></a><span class="lineno"> 5061</span>  <span class="comment">/* rotate right the low 16-bits into tmq */</span></div><div class="line"><a name="l05062"></a><span class="lineno"> 5062</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vec_sld (t_odd, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)tmq, 14);</div><div class="line"><a name="l05063"></a><span class="lineno"> 5063</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l05064"></a><span class="lineno"> 5064</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l05065"></a><span class="lineno"> 5065</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l05066"></a><span class="lineno"> 5066</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l05067"></a><span class="lineno"> 5067</span> </div><div class="line"><a name="l05068"></a><span class="lineno"> 5068</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 0);</div><div class="line"><a name="l05069"></a><span class="lineno"> 5069</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05070"></a><span class="lineno"> 5070</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05071"></a><span class="lineno"> 5071</span>  <span class="comment">/* rotate right the low 16-bits into tmq */</span></div><div class="line"><a name="l05072"></a><span class="lineno"> 5072</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vec_sld (t_odd, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)tmq, 14);</div><div class="line"><a name="l05073"></a><span class="lineno"> 5073</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l05074"></a><span class="lineno"> 5074</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l05075"></a><span class="lineno"> 5075</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l05076"></a><span class="lineno"> 5076</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l05077"></a><span class="lineno"> 5077</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l05078"></a><span class="lineno"> 5078</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l05079"></a><span class="lineno"> 5079</span>  *mulu = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t;</div><div class="line"><a name="l05080"></a><span class="lineno"> 5080</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) tmq);</div><div class="line"><a name="l05081"></a><span class="lineno"> 5081</span> }</div><div class="line"><a name="l05082"></a><span class="lineno"> 5082</span> </div><div class="line"><a name="l05105"></a><span class="lineno"> 5105</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l05106"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a2a38409db81a0765586023d5874ab6b0"> 5106</a></span> <a class="code" href="vec__int128__ppc_8h.html#a2a38409db81a0765586023d5874ab6b0">vec_madduq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> *mulu, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> c)</div><div class="line"><a name="l05107"></a><span class="lineno"> 5107</span> {</div><div class="line"><a name="l05108"></a><span class="lineno"> 5108</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> ph, pl;</div><div class="line"><a name="l05109"></a><span class="lineno"> 5109</span> <span class="preprocessor">#ifdef _ARCH_PWR9</span></div><div class="line"><a name="l05110"></a><span class="lineno"> 5110</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> a_swap = <a class="code" href="vec__int64__ppc_8h.html#a42d2b39711c06106097ef869a20420b6">vec_swapd</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) a);</div><div class="line"><a name="l05111"></a><span class="lineno"> 5111</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> thq, tlq, tx;</div><div class="line"><a name="l05112"></a><span class="lineno"> 5112</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> t0l, tc1, tcl;</div><div class="line"><a name="l05113"></a><span class="lineno"> 5113</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> thh, thl, tlh, tll;</div><div class="line"><a name="l05114"></a><span class="lineno"> 5114</span>  <span class="comment">/* multiply the low 64-bits of a and b. For PWR9 this is just</span></div><div class="line"><a name="l05115"></a><span class="lineno"> 5115</span> <span class="comment"> * vmsumudm with conditioned inputs. */</span></div><div class="line"><a name="l05116"></a><span class="lineno"> 5116</span>  tll = <a class="code" href="vec__int128__ppc_8h.html#a208744996e7482604ad274b44999d6ce">vec_vmuloud</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>)a, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>)b);</div><div class="line"><a name="l05117"></a><span class="lineno"> 5117</span>  thh = <a class="code" href="vec__int128__ppc_8h.html#a84e6361054b52ac4564bcef25b718151">vec_vmuleud</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>)a, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>)b);</div><div class="line"><a name="l05118"></a><span class="lineno"> 5118</span>  thl = <a class="code" href="vec__int128__ppc_8h.html#a208744996e7482604ad274b44999d6ce">vec_vmuloud</a> (a_swap, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>)b);</div><div class="line"><a name="l05119"></a><span class="lineno"> 5119</span>  tlh = <a class="code" href="vec__int128__ppc_8h.html#a84e6361054b52ac4564bcef25b718151">vec_vmuleud</a> (a_swap, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>)b);</div><div class="line"><a name="l05120"></a><span class="lineno"> 5120</span>  <span class="comment">/* Add c to lower 128-bits of the partial product. */</span></div><div class="line"><a name="l05121"></a><span class="lineno"> 5121</span>  tcl = <a class="code" href="vec__int128__ppc_8h.html#ad7aaadba249ce46c4c94f78df1020da3">vec_addcuq</a> (tll, c);</div><div class="line"><a name="l05122"></a><span class="lineno"> 5122</span>  tll = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (tll, c);</div><div class="line"><a name="l05123"></a><span class="lineno"> 5123</span>  t0l = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) <a class="code" href="vec__int64__ppc_8h.html#a8238ba590103ac80fb146a6a2b1aed1c">vec_permdi</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) tcl, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) tll, 2);</div><div class="line"><a name="l05124"></a><span class="lineno"> 5124</span>  <span class="comment">/* sum the two middle products (plus the high 64-bits of the low</span></div><div class="line"><a name="l05125"></a><span class="lineno"> 5125</span> <span class="comment"> * product. This will generate a carry that we need to capture. */</span></div><div class="line"><a name="l05126"></a><span class="lineno"> 5126</span>  tc1 = <a class="code" href="vec__int128__ppc_8h.html#ad7aaadba249ce46c4c94f78df1020da3">vec_addcuq</a> (thl, tlh);</div><div class="line"><a name="l05127"></a><span class="lineno"> 5127</span>  tx = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (thl, tlh);</div><div class="line"><a name="l05128"></a><span class="lineno"> 5128</span>  tx = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (tx, t0l);</div><div class="line"><a name="l05129"></a><span class="lineno"> 5129</span>  <span class="comment">/* result = t[l] || tll[l]. */</span></div><div class="line"><a name="l05130"></a><span class="lineno"> 5130</span>  tlq = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) <a class="code" href="vec__int64__ppc_8h.html#a5242d6311cd5ab50377cfeb2cf2ac8bf">vec_mrgald</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) tx, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) tll);</div><div class="line"><a name="l05131"></a><span class="lineno"> 5131</span>  <span class="comment">/* Sum the high product plus the high sum (with carry) of middle</span></div><div class="line"><a name="l05132"></a><span class="lineno"> 5132</span> <span class="comment"> * partial products. This can't overflow. */</span></div><div class="line"><a name="l05133"></a><span class="lineno"> 5133</span>  thq = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) <a class="code" href="vec__int64__ppc_8h.html#a8238ba590103ac80fb146a6a2b1aed1c">vec_permdi</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) tc1, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) tx, 2);</div><div class="line"><a name="l05134"></a><span class="lineno"> 5134</span>  thq = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ( thh, thq);</div><div class="line"><a name="l05135"></a><span class="lineno"> 5135</span> </div><div class="line"><a name="l05136"></a><span class="lineno"> 5136</span>  pl = tlq;</div><div class="line"><a name="l05137"></a><span class="lineno"> 5137</span>  ph = thq;</div><div class="line"><a name="l05138"></a><span class="lineno"> 5138</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l05139"></a><span class="lineno"> 5139</span> <span class="preprocessor">#if _ARCH_PWR8</span></div><div class="line"><a name="l05140"></a><span class="lineno"> 5140</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t, tmq;</div><div class="line"><a name="l05141"></a><span class="lineno"> 5141</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> tsw;</div><div class="line"><a name="l05142"></a><span class="lineno"> 5142</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t_odd, t_even;</div><div class="line"><a name="l05143"></a><span class="lineno"> 5143</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> z = { 0, 0, 0, 0 };</div><div class="line"><a name="l05144"></a><span class="lineno"> 5144</span>  <span class="comment">/* We use Vector Multiple Even/Odd Unsigned Word to compute</span></div><div class="line"><a name="l05145"></a><span class="lineno"> 5145</span> <span class="comment"> * a 128 x 32 partial (160-bit) product of value a with the</span></div><div class="line"><a name="l05146"></a><span class="lineno"> 5146</span> <span class="comment"> * word splat [3,2,1,0] of b in 4 steps. Each step produces</span></div><div class="line"><a name="l05147"></a><span class="lineno"> 5147</span> <span class="comment"> * four 64-bit (32 x 32) partial products in two vector registers.</span></div><div class="line"><a name="l05148"></a><span class="lineno"> 5148</span> <span class="comment"> * These must be shifted for alignment and summed (128-bit add)</span></div><div class="line"><a name="l05149"></a><span class="lineno"> 5149</span> <span class="comment"> * to product the 160-bit partial product.</span></div><div class="line"><a name="l05150"></a><span class="lineno"> 5150</span> <span class="comment"> *</span></div><div class="line"><a name="l05151"></a><span class="lineno"> 5151</span> <span class="comment"> * These results</span></div><div class="line"><a name="l05152"></a><span class="lineno"> 5152</span> <span class="comment"> * are not aligned for summation as is. So the odd result is</span></div><div class="line"><a name="l05153"></a><span class="lineno"> 5153</span> <span class="comment"> * shifted right 32-bits before it is summed (via Vector Add</span></div><div class="line"><a name="l05154"></a><span class="lineno"> 5154</span> <span class="comment"> * Unsigned Quadword Modulo) with the the even result.</span></div><div class="line"><a name="l05155"></a><span class="lineno"> 5155</span> <span class="comment"> * The low order 32-bits, of the 160-bit product</span></div><div class="line"><a name="l05156"></a><span class="lineno"> 5156</span> <span class="comment"> * is shifted (right) in to a separate vector (tmq).</span></div><div class="line"><a name="l05157"></a><span class="lineno"> 5157</span> <span class="comment"> * This is repeated for each stage of the multiply, so that tmq</span></div><div class="line"><a name="l05158"></a><span class="lineno"> 5158</span> <span class="comment"> * accumulates the low order 128-bits of the 256-bit product.</span></div><div class="line"><a name="l05159"></a><span class="lineno"> 5159</span> <span class="comment"> *</span></div><div class="line"><a name="l05160"></a><span class="lineno"> 5160</span> <span class="comment"> * This is repeated for each (low to high order) words of b.</span></div><div class="line"><a name="l05161"></a><span class="lineno"> 5161</span> <span class="comment"> * After the first (160-bit) partial product, the high 128-bits</span></div><div class="line"><a name="l05162"></a><span class="lineno"> 5162</span> <span class="comment"> * (t) of the previous partial product is summed with the current</span></div><div class="line"><a name="l05163"></a><span class="lineno"> 5163</span> <span class="comment"> * odd multiply result, before this sum (including any carry out)</span></div><div class="line"><a name="l05164"></a><span class="lineno"> 5164</span> <span class="comment"> * is shifted right 32-bits. Bits shifted out of the of this sum</span></div><div class="line"><a name="l05165"></a><span class="lineno"> 5165</span> <span class="comment"> * are shifted (32-bits at a time) into the low order 128-bits</span></div><div class="line"><a name="l05166"></a><span class="lineno"> 5166</span> <span class="comment"> * of the product (tmq). The shifted odd sum is then added to the</span></div><div class="line"><a name="l05167"></a><span class="lineno"> 5167</span> <span class="comment"> * current even product, After the 4th step this sum is the</span></div><div class="line"><a name="l05168"></a><span class="lineno"> 5168</span> <span class="comment"> * final high order 128-bits of the quadword product. */</span></div><div class="line"><a name="l05169"></a><span class="lineno"> 5169</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b, <a class="code" href="vec__common__ppc_8h.html#abf3504d2f86f03f90239a3196da3b3de">VEC_WE_3</a>);</div><div class="line"><a name="l05170"></a><span class="lineno"> 5170</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a1e20bdd1df7e3e49dca06d5512ada84b">vec_vmaddeuw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw,(<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)c);</div><div class="line"><a name="l05171"></a><span class="lineno"> 5171</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a32acead723b7867ff4c9f8be9bb708ca">vec_vmaddouw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)c);</div><div class="line"><a name="l05172"></a><span class="lineno"> 5172</span>  <span class="comment">/* Rotate the low 32-bits (right) into tmq. This is actually</span></div><div class="line"><a name="l05173"></a><span class="lineno"> 5173</span> <span class="comment"> * implemented as 96-bit (12-byte) shift left. */</span></div><div class="line"><a name="l05174"></a><span class="lineno"> 5174</span>  tmq = vec_sld (t_odd, z, 12);</div><div class="line"><a name="l05175"></a><span class="lineno"> 5175</span>  <span class="comment">/* shift the low 128 bits of partial product right 32-bits */</span></div><div class="line"><a name="l05176"></a><span class="lineno"> 5176</span>  t_odd = vec_sld (z, t_odd, 12);</div><div class="line"><a name="l05177"></a><span class="lineno"> 5177</span>  <span class="comment">/* add the high 128 bits of even / odd partial products */</span></div><div class="line"><a name="l05178"></a><span class="lineno"> 5178</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l05179"></a><span class="lineno"> 5179</span> </div><div class="line"><a name="l05180"></a><span class="lineno"> 5180</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b, <a class="code" href="vec__common__ppc_8h.html#ad739666851dfec6cc520c2ee06fd5d41">VEC_WE_2</a>);</div><div class="line"><a name="l05181"></a><span class="lineno"> 5181</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a1e20bdd1df7e3e49dca06d5512ada84b">vec_vmaddeuw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, t);</div><div class="line"><a name="l05182"></a><span class="lineno"> 5182</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a32acead723b7867ff4c9f8be9bb708ca">vec_vmaddouw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, t);</div><div class="line"><a name="l05183"></a><span class="lineno"> 5183</span>  <span class="comment">/* rotate right the low 32-bits into tmq */</span></div><div class="line"><a name="l05184"></a><span class="lineno"> 5184</span>  tmq = vec_sld (t_odd, tmq, 12);</div><div class="line"><a name="l05185"></a><span class="lineno"> 5185</span>  <span class="comment">/* shift the low 128 bits of partial product right 32-bits */</span></div><div class="line"><a name="l05186"></a><span class="lineno"> 5186</span>  t_odd = vec_sld (z, t_odd, 12);</div><div class="line"><a name="l05187"></a><span class="lineno"> 5187</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l05188"></a><span class="lineno"> 5188</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l05189"></a><span class="lineno"> 5189</span> </div><div class="line"><a name="l05190"></a><span class="lineno"> 5190</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b, <a class="code" href="vec__common__ppc_8h.html#a0cbf2bc0426544f7d64ce84da322a919">VEC_WE_1</a>);</div><div class="line"><a name="l05191"></a><span class="lineno"> 5191</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a1e20bdd1df7e3e49dca06d5512ada84b">vec_vmaddeuw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, t);</div><div class="line"><a name="l05192"></a><span class="lineno"> 5192</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a32acead723b7867ff4c9f8be9bb708ca">vec_vmaddouw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, t);</div><div class="line"><a name="l05193"></a><span class="lineno"> 5193</span>  <span class="comment">/* rotate right the low 32-bits into tmq */</span></div><div class="line"><a name="l05194"></a><span class="lineno"> 5194</span>  tmq = vec_sld (t_odd, tmq, 12);</div><div class="line"><a name="l05195"></a><span class="lineno"> 5195</span>  <span class="comment">/* shift the low 128 bits of partial product right 32-bits */</span></div><div class="line"><a name="l05196"></a><span class="lineno"> 5196</span>  t_odd = vec_sld (z, t_odd, 12);</div><div class="line"><a name="l05197"></a><span class="lineno"> 5197</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l05198"></a><span class="lineno"> 5198</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l05199"></a><span class="lineno"> 5199</span> </div><div class="line"><a name="l05200"></a><span class="lineno"> 5200</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b, <a class="code" href="vec__common__ppc_8h.html#aa4c9ef3ba2f2c2a8b33f4f4459bbd2aa">VEC_WE_0</a>);</div><div class="line"><a name="l05201"></a><span class="lineno"> 5201</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a1e20bdd1df7e3e49dca06d5512ada84b">vec_vmaddeuw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, t);</div><div class="line"><a name="l05202"></a><span class="lineno"> 5202</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)<a class="code" href="vec__int64__ppc_8h.html#a32acead723b7867ff4c9f8be9bb708ca">vec_vmaddouw</a>((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)a, tsw, t);</div><div class="line"><a name="l05203"></a><span class="lineno"> 5203</span>  <span class="comment">/* rotate right the low 32-bits into tmq */</span></div><div class="line"><a name="l05204"></a><span class="lineno"> 5204</span>  tmq = vec_sld (t_odd, tmq, 12);</div><div class="line"><a name="l05205"></a><span class="lineno"> 5205</span>  <span class="comment">/* shift the low 128 bits of partial product right 32-bits */</span></div><div class="line"><a name="l05206"></a><span class="lineno"> 5206</span>  t_odd = vec_sld (z, t_odd, 12);</div><div class="line"><a name="l05207"></a><span class="lineno"> 5207</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l05208"></a><span class="lineno"> 5208</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l05209"></a><span class="lineno"> 5209</span>  ph = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t;</div><div class="line"><a name="l05210"></a><span class="lineno"> 5210</span>  pl = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) tmq;</div><div class="line"><a name="l05211"></a><span class="lineno"> 5211</span> <span class="preprocessor">#else // _ARCH_PWR7 or earlier and Big Endian only. */</span></div><div class="line"><a name="l05212"></a><span class="lineno"> 5212</span>  <span class="comment">/* We use Vector Multiply Even/Odd Unsigned Halfword to compute</span></div><div class="line"><a name="l05213"></a><span class="lineno"> 5213</span> <span class="comment"> * the 128 x 16 partial (144-bit) product of vector a with a</span></div><div class="line"><a name="l05214"></a><span class="lineno"> 5214</span> <span class="comment"> * halfword element of b. The (for each halfword of vector b)</span></div><div class="line"><a name="l05215"></a><span class="lineno"> 5215</span> <span class="comment"> * 8 X 144-bit partial products are summed to produce the full</span></div><div class="line"><a name="l05216"></a><span class="lineno"> 5216</span> <span class="comment"> * 256-bit product. */</span></div><div class="line"><a name="l05217"></a><span class="lineno"> 5217</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t, tmq;</div><div class="line"><a name="l05218"></a><span class="lineno"> 5218</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> tsw;</div><div class="line"><a name="l05219"></a><span class="lineno"> 5219</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> t_odd, t_even;</div><div class="line"><a name="l05220"></a><span class="lineno"> 5220</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> z = { 0, 0, 0, 0, 0, 0, 0, 0 };</div><div class="line"><a name="l05221"></a><span class="lineno"> 5221</span> </div><div class="line"><a name="l05222"></a><span class="lineno"> 5222</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 7);</div><div class="line"><a name="l05223"></a><span class="lineno"> 5223</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) c);</div><div class="line"><a name="l05224"></a><span class="lineno"> 5224</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) c);</div><div class="line"><a name="l05225"></a><span class="lineno"> 5225</span>  <span class="comment">/* Rotate the low 16-bits (right) into tmq. This is actually</span></div><div class="line"><a name="l05226"></a><span class="lineno"> 5226</span> <span class="comment"> * implemented as 112-bit (14-byte) shift left. */</span></div><div class="line"><a name="l05227"></a><span class="lineno"> 5227</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vec_sld (t_odd, z, 14);</div><div class="line"><a name="l05228"></a><span class="lineno"> 5228</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l05229"></a><span class="lineno"> 5229</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l05230"></a><span class="lineno"> 5230</span>  <span class="comment">/* add the high 128 bits of even / odd partial products */</span></div><div class="line"><a name="l05231"></a><span class="lineno"> 5231</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l05232"></a><span class="lineno"> 5232</span> </div><div class="line"><a name="l05233"></a><span class="lineno"> 5233</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 6);</div><div class="line"><a name="l05234"></a><span class="lineno"> 5234</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05235"></a><span class="lineno"> 5235</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05236"></a><span class="lineno"> 5236</span>  <span class="comment">/* rotate right the low 16-bits into tmq */</span></div><div class="line"><a name="l05237"></a><span class="lineno"> 5237</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vec_sld (t_odd, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)tmq, 14);</div><div class="line"><a name="l05238"></a><span class="lineno"> 5238</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l05239"></a><span class="lineno"> 5239</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l05240"></a><span class="lineno"> 5240</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l05241"></a><span class="lineno"> 5241</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l05242"></a><span class="lineno"> 5242</span> </div><div class="line"><a name="l05243"></a><span class="lineno"> 5243</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 5);</div><div class="line"><a name="l05244"></a><span class="lineno"> 5244</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05245"></a><span class="lineno"> 5245</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05246"></a><span class="lineno"> 5246</span>  <span class="comment">/* rotate right the low 16-bits into tmq */</span></div><div class="line"><a name="l05247"></a><span class="lineno"> 5247</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vec_sld (t_odd, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)tmq, 14);</div><div class="line"><a name="l05248"></a><span class="lineno"> 5248</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l05249"></a><span class="lineno"> 5249</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l05250"></a><span class="lineno"> 5250</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l05251"></a><span class="lineno"> 5251</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l05252"></a><span class="lineno"> 5252</span> </div><div class="line"><a name="l05253"></a><span class="lineno"> 5253</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 4);</div><div class="line"><a name="l05254"></a><span class="lineno"> 5254</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05255"></a><span class="lineno"> 5255</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05256"></a><span class="lineno"> 5256</span>  <span class="comment">/* rotate right the low 16-bits into tmq */</span></div><div class="line"><a name="l05257"></a><span class="lineno"> 5257</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vec_sld (t_odd, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)tmq, 14);</div><div class="line"><a name="l05258"></a><span class="lineno"> 5258</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l05259"></a><span class="lineno"> 5259</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l05260"></a><span class="lineno"> 5260</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l05261"></a><span class="lineno"> 5261</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l05262"></a><span class="lineno"> 5262</span> </div><div class="line"><a name="l05263"></a><span class="lineno"> 5263</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 3);</div><div class="line"><a name="l05264"></a><span class="lineno"> 5264</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05265"></a><span class="lineno"> 5265</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05266"></a><span class="lineno"> 5266</span>  <span class="comment">/* rotate right the low 16-bits into tmq */</span></div><div class="line"><a name="l05267"></a><span class="lineno"> 5267</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vec_sld (t_odd, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)tmq, 14);</div><div class="line"><a name="l05268"></a><span class="lineno"> 5268</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l05269"></a><span class="lineno"> 5269</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l05270"></a><span class="lineno"> 5270</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l05271"></a><span class="lineno"> 5271</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l05272"></a><span class="lineno"> 5272</span> </div><div class="line"><a name="l05273"></a><span class="lineno"> 5273</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 2);</div><div class="line"><a name="l05274"></a><span class="lineno"> 5274</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05275"></a><span class="lineno"> 5275</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05276"></a><span class="lineno"> 5276</span>  <span class="comment">/* rotate right the low 16-bits into tmq */</span></div><div class="line"><a name="l05277"></a><span class="lineno"> 5277</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vec_sld (t_odd, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)tmq, 14);</div><div class="line"><a name="l05278"></a><span class="lineno"> 5278</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l05279"></a><span class="lineno"> 5279</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l05280"></a><span class="lineno"> 5280</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l05281"></a><span class="lineno"> 5281</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l05282"></a><span class="lineno"> 5282</span> </div><div class="line"><a name="l05283"></a><span class="lineno"> 5283</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 1);</div><div class="line"><a name="l05284"></a><span class="lineno"> 5284</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05285"></a><span class="lineno"> 5285</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05286"></a><span class="lineno"> 5286</span>  <span class="comment">/* rotate right the low 16-bits into tmq */</span></div><div class="line"><a name="l05287"></a><span class="lineno"> 5287</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vec_sld (t_odd, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)tmq, 14);</div><div class="line"><a name="l05288"></a><span class="lineno"> 5288</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l05289"></a><span class="lineno"> 5289</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l05290"></a><span class="lineno"> 5290</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l05291"></a><span class="lineno"> 5291</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l05292"></a><span class="lineno"> 5292</span> </div><div class="line"><a name="l05293"></a><span class="lineno"> 5293</span>  tsw = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) b, 0);</div><div class="line"><a name="l05294"></a><span class="lineno"> 5294</span>  t_even = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05295"></a><span class="lineno"> 5295</span>  t_odd = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)<a class="code" href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a>((<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) a, tsw, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) t);</div><div class="line"><a name="l05296"></a><span class="lineno"> 5296</span>  <span class="comment">/* rotate right the low 16-bits into tmq */</span></div><div class="line"><a name="l05297"></a><span class="lineno"> 5297</span>  tmq = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vec_sld (t_odd, (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>)tmq, 14);</div><div class="line"><a name="l05298"></a><span class="lineno"> 5298</span>  <span class="comment">/* shift the low 128 bits of partial product right 16-bits */</span></div><div class="line"><a name="l05299"></a><span class="lineno"> 5299</span>  t_odd = vec_sld (z, t_odd, 14);</div><div class="line"><a name="l05300"></a><span class="lineno"> 5300</span>  <span class="comment">/* add the top 128 bits of even / odd partial products */</span></div><div class="line"><a name="l05301"></a><span class="lineno"> 5301</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_even, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t_odd);</div><div class="line"><a name="l05302"></a><span class="lineno"> 5302</span>  ph = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t;</div><div class="line"><a name="l05303"></a><span class="lineno"> 5303</span>  pl = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) tmq;</div><div class="line"><a name="l05304"></a><span class="lineno"> 5304</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l05305"></a><span class="lineno"> 5305</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l05306"></a><span class="lineno"> 5306</span>  *mulu = ph;</div><div class="line"><a name="l05307"></a><span class="lineno"> 5307</span>  <span class="keywordflow">return</span> (pl);</div><div class="line"><a name="l05308"></a><span class="lineno"> 5308</span> }</div><div class="line"><a name="l05309"></a><span class="lineno"> 5309</span> </div><div class="line"><a name="l05333"></a><span class="lineno"> 5333</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l05334"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a7e7f25c382f8016baa6452fc02c03b83"> 5334</a></span> <a class="code" href="vec__int128__ppc_8h.html#a7e7f25c382f8016baa6452fc02c03b83">vec_madd2uq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> *mulu, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> a, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> b, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> c1, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> c2)</div><div class="line"><a name="l05335"></a><span class="lineno"> 5335</span> {</div><div class="line"><a name="l05336"></a><span class="lineno"> 5336</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> ph, pl, cs;</div><div class="line"><a name="l05337"></a><span class="lineno"> 5337</span> <span class="preprocessor">#ifdef _ARCH_PWR9</span></div><div class="line"><a name="l05338"></a><span class="lineno"> 5338</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> cl;</div><div class="line"><a name="l05339"></a><span class="lineno"> 5339</span>  <span class="comment">// P9 has 3 cycles vadduqm so sum C1/C2 early</span></div><div class="line"><a name="l05340"></a><span class="lineno"> 5340</span>  cl = <a class="code" href="vec__int128__ppc_8h.html#ad7aaadba249ce46c4c94f78df1020da3">vec_addcuq</a> (c1, c2);</div><div class="line"><a name="l05341"></a><span class="lineno"> 5341</span>  cs = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (c1, c2);</div><div class="line"><a name="l05342"></a><span class="lineno"> 5342</span>  <span class="comment">// Pass the low 128-bit od C1/C2 sum into madduq</span></div><div class="line"><a name="l05343"></a><span class="lineno"> 5343</span>  pl = <a class="code" href="vec__int128__ppc_8h.html#a2a38409db81a0765586023d5874ab6b0">vec_madduq</a> (&ph, a, b, cs);</div><div class="line"><a name="l05344"></a><span class="lineno"> 5344</span>  <span class="comment">// Deal with C1/C2 carry last</span></div><div class="line"><a name="l05345"></a><span class="lineno"> 5345</span>  *mulu = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (ph, cl);</div><div class="line"><a name="l05346"></a><span class="lineno"> 5346</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l05347"></a><span class="lineno"> 5347</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l05348"></a><span class="lineno"> 5348</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> cl, cl2;</div><div class="line"><a name="l05349"></a><span class="lineno"> 5349</span>  <span class="comment">// P8 has vadduqm but slower, so sum C1/C2 early</span></div><div class="line"><a name="l05350"></a><span class="lineno"> 5350</span>  cl = <a class="code" href="vec__int128__ppc_8h.html#ad7aaadba249ce46c4c94f78df1020da3">vec_addcuq</a> (c1, c2);</div><div class="line"><a name="l05351"></a><span class="lineno"> 5351</span>  cs = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (c1, c2);</div><div class="line"><a name="l05352"></a><span class="lineno"> 5352</span>  <span class="comment">// Overlapping execution of vaddcuq/vadduqm with muludq</span></div><div class="line"><a name="l05353"></a><span class="lineno"> 5353</span>  pl = <a class="code" href="vec__int128__ppc_8h.html#aee5c5b2998ef105b4c6f39739748ffa8">vec_muludq</a> (&ph, a, b);</div><div class="line"><a name="l05354"></a><span class="lineno"> 5354</span>  <span class="comment">// Delay sum of product plus (c1 + c2) + (cl + cl2)</span></div><div class="line"><a name="l05355"></a><span class="lineno"> 5355</span>  cl2 = <a class="code" href="vec__int128__ppc_8h.html#ad7aaadba249ce46c4c94f78df1020da3">vec_addcuq</a> (pl, cs);</div><div class="line"><a name="l05356"></a><span class="lineno"> 5356</span>  pl = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (pl, cs);</div><div class="line"><a name="l05357"></a><span class="lineno"> 5357</span> </div><div class="line"><a name="l05358"></a><span class="lineno"> 5358</span>  *mulu = <a class="code" href="vec__int128__ppc_8h.html#a44e63f70b182d60fe03b43a80647451a">vec_addeuqm</a> (ph, cl, cl2);;</div><div class="line"><a name="l05359"></a><span class="lineno"> 5359</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l05360"></a><span class="lineno"> 5360</span>  <span class="comment">// P7 and earlier do not have vadduqm, must use vaddcuw/vadduwm</span></div><div class="line"><a name="l05361"></a><span class="lineno"> 5361</span>  <span class="comment">// so leverage madduq to sum (a * b) + c1</span></div><div class="line"><a name="l05362"></a><span class="lineno"> 5362</span>  pl = <a class="code" href="vec__int128__ppc_8h.html#a2a38409db81a0765586023d5874ab6b0">vec_madduq</a> (&ph, a, b, c1);</div><div class="line"><a name="l05363"></a><span class="lineno"> 5363</span>  <span class="comment">// Then add c2 to the madd sum as last stage.</span></div><div class="line"><a name="l05364"></a><span class="lineno"> 5364</span>  pl = <a class="code" href="vec__int128__ppc_8h.html#a363fa7103ccd730c47bb34cb9f05e80b">vec_addcq</a> (&cs, pl, c2);</div><div class="line"><a name="l05365"></a><span class="lineno"> 5365</span>  *mulu = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (ph, cs);</div><div class="line"><a name="l05366"></a><span class="lineno"> 5366</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l05367"></a><span class="lineno"> 5367</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l05368"></a><span class="lineno"> 5368</span>  <span class="keywordflow">return</span> (pl);</div><div class="line"><a name="l05369"></a><span class="lineno"> 5369</span> }</div><div class="line"><a name="l05370"></a><span class="lineno"> 5370</span> </div><div class="line"><a name="l05385"></a><span class="lineno"> 5385</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l05386"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#ae05185c980535dd28aec3a2a9431cb69"> 5386</a></span> <a class="code" href="vec__int128__ppc_8h.html#ae05185c980535dd28aec3a2a9431cb69">vec_popcntq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra)</div><div class="line"><a name="l05387"></a><span class="lineno"> 5387</span> {</div><div class="line"><a name="l05388"></a><span class="lineno"> 5388</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> result;</div><div class="line"><a name="l05389"></a><span class="lineno"> 5389</span> </div><div class="line"><a name="l05390"></a><span class="lineno"> 5390</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l05391"></a><span class="lineno"> 5391</span>  <span class="comment">/*</span></div><div class="line"><a name="l05392"></a><span class="lineno"> 5392</span> <span class="comment"> * Use the Vector Population Count Doubleword instruction to get</span></div><div class="line"><a name="l05393"></a><span class="lineno"> 5393</span> <span class="comment"> * the count for the left and right vector halves. Then sum across</span></div><div class="line"><a name="l05394"></a><span class="lineno"> 5394</span> <span class="comment"> * the left and right counts to get the final 128-bit vector count</span></div><div class="line"><a name="l05395"></a><span class="lineno"> 5395</span> <span class="comment"> * (0-128).</span></div><div class="line"><a name="l05396"></a><span class="lineno"> 5396</span> <span class="comment"> */</span></div><div class="line"><a name="l05397"></a><span class="lineno"> 5397</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> vt1;</div><div class="line"><a name="l05398"></a><span class="lineno"> 5398</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> vzero = { 0, 0 };</div><div class="line"><a name="l05399"></a><span class="lineno"> 5399</span> </div><div class="line"><a name="l05400"></a><span class="lineno"> 5400</span>  vt1 = <a class="code" href="vec__int64__ppc_8h.html#a0db4e91aa49c03fbb4a8da5a174c7b07">vec_popcntd</a> ((__vector <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>) vra);</div><div class="line"><a name="l05401"></a><span class="lineno"> 5401</span>  result = (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) vec_sums ((__vector <span class="keywordtype">int</span>) vt1,</div><div class="line"><a name="l05402"></a><span class="lineno"> 5402</span>  (__vector int) vzero);</div><div class="line"><a name="l05403"></a><span class="lineno"> 5403</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l05404"></a><span class="lineno"> 5404</span>  <span class="comment">//#warning Implememention pre power8</span></div><div class="line"><a name="l05405"></a><span class="lineno"> 5405</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> z= { 0,0,0,0};</div><div class="line"><a name="l05406"></a><span class="lineno"> 5406</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> x;</div><div class="line"><a name="l05407"></a><span class="lineno"> 5407</span>  x = <a class="code" href="vec__int32__ppc_8h.html#acb5b81dc628ca80e079a86515e391023">vec_popcntw</a> ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vra);</div><div class="line"><a name="l05408"></a><span class="lineno"> 5408</span>  result = (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) vec_sums ((<a class="code" href="vec__common__ppc_8h.html#adf5717f56a3dac6980206dbd37614ca2">vi32_t</a>) x, (<a class="code" href="vec__common__ppc_8h.html#adf5717f56a3dac6980206dbd37614ca2">vi32_t</a>) z);</div><div class="line"><a name="l05409"></a><span class="lineno"> 5409</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l05410"></a><span class="lineno"> 5410</span> </div><div class="line"><a name="l05411"></a><span class="lineno"> 5411</span> <span class="preprocessor">#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__</span></div><div class="line"><a name="l05412"></a><span class="lineno"> 5412</span>  result = (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) vec_sld (</div><div class="line"><a name="l05413"></a><span class="lineno"> 5413</span>  (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) result, (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) result, 4);</div><div class="line"><a name="l05414"></a><span class="lineno"> 5414</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l05415"></a><span class="lineno"> 5415</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) result);</div><div class="line"><a name="l05416"></a><span class="lineno"> 5416</span> }</div><div class="line"><a name="l05417"></a><span class="lineno"> 5417</span> </div><div class="line"><a name="l05430"></a><span class="lineno"> 5430</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l05431"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#aa40644aaa8146d00f84fce58dd4fd24e"> 5431</a></span> <a class="code" href="vec__int128__ppc_8h.html#aa40644aaa8146d00f84fce58dd4fd24e">vec_revbq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra)</div><div class="line"><a name="l05432"></a><span class="lineno"> 5432</span> {</div><div class="line"><a name="l05433"></a><span class="lineno"> 5433</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> result;</div><div class="line"><a name="l05434"></a><span class="lineno"> 5434</span> </div><div class="line"><a name="l05435"></a><span class="lineno"> 5435</span> <span class="preprocessor">#ifdef _ARCH_PWR9</span></div><div class="line"><a name="l05436"></a><span class="lineno"> 5436</span> <span class="preprocessor">#if defined (vec_revb) || defined (__clang__)</span></div><div class="line"><a name="l05437"></a><span class="lineno"> 5437</span>  result = vec_revb (vra);</div><div class="line"><a name="l05438"></a><span class="lineno"> 5438</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l05439"></a><span class="lineno"> 5439</span>  __asm__(</div><div class="line"><a name="l05440"></a><span class="lineno"> 5440</span>  <span class="stringliteral">"xxbrq %x0,%x1;"</span></div><div class="line"><a name="l05441"></a><span class="lineno"> 5441</span>  : <span class="stringliteral">"=wa"</span> (result)</div><div class="line"><a name="l05442"></a><span class="lineno"> 5442</span>  : <span class="stringliteral">"wa"</span> (vra)</div><div class="line"><a name="l05443"></a><span class="lineno"> 5443</span>  : );</div><div class="line"><a name="l05444"></a><span class="lineno"> 5444</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l05445"></a><span class="lineno"> 5445</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l05446"></a><span class="lineno"> 5446</span> <span class="preprocessor">#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__</span></div><div class="line"><a name="l05447"></a><span class="lineno"> 5447</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> vconstp =</div><div class="line"><a name="l05448"></a><span class="lineno"> 5448</span>  <a class="code" href="vec__common__ppc_8h.html#af4ffb9244d1aa4482b683d35c3544194">CONST_VINT64_DW</a>(0x0F0E0D0C0B0A0908UL, 0x0706050403020100UL);</div><div class="line"><a name="l05449"></a><span class="lineno"> 5449</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l05450"></a><span class="lineno"> 5450</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> vconstp =</div><div class="line"><a name="l05451"></a><span class="lineno"> 5451</span>  <a class="code" href="vec__common__ppc_8h.html#af4ffb9244d1aa4482b683d35c3544194">CONST_VINT64_DW</a>(0x0001020304050607UL, 0x08090A0B0C0D0E0FUL);</div><div class="line"><a name="l05452"></a><span class="lineno"> 5452</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l05453"></a><span class="lineno"> 5453</span>  result = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vec_perm ((<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vra, (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vra, (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vconstp);</div><div class="line"><a name="l05454"></a><span class="lineno"> 5454</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l05455"></a><span class="lineno"> 5455</span> </div><div class="line"><a name="l05456"></a><span class="lineno"> 5456</span>  <span class="keywordflow">return</span> (result);</div><div class="line"><a name="l05457"></a><span class="lineno"> 5457</span> }</div><div class="line"><a name="l05458"></a><span class="lineno"> 5458</span> </div><div class="line"><a name="l05473"></a><span class="lineno"> 5473</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l05474"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a52b3bfcc5b277628cd80ecd90440f8a5"> 5474</a></span> <a class="code" href="vec__int128__ppc_8h.html#a52b3bfcc5b277628cd80ecd90440f8a5">vec_rlq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l05475"></a><span class="lineno"> 5475</span> {</div><div class="line"><a name="l05476"></a><span class="lineno"> 5476</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> result;</div><div class="line"><a name="l05477"></a><span class="lineno"> 5477</span> </div><div class="line"><a name="l05478"></a><span class="lineno"> 5478</span>  result = <a class="code" href="vec__int128__ppc_8h.html#a8ba40be93339359793ef776e1d5d7577">vec_sldq</a> (vra, vra, vrb);</div><div class="line"><a name="l05479"></a><span class="lineno"> 5479</span> </div><div class="line"><a name="l05480"></a><span class="lineno"> 5480</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) result);</div><div class="line"><a name="l05481"></a><span class="lineno"> 5481</span> }</div><div class="line"><a name="l05482"></a><span class="lineno"> 5482</span> </div><div class="line"><a name="l05497"></a><span class="lineno"> 5497</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l05498"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a4777f3b762c3313df0a13aa352c2f189"> 5498</a></span> <a class="code" href="vec__int128__ppc_8h.html#a4777f3b762c3313df0a13aa352c2f189">vec_rlqi</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> shb)</div><div class="line"><a name="l05499"></a><span class="lineno"> 5499</span> {</div><div class="line"><a name="l05500"></a><span class="lineno"> 5500</span>  <a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a> result;</div><div class="line"><a name="l05501"></a><span class="lineno"> 5501</span> </div><div class="line"><a name="l05502"></a><span class="lineno"> 5502</span>  <span class="keywordflow">if</span> (__builtin_constant_p (shb) && ((shb % 8) == 0))</div><div class="line"><a name="l05503"></a><span class="lineno"> 5503</span>  {</div><div class="line"><a name="l05504"></a><span class="lineno"> 5504</span>  <span class="comment">/* When shifting an multiple of 8 bits (octet), use Vector</span></div><div class="line"><a name="l05505"></a><span class="lineno"> 5505</span> <span class="comment"> Shift Left Double By Octet Immediate. This eliminates</span></div><div class="line"><a name="l05506"></a><span class="lineno"> 5506</span> <span class="comment"> loading the shift const into a VR. */</span></div><div class="line"><a name="l05507"></a><span class="lineno"> 5507</span>  <span class="keywordflow">if</span> (shb > 0)</div><div class="line"><a name="l05508"></a><span class="lineno"> 5508</span>  result = vec_sld ((<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vra, (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vra, (shb / 8));</div><div class="line"><a name="l05509"></a><span class="lineno"> 5509</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l05510"></a><span class="lineno"> 5510</span>  result = (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vra;</div><div class="line"><a name="l05511"></a><span class="lineno"> 5511</span>  }</div><div class="line"><a name="l05512"></a><span class="lineno"> 5512</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l05513"></a><span class="lineno"> 5513</span>  {</div><div class="line"><a name="l05514"></a><span class="lineno"> 5514</span>  result = (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) <a class="code" href="vec__int128__ppc_8h.html#aaa33904ec4de42f54cceab34adb303c5">vec_sldqi</a> (vra, vra, shb);</div><div class="line"><a name="l05515"></a><span class="lineno"> 5515</span>  }</div><div class="line"><a name="l05516"></a><span class="lineno"> 5516</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) result);</div><div class="line"><a name="l05517"></a><span class="lineno"> 5517</span> }</div><div class="line"><a name="l05518"></a><span class="lineno"> 5518</span> </div><div class="line"><a name="l05540"></a><span class="lineno"> 5540</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a></div><div class="line"><a name="l05541"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#af74036e39e72e0f3c29706d30fbb96d1"> 5541</a></span> <a class="code" href="vec__int128__ppc_8h.html#af74036e39e72e0f3c29706d30fbb96d1">vec_setb_cyq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vcy)</div><div class="line"><a name="l05542"></a><span class="lineno"> 5542</span> {</div><div class="line"><a name="l05543"></a><span class="lineno"> 5543</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l05544"></a><span class="lineno"> 5544</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> zero = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vec_splat_u32(0);</div><div class="line"><a name="l05545"></a><span class="lineno"> 5545</span> </div><div class="line"><a name="l05546"></a><span class="lineno"> 5546</span>  <span class="keywordflow">return</span> (<a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a>) vec_vsubuqm (zero, vcy);</div><div class="line"><a name="l05547"></a><span class="lineno"> 5547</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l05548"></a><span class="lineno"> 5548</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> ones = vec_splat_u32(1);</div><div class="line"><a name="l05549"></a><span class="lineno"> 5549</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> rcy;</div><div class="line"><a name="l05550"></a><span class="lineno"> 5550</span> </div><div class="line"><a name="l05551"></a><span class="lineno"> 5551</span>  rcy = vec_and ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vcy, ones);</div><div class="line"><a name="l05552"></a><span class="lineno"> 5552</span>  rcy = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_cmpeq (rcy, ones);</div><div class="line"><a name="l05553"></a><span class="lineno"> 5553</span>  rcy = vec_splat (rcy, <a class="code" href="vec__common__ppc_8h.html#aafb30510341c41500fc4fab3268cfec7">VEC_W_L</a>);</div><div class="line"><a name="l05554"></a><span class="lineno"> 5554</span> </div><div class="line"><a name="l05555"></a><span class="lineno"> 5555</span>  <span class="keywordflow">return</span> (<a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a>) rcy;</div><div class="line"><a name="l05556"></a><span class="lineno"> 5556</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l05557"></a><span class="lineno"> 5557</span> }</div><div class="line"><a name="l05558"></a><span class="lineno"> 5558</span> </div><div class="line"><a name="l05580"></a><span class="lineno"> 5580</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a></div><div class="line"><a name="l05581"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a921647d5b67f0de5006ee32fb3d9c4f1"> 5581</a></span> <a class="code" href="vec__int128__ppc_8h.html#a921647d5b67f0de5006ee32fb3d9c4f1">vec_setb_ncq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vcy)</div><div class="line"><a name="l05582"></a><span class="lineno"> 5582</span> {</div><div class="line"><a name="l05583"></a><span class="lineno"> 5583</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l05584"></a><span class="lineno"> 5584</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> zero = (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vec_splat_u32(0);</div><div class="line"><a name="l05585"></a><span class="lineno"> 5585</span> </div><div class="line"><a name="l05586"></a><span class="lineno"> 5586</span>  <span class="keywordflow">return</span> (<a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a>) vec_vsubeuqm (zero, zero, vcy);</div><div class="line"><a name="l05587"></a><span class="lineno"> 5587</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l05588"></a><span class="lineno"> 5588</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> ones = vec_splat_u32(1);</div><div class="line"><a name="l05589"></a><span class="lineno"> 5589</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> rcy;</div><div class="line"><a name="l05590"></a><span class="lineno"> 5590</span> </div><div class="line"><a name="l05591"></a><span class="lineno"> 5591</span>  rcy = vec_and ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>)vcy, ones);</div><div class="line"><a name="l05592"></a><span class="lineno"> 5592</span>  rcy = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_cmplt (rcy, ones);</div><div class="line"><a name="l05593"></a><span class="lineno"> 5593</span>  rcy = vec_splat (rcy, <a class="code" href="vec__common__ppc_8h.html#aafb30510341c41500fc4fab3268cfec7">VEC_W_L</a>);</div><div class="line"><a name="l05594"></a><span class="lineno"> 5594</span> </div><div class="line"><a name="l05595"></a><span class="lineno"> 5595</span>  <span class="keywordflow">return</span> (<a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a>) rcy;</div><div class="line"><a name="l05596"></a><span class="lineno"> 5596</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l05597"></a><span class="lineno"> 5597</span> }</div><div class="line"><a name="l05598"></a><span class="lineno"> 5598</span> </div><div class="line"><a name="l05613"></a><span class="lineno"> 5613</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a></div><div class="line"><a name="l05614"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#af21d01bb19f0ea8605d8c37035837802"> 5614</a></span> <a class="code" href="vec__int128__ppc_8h.html#af21d01bb19f0ea8605d8c37035837802">vec_setb_sq</a> (<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vra)</div><div class="line"><a name="l05615"></a><span class="lineno"> 5615</span> {</div><div class="line"><a name="l05616"></a><span class="lineno"> 5616</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a> shift = vec_splat_u8 (7);</div><div class="line"><a name="l05617"></a><span class="lineno"> 5617</span>  <a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a> splat = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vra, <a class="code" href="vec__common__ppc_8h.html#a3975205947785b1745a791ef12256e9a">VEC_BYTE_H</a>);</div><div class="line"><a name="l05618"></a><span class="lineno"> 5618</span> </div><div class="line"><a name="l05619"></a><span class="lineno"> 5619</span>  <span class="keywordflow">return</span> (<a class="code" href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a>) vec_sra (splat, shift);</div><div class="line"><a name="l05620"></a><span class="lineno"> 5620</span> }</div><div class="line"><a name="l05621"></a><span class="lineno"> 5621</span> </div><div class="line"><a name="l05639"></a><span class="lineno"> 5639</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l05640"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a8ba40be93339359793ef776e1d5d7577"> 5640</a></span> <a class="code" href="vec__int128__ppc_8h.html#a8ba40be93339359793ef776e1d5d7577">vec_sldq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrw, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrx, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l05641"></a><span class="lineno"> 5641</span> {</div><div class="line"><a name="l05642"></a><span class="lineno"> 5642</span>  <a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a> result, vt1, vt2, vt3, vbs;</div><div class="line"><a name="l05643"></a><span class="lineno"> 5643</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a> vzero = vec_splat_u8 (0);</div><div class="line"><a name="l05644"></a><span class="lineno"> 5644</span> </div><div class="line"><a name="l05645"></a><span class="lineno"> 5645</span>  vt1 = vec_slo ((<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vrw, (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vrb);</div><div class="line"><a name="l05646"></a><span class="lineno"> 5646</span>  <span class="comment">/* The vsl/vsr instruction only works correctly if the bit shift</span></div><div class="line"><a name="l05647"></a><span class="lineno"> 5647</span> <span class="comment"> value is splatted to each byte of the vector. */</span></div><div class="line"><a name="l05648"></a><span class="lineno"> 5648</span>  vbs = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vrb, <a class="code" href="vec__common__ppc_8h.html#a9d1a7749d270995baf9eaae078578961">VEC_BYTE_L</a>);</div><div class="line"><a name="l05649"></a><span class="lineno"> 5649</span>  vt1 = vec_sll (vt1, vbs);</div><div class="line"><a name="l05650"></a><span class="lineno"> 5650</span>  vt3 = vec_sub (vzero, vbs);</div><div class="line"><a name="l05651"></a><span class="lineno"> 5651</span>  vt2 = vec_sro ((<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vrx, vt3);</div><div class="line"><a name="l05652"></a><span class="lineno"> 5652</span>  vt2 = vec_srl (vt2, vt3);</div><div class="line"><a name="l05653"></a><span class="lineno"> 5653</span>  result = vec_or (vt1, vt2);</div><div class="line"><a name="l05654"></a><span class="lineno"> 5654</span> </div><div class="line"><a name="l05655"></a><span class="lineno"> 5655</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) result);</div><div class="line"><a name="l05656"></a><span class="lineno"> 5656</span> }</div><div class="line"><a name="l05657"></a><span class="lineno"> 5657</span> </div><div class="line"><a name="l05675"></a><span class="lineno"> 5675</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l05676"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#aaa33904ec4de42f54cceab34adb303c5"> 5676</a></span> <a class="code" href="vec__int128__ppc_8h.html#aaa33904ec4de42f54cceab34adb303c5">vec_sldqi</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrw, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrx, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> shb)</div><div class="line"><a name="l05677"></a><span class="lineno"> 5677</span> {</div><div class="line"><a name="l05678"></a><span class="lineno"> 5678</span>  <a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a> result;</div><div class="line"><a name="l05679"></a><span class="lineno"> 5679</span> </div><div class="line"><a name="l05680"></a><span class="lineno"> 5680</span>  <span class="keywordflow">if</span> (__builtin_constant_p (shb) && ((shb % 8) == 0))</div><div class="line"><a name="l05681"></a><span class="lineno"> 5681</span>  {</div><div class="line"><a name="l05682"></a><span class="lineno"> 5682</span>  <span class="comment">/* When shifting an multiple of 8 bits (octet), use Vector</span></div><div class="line"><a name="l05683"></a><span class="lineno"> 5683</span> <span class="comment"> Shift Left Double By Octet Immediate. This eliminates</span></div><div class="line"><a name="l05684"></a><span class="lineno"> 5684</span> <span class="comment"> loading the shift const into a VR. */</span></div><div class="line"><a name="l05685"></a><span class="lineno"> 5685</span>  <span class="keywordflow">if</span> (shb > 0)</div><div class="line"><a name="l05686"></a><span class="lineno"> 5686</span>  result = vec_sld ((<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vrw, (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vrx, (shb / 8));</div><div class="line"><a name="l05687"></a><span class="lineno"> 5687</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l05688"></a><span class="lineno"> 5688</span>  result = (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vrw;</div><div class="line"><a name="l05689"></a><span class="lineno"> 5689</span>  }</div><div class="line"><a name="l05690"></a><span class="lineno"> 5690</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l05691"></a><span class="lineno"> 5691</span>  {</div><div class="line"><a name="l05692"></a><span class="lineno"> 5692</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a> vrb = vec_splats ((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>) shb);</div><div class="line"><a name="l05693"></a><span class="lineno"> 5693</span>  result = (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a8ba40be93339359793ef776e1d5d7577">vec_sldq</a> (vrw, vrx, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vrb);</div><div class="line"><a name="l05694"></a><span class="lineno"> 5694</span>  }</div><div class="line"><a name="l05695"></a><span class="lineno"> 5695</span> </div><div class="line"><a name="l05696"></a><span class="lineno"> 5696</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) result);</div><div class="line"><a name="l05697"></a><span class="lineno"> 5697</span> }</div><div class="line"><a name="l05698"></a><span class="lineno"> 5698</span> </div><div class="line"><a name="l05713"></a><span class="lineno"> 5713</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l05714"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a49fe2c36fca9911ab99a1f8abb53f0ff"> 5714</a></span> <a class="code" href="vec__int128__ppc_8h.html#a49fe2c36fca9911ab99a1f8abb53f0ff">vec_slq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l05715"></a><span class="lineno"> 5715</span> {</div><div class="line"><a name="l05716"></a><span class="lineno"> 5716</span>  <a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a> result, vshift_splat;</div><div class="line"><a name="l05717"></a><span class="lineno"> 5717</span> </div><div class="line"><a name="l05718"></a><span class="lineno"> 5718</span>  <span class="comment">/* For some reason, the vsl instruction only works</span></div><div class="line"><a name="l05719"></a><span class="lineno"> 5719</span> <span class="comment"> * correctly if the bit shift value is splatted to each byte</span></div><div class="line"><a name="l05720"></a><span class="lineno"> 5720</span> <span class="comment"> * of the vector. */</span></div><div class="line"><a name="l05721"></a><span class="lineno"> 5721</span>  vshift_splat = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vrb, <a class="code" href="vec__common__ppc_8h.html#a9d1a7749d270995baf9eaae078578961">VEC_BYTE_L</a>);</div><div class="line"><a name="l05722"></a><span class="lineno"> 5722</span>  result = vec_slo ((<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vra, (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vrb);</div><div class="line"><a name="l05723"></a><span class="lineno"> 5723</span>  result = vec_sll (result, vshift_splat);</div><div class="line"><a name="l05724"></a><span class="lineno"> 5724</span> </div><div class="line"><a name="l05725"></a><span class="lineno"> 5725</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) result);</div><div class="line"><a name="l05726"></a><span class="lineno"> 5726</span> }</div><div class="line"><a name="l05727"></a><span class="lineno"> 5727</span> </div><div class="line"><a name="l05744"></a><span class="lineno"> 5744</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l05745"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a070fe972995f3954362835f5b72e5ff6"> 5745</a></span> <a class="code" href="vec__int128__ppc_8h.html#a070fe972995f3954362835f5b72e5ff6">vec_slqi</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> shb)</div><div class="line"><a name="l05746"></a><span class="lineno"> 5746</span> {</div><div class="line"><a name="l05747"></a><span class="lineno"> 5747</span>  <a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a> lshift;</div><div class="line"><a name="l05748"></a><span class="lineno"> 5748</span>  <a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a> result;</div><div class="line"><a name="l05749"></a><span class="lineno"> 5749</span> </div><div class="line"><a name="l05750"></a><span class="lineno"> 5750</span>  <span class="keywordflow">if</span> (shb < 128)</div><div class="line"><a name="l05751"></a><span class="lineno"> 5751</span>  {</div><div class="line"><a name="l05752"></a><span class="lineno"> 5752</span>  <span class="keywordflow">if</span> (__builtin_constant_p (shb) && ((shb % 8) == 0))</div><div class="line"><a name="l05753"></a><span class="lineno"> 5753</span>  {</div><div class="line"><a name="l05754"></a><span class="lineno"> 5754</span>  <span class="comment">/* When shifting an multiple of 8 bits (octet), use Vector</span></div><div class="line"><a name="l05755"></a><span class="lineno"> 5755</span> <span class="comment"> Shift Left Double By Octet Immediate. This eliminates</span></div><div class="line"><a name="l05756"></a><span class="lineno"> 5756</span> <span class="comment"> loading the shift const into a VR, but requires an</span></div><div class="line"><a name="l05757"></a><span class="lineno"> 5757</span> <span class="comment"> explicit vector of zeros. */</span></div><div class="line"><a name="l05758"></a><span class="lineno"> 5758</span>  <a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a> zero =</div><div class="line"><a name="l05759"></a><span class="lineno"> 5759</span>  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };</div><div class="line"><a name="l05760"></a><span class="lineno"> 5760</span>  <span class="keywordflow">if</span> (shb > 0)</div><div class="line"><a name="l05761"></a><span class="lineno"> 5761</span>  result = vec_sld ((<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vra, zero, (shb / 8));</div><div class="line"><a name="l05762"></a><span class="lineno"> 5762</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l05763"></a><span class="lineno"> 5763</span>  result = (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vra;</div><div class="line"><a name="l05764"></a><span class="lineno"> 5764</span>  }</div><div class="line"><a name="l05765"></a><span class="lineno"> 5765</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l05766"></a><span class="lineno"> 5766</span>  {</div><div class="line"><a name="l05767"></a><span class="lineno"> 5767</span>  <span class="comment">/* Load the shift const in a vector. The bit level shifts</span></div><div class="line"><a name="l05768"></a><span class="lineno"> 5768</span> <span class="comment"> require the shift amount is splatted to all 16-bytes of</span></div><div class="line"><a name="l05769"></a><span class="lineno"> 5769</span> <span class="comment"> the shift control. */</span></div><div class="line"><a name="l05770"></a><span class="lineno"> 5770</span>  <span class="keywordflow">if</span> (__builtin_constant_p (shb) && (shb < 16))</div><div class="line"><a name="l05771"></a><span class="lineno"> 5771</span>  lshift = (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vec_splat_s8(shb);</div><div class="line"><a name="l05772"></a><span class="lineno"> 5772</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l05773"></a><span class="lineno"> 5773</span>  lshift = vec_splats ((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>) shb);</div><div class="line"><a name="l05774"></a><span class="lineno"> 5774</span> </div><div class="line"><a name="l05775"></a><span class="lineno"> 5775</span>  <span class="keywordflow">if</span> (shb > 7)</div><div class="line"><a name="l05776"></a><span class="lineno"> 5776</span>  <span class="comment">/* Vector Shift Left By Octet by bits 121-124 of lshift. */</span></div><div class="line"><a name="l05777"></a><span class="lineno"> 5777</span>  result = vec_slo ((<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vra, lshift);</div><div class="line"><a name="l05778"></a><span class="lineno"> 5778</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l05779"></a><span class="lineno"> 5779</span>  result = ((<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vra);</div><div class="line"><a name="l05780"></a><span class="lineno"> 5780</span> </div><div class="line"><a name="l05781"></a><span class="lineno"> 5781</span>  <span class="comment">/* Vector Shift Left by bits 125-127 of lshift. */</span></div><div class="line"><a name="l05782"></a><span class="lineno"> 5782</span>  result = vec_sll (result, lshift);</div><div class="line"><a name="l05783"></a><span class="lineno"> 5783</span>  }</div><div class="line"><a name="l05784"></a><span class="lineno"> 5784</span>  }</div><div class="line"><a name="l05785"></a><span class="lineno"> 5785</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l05786"></a><span class="lineno"> 5786</span>  { <span class="comment">/* shifts greater then 127 bits return zeros. */</span></div><div class="line"><a name="l05787"></a><span class="lineno"> 5787</span>  result = vec_xor ((<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vra, (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vra);</div><div class="line"><a name="l05788"></a><span class="lineno"> 5788</span>  }</div><div class="line"><a name="l05789"></a><span class="lineno"> 5789</span>  <span class="keywordflow">return</span> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) result;</div><div class="line"><a name="l05790"></a><span class="lineno"> 5790</span> }</div><div class="line"><a name="l05791"></a><span class="lineno"> 5791</span> </div><div class="line"><a name="l05806"></a><span class="lineno"> 5806</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a></div><div class="line"><a name="l05807"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#ab99c4af0aae31b02e1f17f12500198f0"> 5807</a></span> <a class="code" href="vec__int128__ppc_8h.html#ab99c4af0aae31b02e1f17f12500198f0">vec_sraq</a> (<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l05808"></a><span class="lineno"> 5808</span> {</div><div class="line"><a name="l05809"></a><span class="lineno"> 5809</span>  <a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a> result, vsht;</div><div class="line"><a name="l05810"></a><span class="lineno"> 5810</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vsgn;</div><div class="line"><a name="l05811"></a><span class="lineno"> 5811</span> </div><div class="line"><a name="l05812"></a><span class="lineno"> 5812</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a> zero = vec_splat_u8 (0);</div><div class="line"><a name="l05813"></a><span class="lineno"> 5813</span> </div><div class="line"><a name="l05814"></a><span class="lineno"> 5814</span>  <span class="comment">/* For some reason the vsr instruction only works</span></div><div class="line"><a name="l05815"></a><span class="lineno"> 5815</span> <span class="comment"> * correctly if the bit shift value is splatted to each byte</span></div><div class="line"><a name="l05816"></a><span class="lineno"> 5816</span> <span class="comment"> * of the vector. */</span></div><div class="line"><a name="l05817"></a><span class="lineno"> 5817</span>  vsgn = <a class="code" href="vec__int128__ppc_8h.html#af21d01bb19f0ea8605d8c37035837802">vec_setb_sq</a> (vra);</div><div class="line"><a name="l05818"></a><span class="lineno"> 5818</span>  vsht = vec_sub (zero, (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vrb);</div><div class="line"><a name="l05819"></a><span class="lineno"> 5819</span>  result = (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a8ba40be93339359793ef776e1d5d7577">vec_sldq</a> (vsgn, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vra, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vsht);</div><div class="line"><a name="l05820"></a><span class="lineno"> 5820</span> </div><div class="line"><a name="l05821"></a><span class="lineno"> 5821</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a>) result);</div><div class="line"><a name="l05822"></a><span class="lineno"> 5822</span> }</div><div class="line"><a name="l05823"></a><span class="lineno"> 5823</span> </div><div class="line"><a name="l05847"></a><span class="lineno"> 5847</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a></div><div class="line"><a name="l05848"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a50546b5b39e0c21cffe678f225ff59b7"> 5848</a></span> <a class="code" href="vec__int128__ppc_8h.html#a50546b5b39e0c21cffe678f225ff59b7">vec_sraqi</a> (<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a> vra, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> shb)</div><div class="line"><a name="l05849"></a><span class="lineno"> 5849</span> {</div><div class="line"><a name="l05850"></a><span class="lineno"> 5850</span>  <a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a> result, lshift;</div><div class="line"><a name="l05851"></a><span class="lineno"> 5851</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vsgn;</div><div class="line"><a name="l05852"></a><span class="lineno"> 5852</span> </div><div class="line"><a name="l05853"></a><span class="lineno"> 5853</span>  <span class="keywordflow">if</span> (shb < 127)</div><div class="line"><a name="l05854"></a><span class="lineno"> 5854</span>  {</div><div class="line"><a name="l05855"></a><span class="lineno"> 5855</span>  <span class="keywordflow">if</span> (__builtin_constant_p (shb) && ((shb % 8) == 0))</div><div class="line"><a name="l05856"></a><span class="lineno"> 5856</span>  {</div><div class="line"><a name="l05857"></a><span class="lineno"> 5857</span>  <span class="keywordflow">if</span> (shb > 0)</div><div class="line"><a name="l05858"></a><span class="lineno"> 5858</span>  {</div><div class="line"><a name="l05859"></a><span class="lineno"> 5859</span>  vsgn = <a class="code" href="vec__int128__ppc_8h.html#af21d01bb19f0ea8605d8c37035837802">vec_setb_sq</a> (vra);</div><div class="line"><a name="l05860"></a><span class="lineno"> 5860</span>  result = vec_sld ((<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vsgn, (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vra, 16 - (shb / 8));</div><div class="line"><a name="l05861"></a><span class="lineno"> 5861</span>  }</div><div class="line"><a name="l05862"></a><span class="lineno"> 5862</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l05863"></a><span class="lineno"> 5863</span>  result = (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vra;</div><div class="line"><a name="l05864"></a><span class="lineno"> 5864</span>  }</div><div class="line"><a name="l05865"></a><span class="lineno"> 5865</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l05866"></a><span class="lineno"> 5866</span>  {</div><div class="line"><a name="l05867"></a><span class="lineno"> 5867</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l05868"></a><span class="lineno"> 5868</span>  <span class="keywordflow">if</span> (shb < 64)</div><div class="line"><a name="l05869"></a><span class="lineno"> 5869</span>  {</div><div class="line"><a name="l05870"></a><span class="lineno"> 5870</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrshq;</div><div class="line"><a name="l05871"></a><span class="lineno"> 5871</span>  <a class="code" href="vec__common__ppc_8h.html#a0c3abdfe41178c152e0a2130c20476ff">vi64_t</a> vrshd;</div><div class="line"><a name="l05872"></a><span class="lineno"> 5872</span>  vrshq = <a class="code" href="vec__int128__ppc_8h.html#ac05c640c6a42770cb95466ff4a2d903c">vec_srqi</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vra, shb);</div><div class="line"><a name="l05873"></a><span class="lineno"> 5873</span>  vrshd = <a class="code" href="vec__int64__ppc_8h.html#a6058f691cf57976e30f0294a183d2715">vec_sradi</a> ((<a class="code" href="vec__common__ppc_8h.html#a0c3abdfe41178c152e0a2130c20476ff">vi64_t</a>) vra, shb);</div><div class="line"><a name="l05874"></a><span class="lineno"> 5874</span>  result = (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) <a class="code" href="vec__int64__ppc_8h.html#a53159a600aba803503ae6ddcb539a123">vec_pasted</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) vrshd, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) vrshq);</div><div class="line"><a name="l05875"></a><span class="lineno"> 5875</span>  }</div><div class="line"><a name="l05876"></a><span class="lineno"> 5876</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l05877"></a><span class="lineno"> 5877</span>  {</div><div class="line"><a name="l05878"></a><span class="lineno"> 5878</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l05879"></a><span class="lineno"> 5879</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> lshb = 128 - shb;</div><div class="line"><a name="l05880"></a><span class="lineno"> 5880</span>  <span class="keywordflow">if</span> (__builtin_constant_p (shb) && (lshb < 16))</div><div class="line"><a name="l05881"></a><span class="lineno"> 5881</span>  lshift = (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vec_splat_s8(shb);</div><div class="line"><a name="l05882"></a><span class="lineno"> 5882</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l05883"></a><span class="lineno"> 5883</span>  lshift = vec_splats ((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>) lshb);</div><div class="line"><a name="l05884"></a><span class="lineno"> 5884</span> </div><div class="line"><a name="l05885"></a><span class="lineno"> 5885</span>  vsgn = <a class="code" href="vec__int128__ppc_8h.html#af21d01bb19f0ea8605d8c37035837802">vec_setb_sq</a> (vra);</div><div class="line"><a name="l05886"></a><span class="lineno"> 5886</span>  result = (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a8ba40be93339359793ef776e1d5d7577">vec_sldq</a> (vsgn, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) vra,</div><div class="line"><a name="l05887"></a><span class="lineno"> 5887</span>  (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) lshift);</div><div class="line"><a name="l05888"></a><span class="lineno"> 5888</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l05889"></a><span class="lineno"> 5889</span>  }</div><div class="line"><a name="l05890"></a><span class="lineno"> 5890</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l05891"></a><span class="lineno"> 5891</span>  }</div><div class="line"><a name="l05892"></a><span class="lineno"> 5892</span>  }</div><div class="line"><a name="l05893"></a><span class="lineno"> 5893</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l05894"></a><span class="lineno"> 5894</span>  { <span class="comment">/* shifts greater then 126 bits returns the sign bit. */</span></div><div class="line"><a name="l05895"></a><span class="lineno"> 5895</span>  result = (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) <a class="code" href="vec__int128__ppc_8h.html#af21d01bb19f0ea8605d8c37035837802">vec_setb_sq</a> (vra);</div><div class="line"><a name="l05896"></a><span class="lineno"> 5896</span>  }</div><div class="line"><a name="l05897"></a><span class="lineno"> 5897</span> </div><div class="line"><a name="l05898"></a><span class="lineno"> 5898</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a>) result);</div><div class="line"><a name="l05899"></a><span class="lineno"> 5899</span> }</div><div class="line"><a name="l05900"></a><span class="lineno"> 5900</span> </div><div class="line"><a name="l05915"></a><span class="lineno"> 5915</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l05916"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a0edd172a5656b842d6586c5078284942"> 5916</a></span> <a class="code" href="vec__int128__ppc_8h.html#a0edd172a5656b842d6586c5078284942">vec_srq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l05917"></a><span class="lineno"> 5917</span> {</div><div class="line"><a name="l05918"></a><span class="lineno"> 5918</span>  <a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a> result, vsht_splat;</div><div class="line"><a name="l05919"></a><span class="lineno"> 5919</span> </div><div class="line"><a name="l05920"></a><span class="lineno"> 5920</span>  <span class="comment">/* For some reason the vsr instruction only works</span></div><div class="line"><a name="l05921"></a><span class="lineno"> 5921</span> <span class="comment"> * correctly if the bit shift value is splatted to each byte</span></div><div class="line"><a name="l05922"></a><span class="lineno"> 5922</span> <span class="comment"> * of the vector. */</span></div><div class="line"><a name="l05923"></a><span class="lineno"> 5923</span>  vsht_splat = vec_splat ((<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vrb, <a class="code" href="vec__common__ppc_8h.html#a9d1a7749d270995baf9eaae078578961">VEC_BYTE_L</a>);</div><div class="line"><a name="l05924"></a><span class="lineno"> 5924</span>  result = vec_sro ((<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vra, (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vrb);</div><div class="line"><a name="l05925"></a><span class="lineno"> 5925</span>  result = vec_srl (result, vsht_splat);</div><div class="line"><a name="l05926"></a><span class="lineno"> 5926</span> </div><div class="line"><a name="l05927"></a><span class="lineno"> 5927</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) result);</div><div class="line"><a name="l05928"></a><span class="lineno"> 5928</span> }</div><div class="line"><a name="l05929"></a><span class="lineno"> 5929</span> </div><div class="line"><a name="l05946"></a><span class="lineno"> 5946</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l05947"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#ac05c640c6a42770cb95466ff4a2d903c"> 5947</a></span> <a class="code" href="vec__int128__ppc_8h.html#ac05c640c6a42770cb95466ff4a2d903c">vec_srqi</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> shb)</div><div class="line"><a name="l05948"></a><span class="lineno"> 5948</span> {</div><div class="line"><a name="l05949"></a><span class="lineno"> 5949</span>  <a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a> lshift;</div><div class="line"><a name="l05950"></a><span class="lineno"> 5950</span>  <a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a> result;</div><div class="line"><a name="l05951"></a><span class="lineno"> 5951</span> </div><div class="line"><a name="l05952"></a><span class="lineno"> 5952</span>  <span class="keywordflow">if</span> (shb < 128)</div><div class="line"><a name="l05953"></a><span class="lineno"> 5953</span>  {</div><div class="line"><a name="l05954"></a><span class="lineno"> 5954</span>  <span class="keywordflow">if</span> (__builtin_constant_p (shb) && ((shb % 8)) == 0)</div><div class="line"><a name="l05955"></a><span class="lineno"> 5955</span>  {</div><div class="line"><a name="l05956"></a><span class="lineno"> 5956</span>  <span class="comment">/* When shifting an multiple of 8 bits (octet), use Vector</span></div><div class="line"><a name="l05957"></a><span class="lineno"> 5957</span> <span class="comment"> Shift Left Double By Octet Immediate. This eliminates</span></div><div class="line"><a name="l05958"></a><span class="lineno"> 5958</span> <span class="comment"> loading the shift const into a VR, but requires an</span></div><div class="line"><a name="l05959"></a><span class="lineno"> 5959</span> <span class="comment"> explicit vector of zeros. */</span></div><div class="line"><a name="l05960"></a><span class="lineno"> 5960</span>  <a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a> zero =</div><div class="line"><a name="l05961"></a><span class="lineno"> 5961</span>  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };</div><div class="line"><a name="l05962"></a><span class="lineno"> 5962</span>  <span class="comment">/* The compiler needs to know at compile time that</span></div><div class="line"><a name="l05963"></a><span class="lineno"> 5963</span> <span class="comment"> 0 < shb < 128 is true to insure the constraint (4 bit</span></div><div class="line"><a name="l05964"></a><span class="lineno"> 5964</span> <span class="comment"> immediate field) of vsldoi is meet. So the following if</span></div><div class="line"><a name="l05965"></a><span class="lineno"> 5965</span> <span class="comment"> is required but should not generate any branch code. */</span></div><div class="line"><a name="l05966"></a><span class="lineno"> 5966</span>  <span class="keywordflow">if</span> (shb > 0)</div><div class="line"><a name="l05967"></a><span class="lineno"> 5967</span>  result = vec_sld (zero, (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vra, (16 - (shb / 8)));</div><div class="line"><a name="l05968"></a><span class="lineno"> 5968</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l05969"></a><span class="lineno"> 5969</span>  result = (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vra;</div><div class="line"><a name="l05970"></a><span class="lineno"> 5970</span>  }</div><div class="line"><a name="l05971"></a><span class="lineno"> 5971</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l05972"></a><span class="lineno"> 5972</span>  {</div><div class="line"><a name="l05973"></a><span class="lineno"> 5973</span>  <span class="comment">/* Load the shift const in a vector. The bit level shifts</span></div><div class="line"><a name="l05974"></a><span class="lineno"> 5974</span> <span class="comment"> require the shift amount is splatted to all 16-bytes of</span></div><div class="line"><a name="l05975"></a><span class="lineno"> 5975</span> <span class="comment"> the shift control. */</span></div><div class="line"><a name="l05976"></a><span class="lineno"> 5976</span>  <span class="keywordflow">if</span> ((__builtin_constant_p (shb) && (shb < 16)))</div><div class="line"><a name="l05977"></a><span class="lineno"> 5977</span>  lshift = (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vec_splat_s8(shb);</div><div class="line"><a name="l05978"></a><span class="lineno"> 5978</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l05979"></a><span class="lineno"> 5979</span>  lshift = vec_splats ((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>) shb);</div><div class="line"><a name="l05980"></a><span class="lineno"> 5980</span> </div><div class="line"><a name="l05981"></a><span class="lineno"> 5981</span>  <span class="keywordflow">if</span> (shb > 7)</div><div class="line"><a name="l05982"></a><span class="lineno"> 5982</span>  <span class="comment">/* Vector Shift right By Octet based on the bits 121-124 of</span></div><div class="line"><a name="l05983"></a><span class="lineno"> 5983</span> <span class="comment"> lshift. */</span></div><div class="line"><a name="l05984"></a><span class="lineno"> 5984</span>  result = vec_sro ((<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vra, lshift);</div><div class="line"><a name="l05985"></a><span class="lineno"> 5985</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l05986"></a><span class="lineno"> 5986</span>  result = ((<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vra);</div><div class="line"><a name="l05987"></a><span class="lineno"> 5987</span> </div><div class="line"><a name="l05988"></a><span class="lineno"> 5988</span>  <span class="comment">/* Vector Shift right based on the lower 3-bits of lshift. */</span></div><div class="line"><a name="l05989"></a><span class="lineno"> 5989</span>  result = vec_srl (result, lshift);</div><div class="line"><a name="l05990"></a><span class="lineno"> 5990</span>  }</div><div class="line"><a name="l05991"></a><span class="lineno"> 5991</span>  }</div><div class="line"><a name="l05992"></a><span class="lineno"> 5992</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l05993"></a><span class="lineno"> 5993</span>  { <span class="comment">/* shifts greater then 127 bits return zeros. */</span></div><div class="line"><a name="l05994"></a><span class="lineno"> 5994</span>  result = vec_xor ((<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vra, (<a class="code" href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a>) vra);</div><div class="line"><a name="l05995"></a><span class="lineno"> 5995</span>  }</div><div class="line"><a name="l05996"></a><span class="lineno"> 5996</span>  <span class="keywordflow">return</span> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) result;</div><div class="line"><a name="l05997"></a><span class="lineno"> 5997</span> }</div><div class="line"><a name="l05998"></a><span class="lineno"> 5998</span> </div><div class="line"><a name="l06008"></a><span class="lineno"> 6008</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l06009"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a4f6dca233bb7e4edc2adb751d478572e"> 6009</a></span> <a class="code" href="vec__int128__ppc_8h.html#a4f6dca233bb7e4edc2adb751d478572e">vec_slq4</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra)</div><div class="line"><a name="l06010"></a><span class="lineno"> 6010</span> {</div><div class="line"><a name="l06011"></a><span class="lineno"> 6011</span>  __vector <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> result, vsht_splat;</div><div class="line"><a name="l06012"></a><span class="lineno"> 6012</span> </div><div class="line"><a name="l06013"></a><span class="lineno"> 6013</span>  <span class="comment">/* The vsl instruction only works correctly if the bit shift value</span></div><div class="line"><a name="l06014"></a><span class="lineno"> 6014</span> <span class="comment"> * is splatted to each byte of the vector. */</span></div><div class="line"><a name="l06015"></a><span class="lineno"> 6015</span>  vsht_splat = vec_splat_u8(4);</div><div class="line"><a name="l06016"></a><span class="lineno"> 6016</span>  result = vec_sll ((__vector <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>) vra, vsht_splat);</div><div class="line"><a name="l06017"></a><span class="lineno"> 6017</span> </div><div class="line"><a name="l06018"></a><span class="lineno"> 6018</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) result);</div><div class="line"><a name="l06019"></a><span class="lineno"> 6019</span> }</div><div class="line"><a name="l06020"></a><span class="lineno"> 6020</span> </div><div class="line"><a name="l06030"></a><span class="lineno"> 6030</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l06031"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a9964ce224b90a0986122f79f6455cba5"> 6031</a></span> <a class="code" href="vec__int128__ppc_8h.html#a9964ce224b90a0986122f79f6455cba5">vec_slq5</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra)</div><div class="line"><a name="l06032"></a><span class="lineno"> 6032</span> {</div><div class="line"><a name="l06033"></a><span class="lineno"> 6033</span>  __vector <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> result, vsht_splat;</div><div class="line"><a name="l06034"></a><span class="lineno"> 6034</span> </div><div class="line"><a name="l06035"></a><span class="lineno"> 6035</span>  <span class="comment">/* The vsl instruction only works correctly if the bit shift value</span></div><div class="line"><a name="l06036"></a><span class="lineno"> 6036</span> <span class="comment"> * is splatted to each byte of the vector. */</span></div><div class="line"><a name="l06037"></a><span class="lineno"> 6037</span>  vsht_splat = vec_splat_u8(5);</div><div class="line"><a name="l06038"></a><span class="lineno"> 6038</span>  result = vec_sll ((__vector <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>) vra, vsht_splat);</div><div class="line"><a name="l06039"></a><span class="lineno"> 6039</span> </div><div class="line"><a name="l06040"></a><span class="lineno"> 6040</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) result);</div><div class="line"><a name="l06041"></a><span class="lineno"> 6041</span> }</div><div class="line"><a name="l06042"></a><span class="lineno"> 6042</span> </div><div class="line"><a name="l06052"></a><span class="lineno"> 6052</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l06053"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a49d355191fabd04a434723265ccafa20"> 6053</a></span> <a class="code" href="vec__int128__ppc_8h.html#a49d355191fabd04a434723265ccafa20">vec_srq4</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra)</div><div class="line"><a name="l06054"></a><span class="lineno"> 6054</span> {</div><div class="line"><a name="l06055"></a><span class="lineno"> 6055</span>  __vector <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> result, vsht_splat;</div><div class="line"><a name="l06056"></a><span class="lineno"> 6056</span> </div><div class="line"><a name="l06057"></a><span class="lineno"> 6057</span>  <span class="comment">/* The vsr instruction only works correctly if the bit shift value</span></div><div class="line"><a name="l06058"></a><span class="lineno"> 6058</span> <span class="comment"> * is splatted to each byte of the vector. */</span></div><div class="line"><a name="l06059"></a><span class="lineno"> 6059</span>  vsht_splat = vec_splat_u8(4);</div><div class="line"><a name="l06060"></a><span class="lineno"> 6060</span>  result = vec_srl ((__vector <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>) vra, vsht_splat);</div><div class="line"><a name="l06061"></a><span class="lineno"> 6061</span> </div><div class="line"><a name="l06062"></a><span class="lineno"> 6062</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) result);</div><div class="line"><a name="l06063"></a><span class="lineno"> 6063</span> }</div><div class="line"><a name="l06064"></a><span class="lineno"> 6064</span> </div><div class="line"><a name="l06074"></a><span class="lineno"> 6074</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l06075"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a257bcf71eefa1d08482587637dc400da"> 6075</a></span> <a class="code" href="vec__int128__ppc_8h.html#a257bcf71eefa1d08482587637dc400da">vec_srq5</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra)</div><div class="line"><a name="l06076"></a><span class="lineno"> 6076</span> {</div><div class="line"><a name="l06077"></a><span class="lineno"> 6077</span>  __vector <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> result, vsht_splat;</div><div class="line"><a name="l06078"></a><span class="lineno"> 6078</span> </div><div class="line"><a name="l06079"></a><span class="lineno"> 6079</span>  <span class="comment">/* The vsr instruction only works correctly if the bit shift value</span></div><div class="line"><a name="l06080"></a><span class="lineno"> 6080</span> <span class="comment"> * is splatted to each byte of the vector. */</span></div><div class="line"><a name="l06081"></a><span class="lineno"> 6081</span>  vsht_splat = vec_splat_u8(5);</div><div class="line"><a name="l06082"></a><span class="lineno"> 6082</span>  result = vec_srl ((__vector <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>) vra, vsht_splat);</div><div class="line"><a name="l06083"></a><span class="lineno"> 6083</span> </div><div class="line"><a name="l06084"></a><span class="lineno"> 6084</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) result);</div><div class="line"><a name="l06085"></a><span class="lineno"> 6085</span> }</div><div class="line"><a name="l06086"></a><span class="lineno"> 6086</span> </div><div class="line"><a name="l06100"></a><span class="lineno"> 6100</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l06101"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a95d3546b2fd6840b46b031c15b4f60d3"> 6101</a></span> <a class="code" href="vec__int128__ppc_8h.html#a95d3546b2fd6840b46b031c15b4f60d3">vec_subcuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l06102"></a><span class="lineno"> 6102</span> {</div><div class="line"><a name="l06103"></a><span class="lineno"> 6103</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t;</div><div class="line"><a name="l06104"></a><span class="lineno"> 6104</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l06105"></a><span class="lineno"> 6105</span> <span class="preprocessor">#if defined (vec_vsubcuq)</span></div><div class="line"><a name="l06106"></a><span class="lineno"> 6106</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_vsubcuq (vra, vrb);</div><div class="line"><a name="l06107"></a><span class="lineno"> 6107</span> <span class="preprocessor">#elif defined (__clang__)</span></div><div class="line"><a name="l06108"></a><span class="lineno"> 6108</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_subc (vra, vrb);</div><div class="line"><a name="l06109"></a><span class="lineno"> 6109</span> <span class="preprocessor"># else</span></div><div class="line"><a name="l06110"></a><span class="lineno"> 6110</span>  __asm__(</div><div class="line"><a name="l06111"></a><span class="lineno"> 6111</span>  <span class="stringliteral">"vsubcuq %0,%1,%2;"</span></div><div class="line"><a name="l06112"></a><span class="lineno"> 6112</span>  : <span class="stringliteral">"=v"</span> (t)</div><div class="line"><a name="l06113"></a><span class="lineno"> 6113</span>  : <span class="stringliteral">"v"</span> (vra),</div><div class="line"><a name="l06114"></a><span class="lineno"> 6114</span>  <span class="stringliteral">"v"</span> (vrb)</div><div class="line"><a name="l06115"></a><span class="lineno"> 6115</span>  : );</div><div class="line"><a name="l06116"></a><span class="lineno"> 6116</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l06117"></a><span class="lineno"> 6117</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l06118"></a><span class="lineno"> 6118</span>  <span class="comment">/* vsubcuq is defined as (vra + NOT(vrb) + 1) >> 128. */</span></div><div class="line"><a name="l06119"></a><span class="lineno"> 6119</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> _b = vec_nor ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb);</div><div class="line"><a name="l06120"></a><span class="lineno"> 6120</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> ci= { 0,0,0,1 };</div><div class="line"><a name="l06121"></a><span class="lineno"> 6121</span> </div><div class="line"><a name="l06122"></a><span class="lineno"> 6122</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#af18b98d2d73f1afbc439e1407c78f305">vec_addecuq</a> (vra, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) _b, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) ci);</div><div class="line"><a name="l06123"></a><span class="lineno"> 6123</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l06124"></a><span class="lineno"> 6124</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t);</div><div class="line"><a name="l06125"></a><span class="lineno"> 6125</span> }</div><div class="line"><a name="l06126"></a><span class="lineno"> 6126</span> </div><div class="line"><a name="l06141"></a><span class="lineno"> 6141</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l06142"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a04f6df21399a4e6228eca254611b23c5"> 6142</a></span> <a class="code" href="vec__int128__ppc_8h.html#a04f6df21399a4e6228eca254611b23c5">vec_subecuq</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrc)</div><div class="line"><a name="l06143"></a><span class="lineno"> 6143</span> {</div><div class="line"><a name="l06144"></a><span class="lineno"> 6144</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t;</div><div class="line"><a name="l06145"></a><span class="lineno"> 6145</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l06146"></a><span class="lineno"> 6146</span> <span class="preprocessor">#if defined (vec_vsubecuq)</span></div><div class="line"><a name="l06147"></a><span class="lineno"> 6147</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_vsubecuq (vra, vrb, vrc);</div><div class="line"><a name="l06148"></a><span class="lineno"> 6148</span> <span class="preprocessor">#elif defined (__clang__)</span></div><div class="line"><a name="l06149"></a><span class="lineno"> 6149</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_subec (vra, vrb, vrc);</div><div class="line"><a name="l06150"></a><span class="lineno"> 6150</span> <span class="preprocessor"># else</span></div><div class="line"><a name="l06151"></a><span class="lineno"> 6151</span>  __asm__(</div><div class="line"><a name="l06152"></a><span class="lineno"> 6152</span>  <span class="stringliteral">"vsubecuq %0,%1,%2,%3;"</span></div><div class="line"><a name="l06153"></a><span class="lineno"> 6153</span>  : <span class="stringliteral">"=v"</span> (t)</div><div class="line"><a name="l06154"></a><span class="lineno"> 6154</span>  : <span class="stringliteral">"v"</span> (vra),</div><div class="line"><a name="l06155"></a><span class="lineno"> 6155</span>  <span class="stringliteral">"v"</span> (vrb),</div><div class="line"><a name="l06156"></a><span class="lineno"> 6156</span>  <span class="stringliteral">"v"</span> (vrc)</div><div class="line"><a name="l06157"></a><span class="lineno"> 6157</span>  : );</div><div class="line"><a name="l06158"></a><span class="lineno"> 6158</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l06159"></a><span class="lineno"> 6159</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l06160"></a><span class="lineno"> 6160</span>  <span class="comment">/* vsubcuq is defined as (vra + NOT(vrb) + vrc.bit[127]) >> 128. */</span></div><div class="line"><a name="l06161"></a><span class="lineno"> 6161</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> _b = vec_nor ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb);</div><div class="line"><a name="l06162"></a><span class="lineno"> 6162</span> </div><div class="line"><a name="l06163"></a><span class="lineno"> 6163</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#af18b98d2d73f1afbc439e1407c78f305">vec_addecuq</a> (vra, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) _b, vrc);</div><div class="line"><a name="l06164"></a><span class="lineno"> 6164</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l06165"></a><span class="lineno"> 6165</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t);</div><div class="line"><a name="l06166"></a><span class="lineno"> 6166</span> }</div><div class="line"><a name="l06167"></a><span class="lineno"> 6167</span> </div><div class="line"><a name="l06182"></a><span class="lineno"> 6182</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l06183"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a2e40f9bf5df59b725cbfb6738c765202"> 6183</a></span> <a class="code" href="vec__int128__ppc_8h.html#a2e40f9bf5df59b725cbfb6738c765202">vec_subeuqm</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrc)</div><div class="line"><a name="l06184"></a><span class="lineno"> 6184</span> {</div><div class="line"><a name="l06185"></a><span class="lineno"> 6185</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t;</div><div class="line"><a name="l06186"></a><span class="lineno"> 6186</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l06187"></a><span class="lineno"> 6187</span> <span class="preprocessor">#if defined (vec_vsubeuqm)</span></div><div class="line"><a name="l06188"></a><span class="lineno"> 6188</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_vsubeuqm (vra, vrb, vrc);</div><div class="line"><a name="l06189"></a><span class="lineno"> 6189</span> <span class="preprocessor">#elif defined (__clang__)</span></div><div class="line"><a name="l06190"></a><span class="lineno"> 6190</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_sube (vra, vrb, vrc);</div><div class="line"><a name="l06191"></a><span class="lineno"> 6191</span> <span class="preprocessor"># else</span></div><div class="line"><a name="l06192"></a><span class="lineno"> 6192</span>  __asm__(</div><div class="line"><a name="l06193"></a><span class="lineno"> 6193</span>  <span class="stringliteral">"vsubeuqm %0,%1,%2,%3;"</span></div><div class="line"><a name="l06194"></a><span class="lineno"> 6194</span>  : <span class="stringliteral">"=v"</span> (t)</div><div class="line"><a name="l06195"></a><span class="lineno"> 6195</span>  : <span class="stringliteral">"v"</span> (vra),</div><div class="line"><a name="l06196"></a><span class="lineno"> 6196</span>  <span class="stringliteral">"v"</span> (vrb),</div><div class="line"><a name="l06197"></a><span class="lineno"> 6197</span>  <span class="stringliteral">"v"</span> (vrc)</div><div class="line"><a name="l06198"></a><span class="lineno"> 6198</span>  : );</div><div class="line"><a name="l06199"></a><span class="lineno"> 6199</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l06200"></a><span class="lineno"> 6200</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l06201"></a><span class="lineno"> 6201</span>  <span class="comment">/* vsubeuqm is defined as vra + NOT(vrb) + vrc.bit[127]. */</span></div><div class="line"><a name="l06202"></a><span class="lineno"> 6202</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> _b = vec_nor ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb);</div><div class="line"><a name="l06203"></a><span class="lineno"> 6203</span> </div><div class="line"><a name="l06204"></a><span class="lineno"> 6204</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a44e63f70b182d60fe03b43a80647451a">vec_addeuqm</a> (vra, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) _b, vrc);</div><div class="line"><a name="l06205"></a><span class="lineno"> 6205</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l06206"></a><span class="lineno"> 6206</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t);</div><div class="line"><a name="l06207"></a><span class="lineno"> 6207</span> }</div><div class="line"><a name="l06208"></a><span class="lineno"> 6208</span> </div><div class="line"><a name="l06222"></a><span class="lineno"> 6222</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l06223"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a6bafb410404d4f1e10a99263b57d1df0"> 6223</a></span> <a class="code" href="vec__int128__ppc_8h.html#a6bafb410404d4f1e10a99263b57d1df0">vec_subuqm</a> (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vra, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> vrb)</div><div class="line"><a name="l06224"></a><span class="lineno"> 6224</span> {</div><div class="line"><a name="l06225"></a><span class="lineno"> 6225</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> t;</div><div class="line"><a name="l06226"></a><span class="lineno"> 6226</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l06227"></a><span class="lineno"> 6227</span> <span class="preprocessor">#if defined (vec_vsubuqm)</span></div><div class="line"><a name="l06228"></a><span class="lineno"> 6228</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_vsubuqm (vra, vrb);</div><div class="line"><a name="l06229"></a><span class="lineno"> 6229</span> <span class="preprocessor">#elif defined (__clang__)</span></div><div class="line"><a name="l06230"></a><span class="lineno"> 6230</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vec_sub (vra, vrb);</div><div class="line"><a name="l06231"></a><span class="lineno"> 6231</span>  __asm__(</div><div class="line"><a name="l06232"></a><span class="lineno"> 6232</span>  <span class="stringliteral">"vsubuqm %0,%1,%2;"</span></div><div class="line"><a name="l06233"></a><span class="lineno"> 6233</span>  : <span class="stringliteral">"=v"</span> (t)</div><div class="line"><a name="l06234"></a><span class="lineno"> 6234</span>  : <span class="stringliteral">"v"</span> (vra),</div><div class="line"><a name="l06235"></a><span class="lineno"> 6235</span>  <span class="stringliteral">"v"</span> (vrb)</div><div class="line"><a name="l06236"></a><span class="lineno"> 6236</span>  : );</div><div class="line"><a name="l06237"></a><span class="lineno"> 6237</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l06238"></a><span class="lineno"> 6238</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l06239"></a><span class="lineno"> 6239</span>  <span class="comment">/* vsubuqm is defined as vra + NOT(vrb) + 1. */</span></div><div class="line"><a name="l06240"></a><span class="lineno"> 6240</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> _b = vec_nor ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) vrb);</div><div class="line"><a name="l06241"></a><span class="lineno"> 6241</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> ci= { 0,0,0,1 };</div><div class="line"><a name="l06242"></a><span class="lineno"> 6242</span> </div><div class="line"><a name="l06243"></a><span class="lineno"> 6243</span>  t = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a44e63f70b182d60fe03b43a80647451a">vec_addeuqm</a> (vra, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) _b, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) ci);</div><div class="line"><a name="l06244"></a><span class="lineno"> 6244</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l06245"></a><span class="lineno"> 6245</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) t);</div><div class="line"><a name="l06246"></a><span class="lineno"> 6246</span> }</div><div class="line"><a name="l06247"></a><span class="lineno"> 6247</span> </div><div class="line"><a name="l06248"></a><span class="lineno"> 6248</span> </div><div class="line"><a name="l06270"></a><span class="lineno"> 6270</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l06271"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a84e6361054b52ac4564bcef25b718151"> 6271</a></span> <a class="code" href="vec__int128__ppc_8h.html#a84e6361054b52ac4564bcef25b718151">vec_vmuleud</a> (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> a, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b)</div><div class="line"><a name="l06272"></a><span class="lineno"> 6272</span> {</div><div class="line"><a name="l06273"></a><span class="lineno"> 6273</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> res;</div><div class="line"><a name="l06274"></a><span class="lineno"> 6274</span> </div><div class="line"><a name="l06275"></a><span class="lineno"> 6275</span> <span class="preprocessor">#if defined (_ARCH_PWR9) && ((__GNUC__ >= 6) || (__clang_major__ >= 11))</span></div><div class="line"><a name="l06276"></a><span class="lineno"> 6276</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> zero = { 0, 0 };</div><div class="line"><a name="l06277"></a><span class="lineno"> 6277</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b_eud = <a class="code" href="vec__int64__ppc_8h.html#acd5bafec6c1c15b0336551e82d1169d4">vec_mrgahd</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) b, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero);</div><div class="line"><a name="l06278"></a><span class="lineno"> 6278</span>  __asm__(</div><div class="line"><a name="l06279"></a><span class="lineno"> 6279</span>  <span class="stringliteral">"vmsumudm %0,%1,%2,%3;\n"</span></div><div class="line"><a name="l06280"></a><span class="lineno"> 6280</span>  : <span class="stringliteral">"=v"</span> (res)</div><div class="line"><a name="l06281"></a><span class="lineno"> 6281</span>  : <span class="stringliteral">"v"</span> (a), <span class="stringliteral">"v"</span> (b_eud), <span class="stringliteral">"v"</span> (zero)</div><div class="line"><a name="l06282"></a><span class="lineno"> 6282</span>  : );</div><div class="line"><a name="l06283"></a><span class="lineno"> 6283</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l06284"></a><span class="lineno"> 6284</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l06285"></a><span class="lineno"> 6285</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> zero = { 0, 0 };</div><div class="line"><a name="l06286"></a><span class="lineno"> 6286</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> p0, p1, pp10, pp01;</div><div class="line"><a name="l06287"></a><span class="lineno"> 6287</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> m0, m1;</div><div class="line"><a name="l06288"></a><span class="lineno"> 6288</span> </div><div class="line"><a name="l06289"></a><span class="lineno"> 6289</span> <span class="comment">// Need the endian invariant merge word high here</span></div><div class="line"><a name="l06290"></a><span class="lineno"> 6290</span> <span class="preprocessor">#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__</span></div><div class="line"><a name="l06291"></a><span class="lineno"> 6291</span> <span class="comment">// Nullify the little endian transform</span></div><div class="line"><a name="l06292"></a><span class="lineno"> 6292</span>  m0 = vec_mergel ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b);</div><div class="line"><a name="l06293"></a><span class="lineno"> 6293</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l06294"></a><span class="lineno"> 6294</span>  m0 = vec_mergeh ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b);</div><div class="line"><a name="l06295"></a><span class="lineno"> 6295</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l06296"></a><span class="lineno"> 6296</span>  m1 = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int64__ppc_8h.html#af55ccf9e8b50b5b1198e4cc226000282">vec_xxspltd</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) a, 0);</div><div class="line"><a name="l06297"></a><span class="lineno"> 6297</span> </div><div class="line"><a name="l06298"></a><span class="lineno"> 6298</span>  <span class="comment">// Need the endian invariant multiply even/odd word here</span></div><div class="line"><a name="l06299"></a><span class="lineno"> 6299</span>  p1 = <a class="code" href="vec__int32__ppc_8h.html#ae52349ced57857d20fb5e06b1b09cc05">vec_vmulouw</a> (m1, m0);</div><div class="line"><a name="l06300"></a><span class="lineno"> 6300</span>  p0 = <a class="code" href="vec__int32__ppc_8h.html#ae30f226bd27241513f0611b50967a080">vec_vmuleuw</a> (m1, m0);</div><div class="line"><a name="l06301"></a><span class="lineno"> 6301</span>  <span class="comment">/* res[1] = p1[1]; res[0] = p0[0]; */</span></div><div class="line"><a name="l06302"></a><span class="lineno"> 6302</span>  res = <a class="code" href="vec__int64__ppc_8h.html#a53159a600aba803503ae6ddcb539a123">vec_pasted</a> (p0, p1);</div><div class="line"><a name="l06303"></a><span class="lineno"> 6303</span>  <span class="comment">/*</span></div><div class="line"><a name="l06304"></a><span class="lineno"> 6304</span> <span class="comment"> pp10[1] = p1[0]; pp10[0] = 0;</span></div><div class="line"><a name="l06305"></a><span class="lineno"> 6305</span> <span class="comment"> pp01[1] = p0[1]; pp01[0] = 0;</span></div><div class="line"><a name="l06306"></a><span class="lineno"> 6306</span> <span class="comment"> */</span></div><div class="line"><a name="l06307"></a><span class="lineno"> 6307</span>  <span class="comment">// Need the endian invariant merge algebraic high/low here</span></div><div class="line"><a name="l06308"></a><span class="lineno"> 6308</span>  pp10 = (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) <a class="code" href="vec__int64__ppc_8h.html#acd5bafec6c1c15b0336551e82d1169d4">vec_mrgahd</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) p1);</div><div class="line"><a name="l06309"></a><span class="lineno"> 6309</span>  pp01 = (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) <a class="code" href="vec__int64__ppc_8h.html#a5242d6311cd5ab50377cfeb2cf2ac8bf">vec_mrgald</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) p0);</div><div class="line"><a name="l06310"></a><span class="lineno"> 6310</span>  <span class="comment">/* pp01 = pp01 + pp10. */</span></div><div class="line"><a name="l06311"></a><span class="lineno"> 6311</span>  pp01 = (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) pp01, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) pp10);</div><div class="line"><a name="l06312"></a><span class="lineno"> 6312</span> </div><div class="line"><a name="l06313"></a><span class="lineno"> 6313</span>  <span class="comment">/* res = res + (pp01 << 32) */</span></div><div class="line"><a name="l06314"></a><span class="lineno"> 6314</span>  pp01 = (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) vec_sld ((<a class="code" href="vec__common__ppc_8h.html#adf5717f56a3dac6980206dbd37614ca2">vi32_t</a>) pp01, (<a class="code" href="vec__common__ppc_8h.html#adf5717f56a3dac6980206dbd37614ca2">vi32_t</a>) pp01, 4);</div><div class="line"><a name="l06315"></a><span class="lineno"> 6315</span>  res = (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) pp01, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) res);</div><div class="line"><a name="l06316"></a><span class="lineno"> 6316</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l06317"></a><span class="lineno"> 6317</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> zero = {0,0,0,0};</div><div class="line"><a name="l06318"></a><span class="lineno"> 6318</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> p0, p1;</div><div class="line"><a name="l06319"></a><span class="lineno"> 6319</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> resw;</div><div class="line"><a name="l06320"></a><span class="lineno"> 6320</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> m0, m1, mm;</div><div class="line"><a name="l06321"></a><span class="lineno"> 6321</span> </div><div class="line"><a name="l06322"></a><span class="lineno"> 6322</span>  m0 = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) vec_mergeh (a, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) zero);</div><div class="line"><a name="l06323"></a><span class="lineno"> 6323</span>  mm = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) vec_mergeh (b, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) zero);</div><div class="line"><a name="l06324"></a><span class="lineno"> 6324</span> </div><div class="line"><a name="l06325"></a><span class="lineno"> 6325</span>  m1 = vec_splat (mm, 3);</div><div class="line"><a name="l06326"></a><span class="lineno"> 6326</span> </div><div class="line"><a name="l06327"></a><span class="lineno"> 6327</span>  p0 = vec_vmuleuh (m0, m1);</div><div class="line"><a name="l06328"></a><span class="lineno"> 6328</span>  p1 = vec_vmulouh (m0, m1);</div><div class="line"><a name="l06329"></a><span class="lineno"> 6329</span> </div><div class="line"><a name="l06330"></a><span class="lineno"> 6330</span>  resw = vec_sld (zero, p1, 14);</div><div class="line"><a name="l06331"></a><span class="lineno"> 6331</span>  {</div><div class="line"><a name="l06332"></a><span class="lineno"> 6332</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> c;</div><div class="line"><a name="l06333"></a><span class="lineno"> 6333</span>  c = vec_vaddcuw (resw, p0);</div><div class="line"><a name="l06334"></a><span class="lineno"> 6334</span>  resw = vec_vadduwm (resw, p0);</div><div class="line"><a name="l06335"></a><span class="lineno"> 6335</span>  c = vec_sld (c, c, 4);</div><div class="line"><a name="l06336"></a><span class="lineno"> 6336</span>  resw = vec_vadduwm (resw, c);</div><div class="line"><a name="l06337"></a><span class="lineno"> 6337</span>  }</div><div class="line"><a name="l06338"></a><span class="lineno"> 6338</span> </div><div class="line"><a name="l06339"></a><span class="lineno"> 6339</span>  m1 = vec_splat (mm, 2);</div><div class="line"><a name="l06340"></a><span class="lineno"> 6340</span>  p0 = vec_vmuleuh (m0, m1);</div><div class="line"><a name="l06341"></a><span class="lineno"> 6341</span>  p1 = vec_vmulouh (m0, m1);</div><div class="line"><a name="l06342"></a><span class="lineno"> 6342</span> </div><div class="line"><a name="l06343"></a><span class="lineno"> 6343</span>  {</div><div class="line"><a name="l06344"></a><span class="lineno"> 6344</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> c;</div><div class="line"><a name="l06345"></a><span class="lineno"> 6345</span>  c = vec_vaddcuw (resw, p1);</div><div class="line"><a name="l06346"></a><span class="lineno"> 6346</span>  resw = vec_vadduwm (resw, p1);</div><div class="line"><a name="l06347"></a><span class="lineno"> 6347</span>  c = vec_sld (c, c, 4);</div><div class="line"><a name="l06348"></a><span class="lineno"> 6348</span>  resw = vec_vadduwm (resw, c);</div><div class="line"><a name="l06349"></a><span class="lineno"> 6349</span>  resw = vec_sld (c, resw, 14);</div><div class="line"><a name="l06350"></a><span class="lineno"> 6350</span>  }</div><div class="line"><a name="l06351"></a><span class="lineno"> 6351</span> </div><div class="line"><a name="l06352"></a><span class="lineno"> 6352</span>  {</div><div class="line"><a name="l06353"></a><span class="lineno"> 6353</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> c;</div><div class="line"><a name="l06354"></a><span class="lineno"> 6354</span>  c = vec_vaddcuw (resw, p0);</div><div class="line"><a name="l06355"></a><span class="lineno"> 6355</span>  resw = vec_vadduwm (resw, p0);</div><div class="line"><a name="l06356"></a><span class="lineno"> 6356</span>  c = vec_sld (c, c, 4);</div><div class="line"><a name="l06357"></a><span class="lineno"> 6357</span>  resw = vec_vadduwm (resw, c);</div><div class="line"><a name="l06358"></a><span class="lineno"> 6358</span>  }</div><div class="line"><a name="l06359"></a><span class="lineno"> 6359</span> </div><div class="line"><a name="l06360"></a><span class="lineno"> 6360</span>  m1 = vec_splat (mm, 1);</div><div class="line"><a name="l06361"></a><span class="lineno"> 6361</span>  p0 = vec_vmuleuh (m0, m1);</div><div class="line"><a name="l06362"></a><span class="lineno"> 6362</span>  p1 = vec_vmulouh (m0, m1);</div><div class="line"><a name="l06363"></a><span class="lineno"> 6363</span> </div><div class="line"><a name="l06364"></a><span class="lineno"> 6364</span>  {</div><div class="line"><a name="l06365"></a><span class="lineno"> 6365</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> c;</div><div class="line"><a name="l06366"></a><span class="lineno"> 6366</span>  c = vec_vaddcuw (resw, p1);</div><div class="line"><a name="l06367"></a><span class="lineno"> 6367</span>  resw = vec_vadduwm (resw, p1);</div><div class="line"><a name="l06368"></a><span class="lineno"> 6368</span>  c = vec_sld (c, c, 4);</div><div class="line"><a name="l06369"></a><span class="lineno"> 6369</span>  resw = vec_vadduwm (resw, c);</div><div class="line"><a name="l06370"></a><span class="lineno"> 6370</span>  resw = vec_sld (c, resw, 14);</div><div class="line"><a name="l06371"></a><span class="lineno"> 6371</span>  }</div><div class="line"><a name="l06372"></a><span class="lineno"> 6372</span> </div><div class="line"><a name="l06373"></a><span class="lineno"> 6373</span>  {</div><div class="line"><a name="l06374"></a><span class="lineno"> 6374</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> c;</div><div class="line"><a name="l06375"></a><span class="lineno"> 6375</span>  c = vec_vaddcuw (resw, p0);</div><div class="line"><a name="l06376"></a><span class="lineno"> 6376</span>  resw = vec_vadduwm (resw, p0);</div><div class="line"><a name="l06377"></a><span class="lineno"> 6377</span>  c = vec_sld (c, c, 4);</div><div class="line"><a name="l06378"></a><span class="lineno"> 6378</span>  resw = vec_vadduwm (resw, c);</div><div class="line"><a name="l06379"></a><span class="lineno"> 6379</span>  }</div><div class="line"><a name="l06380"></a><span class="lineno"> 6380</span> </div><div class="line"><a name="l06381"></a><span class="lineno"> 6381</span>  m1 = vec_splat (mm, 0);</div><div class="line"><a name="l06382"></a><span class="lineno"> 6382</span>  p0 = vec_vmuleuh (m0, m1);</div><div class="line"><a name="l06383"></a><span class="lineno"> 6383</span>  p1 = vec_vmulouh (m0, m1);</div><div class="line"><a name="l06384"></a><span class="lineno"> 6384</span> </div><div class="line"><a name="l06385"></a><span class="lineno"> 6385</span>  {</div><div class="line"><a name="l06386"></a><span class="lineno"> 6386</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> c;</div><div class="line"><a name="l06387"></a><span class="lineno"> 6387</span>  c = vec_vaddcuw (resw, p1);</div><div class="line"><a name="l06388"></a><span class="lineno"> 6388</span>  resw = vec_vadduwm (resw, p1);</div><div class="line"><a name="l06389"></a><span class="lineno"> 6389</span>  c = vec_sld (c, c, 4);</div><div class="line"><a name="l06390"></a><span class="lineno"> 6390</span>  resw = vec_vadduwm (resw, c);</div><div class="line"><a name="l06391"></a><span class="lineno"> 6391</span>  resw = vec_sld (c, resw, 14);</div><div class="line"><a name="l06392"></a><span class="lineno"> 6392</span>  }</div><div class="line"><a name="l06393"></a><span class="lineno"> 6393</span> </div><div class="line"><a name="l06394"></a><span class="lineno"> 6394</span>  {</div><div class="line"><a name="l06395"></a><span class="lineno"> 6395</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> c;</div><div class="line"><a name="l06396"></a><span class="lineno"> 6396</span>  c = vec_vaddcuw (resw, p0);</div><div class="line"><a name="l06397"></a><span class="lineno"> 6397</span>  resw = vec_vadduwm (resw, p0);</div><div class="line"><a name="l06398"></a><span class="lineno"> 6398</span>  c = vec_sld (c, c, 4);</div><div class="line"><a name="l06399"></a><span class="lineno"> 6399</span>  resw = vec_vadduwm (resw, c);</div><div class="line"><a name="l06400"></a><span class="lineno"> 6400</span>  }</div><div class="line"><a name="l06401"></a><span class="lineno"> 6401</span> </div><div class="line"><a name="l06402"></a><span class="lineno"> 6402</span>  res = (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>)resw;</div><div class="line"><a name="l06403"></a><span class="lineno"> 6403</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l06404"></a><span class="lineno"> 6404</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l06405"></a><span class="lineno"> 6405</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) res);</div><div class="line"><a name="l06406"></a><span class="lineno"> 6406</span> }</div><div class="line"><a name="l06407"></a><span class="lineno"> 6407</span> </div><div class="line"><a name="l06430"></a><span class="lineno"> 6430</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l06431"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a6280736f91cb67eca10b55e750bfe1de"> 6431</a></span> <a class="code" href="vec__int128__ppc_8h.html#a6280736f91cb67eca10b55e750bfe1de">vec_vmaddeud</a> (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> a, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> c)</div><div class="line"><a name="l06432"></a><span class="lineno"> 6432</span> {</div><div class="line"><a name="l06433"></a><span class="lineno"> 6433</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> zero = { 0, 0 };</div><div class="line"><a name="l06434"></a><span class="lineno"> 6434</span> <span class="preprocessor">#ifdef _ARCH_PWR9</span></div><div class="line"><a name="l06435"></a><span class="lineno"> 6435</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b_eud = <a class="code" href="vec__int64__ppc_8h.html#acd5bafec6c1c15b0336551e82d1169d4">vec_mrgahd</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) b, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero);</div><div class="line"><a name="l06436"></a><span class="lineno"> 6436</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> c_eud = <a class="code" href="vec__int64__ppc_8h.html#acd5bafec6c1c15b0336551e82d1169d4">vec_mrgahd</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) c);</div><div class="line"><a name="l06437"></a><span class="lineno"> 6437</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#a1d183ebd232e5826be109cdaa421aeed">vec_msumudm</a>(a, b_eud, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) c_eud);</div><div class="line"><a name="l06438"></a><span class="lineno"> 6438</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l06439"></a><span class="lineno"> 6439</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> res;</div><div class="line"><a name="l06440"></a><span class="lineno"> 6440</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> c_eud = <a class="code" href="vec__int64__ppc_8h.html#acd5bafec6c1c15b0336551e82d1169d4">vec_mrgahd</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) c);</div><div class="line"><a name="l06441"></a><span class="lineno"> 6441</span>  res = <a class="code" href="vec__int128__ppc_8h.html#a84e6361054b52ac4564bcef25b718151">vec_vmuleud</a> (a, b);</div><div class="line"><a name="l06442"></a><span class="lineno"> 6442</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (res, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) c_eud);</div><div class="line"><a name="l06443"></a><span class="lineno"> 6443</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l06444"></a><span class="lineno"> 6444</span> }</div><div class="line"><a name="l06445"></a><span class="lineno"> 6445</span> </div><div class="line"><a name="l06469"></a><span class="lineno"> 6469</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l06470"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a9e8daafaa42c16823750d7fe61224662"> 6470</a></span> <a class="code" href="vec__int128__ppc_8h.html#a9e8daafaa42c16823750d7fe61224662">vec_vmadd2eud</a> (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> a, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> c, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> d)</div><div class="line"><a name="l06471"></a><span class="lineno"> 6471</span> {</div><div class="line"><a name="l06472"></a><span class="lineno"> 6472</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> zero = { 0, 0 };</div><div class="line"><a name="l06473"></a><span class="lineno"> 6473</span> <span class="preprocessor">#ifdef _ARCH_PWR9</span></div><div class="line"><a name="l06474"></a><span class="lineno"> 6474</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> cd_sum;</div><div class="line"><a name="l06475"></a><span class="lineno"> 6475</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b_eud = <a class="code" href="vec__int64__ppc_8h.html#acd5bafec6c1c15b0336551e82d1169d4">vec_mrgahd</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) b, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero);</div><div class="line"><a name="l06476"></a><span class="lineno"> 6476</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> c_eud = <a class="code" href="vec__int64__ppc_8h.html#acd5bafec6c1c15b0336551e82d1169d4">vec_mrgahd</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) c);</div><div class="line"><a name="l06477"></a><span class="lineno"> 6477</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> d_eud = <a class="code" href="vec__int64__ppc_8h.html#acd5bafec6c1c15b0336551e82d1169d4">vec_mrgahd</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) d);</div><div class="line"><a name="l06478"></a><span class="lineno"> 6478</span>  cd_sum = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) c_eud, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) d_eud);</div><div class="line"><a name="l06479"></a><span class="lineno"> 6479</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#a1d183ebd232e5826be109cdaa421aeed">vec_msumudm</a>(a, b_eud, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) cd_sum);</div><div class="line"><a name="l06480"></a><span class="lineno"> 6480</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l06481"></a><span class="lineno"> 6481</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> res, cd_sum;</div><div class="line"><a name="l06482"></a><span class="lineno"> 6482</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> c_eud = <a class="code" href="vec__int64__ppc_8h.html#acd5bafec6c1c15b0336551e82d1169d4">vec_mrgahd</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) c);</div><div class="line"><a name="l06483"></a><span class="lineno"> 6483</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> d_eud = <a class="code" href="vec__int64__ppc_8h.html#acd5bafec6c1c15b0336551e82d1169d4">vec_mrgahd</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) d);</div><div class="line"><a name="l06484"></a><span class="lineno"> 6484</span>  cd_sum = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) c_eud, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) d_eud);</div><div class="line"><a name="l06485"></a><span class="lineno"> 6485</span>  res = <a class="code" href="vec__int128__ppc_8h.html#a84e6361054b52ac4564bcef25b718151">vec_vmuleud</a> (a, b);</div><div class="line"><a name="l06486"></a><span class="lineno"> 6486</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (res, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) cd_sum);</div><div class="line"><a name="l06487"></a><span class="lineno"> 6487</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l06488"></a><span class="lineno"> 6488</span> }</div><div class="line"><a name="l06489"></a><span class="lineno"> 6489</span> </div><div class="line"><a name="l06512"></a><span class="lineno"> 6512</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l06513"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a208744996e7482604ad274b44999d6ce"> 6513</a></span> <a class="code" href="vec__int128__ppc_8h.html#a208744996e7482604ad274b44999d6ce">vec_vmuloud</a> (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> a, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b)</div><div class="line"><a name="l06514"></a><span class="lineno"> 6514</span> {</div><div class="line"><a name="l06515"></a><span class="lineno"> 6515</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> res;</div><div class="line"><a name="l06516"></a><span class="lineno"> 6516</span> </div><div class="line"><a name="l06517"></a><span class="lineno"> 6517</span> <span class="preprocessor">#if defined (_ARCH_PWR9) && ((__GNUC__ >= 6) || (__clang_major__ >= 11))</span></div><div class="line"><a name="l06518"></a><span class="lineno"> 6518</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> zero = { 0, 0 };</div><div class="line"><a name="l06519"></a><span class="lineno"> 6519</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b_oud = <a class="code" href="vec__int64__ppc_8h.html#a5242d6311cd5ab50377cfeb2cf2ac8bf">vec_mrgald</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>)b);</div><div class="line"><a name="l06520"></a><span class="lineno"> 6520</span>  __asm__(</div><div class="line"><a name="l06521"></a><span class="lineno"> 6521</span>  <span class="stringliteral">"vmsumudm %0,%1,%2,%3;\n"</span></div><div class="line"><a name="l06522"></a><span class="lineno"> 6522</span>  : <span class="stringliteral">"=v"</span> (res)</div><div class="line"><a name="l06523"></a><span class="lineno"> 6523</span>  : <span class="stringliteral">"v"</span> (a), <span class="stringliteral">"v"</span> (b_oud), <span class="stringliteral">"v"</span> (zero)</div><div class="line"><a name="l06524"></a><span class="lineno"> 6524</span>  : );</div><div class="line"><a name="l06525"></a><span class="lineno"> 6525</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l06526"></a><span class="lineno"> 6526</span> <span class="preprocessor">#ifdef _ARCH_PWR8</span></div><div class="line"><a name="l06527"></a><span class="lineno"> 6527</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> zero = { 0, 0 };</div><div class="line"><a name="l06528"></a><span class="lineno"> 6528</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> p0, p1, pp10, pp01;</div><div class="line"><a name="l06529"></a><span class="lineno"> 6529</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> m0, m1;</div><div class="line"><a name="l06530"></a><span class="lineno"> 6530</span> </div><div class="line"><a name="l06531"></a><span class="lineno"> 6531</span>  <span class="comment">// Need the endian invariant merge word low here</span></div><div class="line"><a name="l06532"></a><span class="lineno"> 6532</span> <span class="preprocessor">#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__</span></div><div class="line"><a name="l06533"></a><span class="lineno"> 6533</span>  <span class="comment">// Nullify the little endian transform</span></div><div class="line"><a name="l06534"></a><span class="lineno"> 6534</span>  m0 = vec_mergeh ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b);</div><div class="line"><a name="l06535"></a><span class="lineno"> 6535</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l06536"></a><span class="lineno"> 6536</span>  m0 = vec_mergel ((<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b, (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) b);</div><div class="line"><a name="l06537"></a><span class="lineno"> 6537</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l06538"></a><span class="lineno"> 6538</span>  m1 = (<a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a>) <a class="code" href="vec__int64__ppc_8h.html#af55ccf9e8b50b5b1198e4cc226000282">vec_xxspltd</a> ((<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) a, 1);</div><div class="line"><a name="l06539"></a><span class="lineno"> 6539</span> </div><div class="line"><a name="l06540"></a><span class="lineno"> 6540</span>  <span class="comment">// Need the endian invariant multiply even/odd word here</span></div><div class="line"><a name="l06541"></a><span class="lineno"> 6541</span>  p0 = <a class="code" href="vec__int32__ppc_8h.html#ae30f226bd27241513f0611b50967a080">vec_vmuleuw</a> (m1, m0);</div><div class="line"><a name="l06542"></a><span class="lineno"> 6542</span>  p1 = <a class="code" href="vec__int32__ppc_8h.html#ae52349ced57857d20fb5e06b1b09cc05">vec_vmulouw</a> (m1, m0);</div><div class="line"><a name="l06543"></a><span class="lineno"> 6543</span> </div><div class="line"><a name="l06544"></a><span class="lineno"> 6544</span>  <span class="comment">/* res[1] = p1[1]; res[0] = p0[0]; */</span></div><div class="line"><a name="l06545"></a><span class="lineno"> 6545</span>  res = <a class="code" href="vec__int64__ppc_8h.html#a53159a600aba803503ae6ddcb539a123">vec_pasted</a> (p0, p1);</div><div class="line"><a name="l06546"></a><span class="lineno"> 6546</span>  <span class="comment">/*</span></div><div class="line"><a name="l06547"></a><span class="lineno"> 6547</span> <span class="comment"> pp10[0] = p1[0]; pp10[1] = 0;</span></div><div class="line"><a name="l06548"></a><span class="lineno"> 6548</span> <span class="comment"> pp01[0] = p0[1]; pp01[1] = 0;</span></div><div class="line"><a name="l06549"></a><span class="lineno"> 6549</span> <span class="comment"> */</span></div><div class="line"><a name="l06550"></a><span class="lineno"> 6550</span>  <span class="comment">// Need the endian invariant merge algebraic high/low here</span></div><div class="line"><a name="l06551"></a><span class="lineno"> 6551</span>  pp10 = (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) <a class="code" href="vec__int64__ppc_8h.html#acd5bafec6c1c15b0336551e82d1169d4">vec_mrgahd</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) p1);</div><div class="line"><a name="l06552"></a><span class="lineno"> 6552</span>  pp01 = (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) <a class="code" href="vec__int64__ppc_8h.html#a5242d6311cd5ab50377cfeb2cf2ac8bf">vec_mrgald</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) p0);</div><div class="line"><a name="l06553"></a><span class="lineno"> 6553</span> </div><div class="line"><a name="l06554"></a><span class="lineno"> 6554</span>  pp01 = (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) pp01, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) pp10);</div><div class="line"><a name="l06555"></a><span class="lineno"> 6555</span> </div><div class="line"><a name="l06556"></a><span class="lineno"> 6556</span>  pp01 = (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) vec_sld ((<a class="code" href="vec__common__ppc_8h.html#adf5717f56a3dac6980206dbd37614ca2">vi32_t</a>) pp01, (<a class="code" href="vec__common__ppc_8h.html#adf5717f56a3dac6980206dbd37614ca2">vi32_t</a>) pp01, 4);</div><div class="line"><a name="l06557"></a><span class="lineno"> 6557</span> </div><div class="line"><a name="l06558"></a><span class="lineno"> 6558</span>  res = (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) pp01, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) res);</div><div class="line"><a name="l06559"></a><span class="lineno"> 6559</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l06560"></a><span class="lineno"> 6560</span> <span class="comment">// POWER7 and earlier are big Endian only</span></div><div class="line"><a name="l06561"></a><span class="lineno"> 6561</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> zero = {0,0,0,0};</div><div class="line"><a name="l06562"></a><span class="lineno"> 6562</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> p0, p1;</div><div class="line"><a name="l06563"></a><span class="lineno"> 6563</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> resw;</div><div class="line"><a name="l06564"></a><span class="lineno"> 6564</span>  <a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a> m0, m1, mm;</div><div class="line"><a name="l06565"></a><span class="lineno"> 6565</span> </div><div class="line"><a name="l06566"></a><span class="lineno"> 6566</span>  m0 = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) vec_mergel (a, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) zero);</div><div class="line"><a name="l06567"></a><span class="lineno"> 6567</span>  mm = (<a class="code" href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a>) vec_mergel (b, (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>) zero);</div><div class="line"><a name="l06568"></a><span class="lineno"> 6568</span> </div><div class="line"><a name="l06569"></a><span class="lineno"> 6569</span>  m1 = vec_splat (mm, 3);</div><div class="line"><a name="l06570"></a><span class="lineno"> 6570</span> </div><div class="line"><a name="l06571"></a><span class="lineno"> 6571</span>  p0 = vec_vmuleuh (m0, m1);</div><div class="line"><a name="l06572"></a><span class="lineno"> 6572</span>  p1 = vec_vmulouh (m0, m1);</div><div class="line"><a name="l06573"></a><span class="lineno"> 6573</span> </div><div class="line"><a name="l06574"></a><span class="lineno"> 6574</span>  resw = vec_sld (zero, p1, 14);</div><div class="line"><a name="l06575"></a><span class="lineno"> 6575</span> </div><div class="line"><a name="l06576"></a><span class="lineno"> 6576</span>  {</div><div class="line"><a name="l06577"></a><span class="lineno"> 6577</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> c;</div><div class="line"><a name="l06578"></a><span class="lineno"> 6578</span>  c = vec_vaddcuw (resw, p0);</div><div class="line"><a name="l06579"></a><span class="lineno"> 6579</span>  resw = vec_vadduwm (resw, p0);</div><div class="line"><a name="l06580"></a><span class="lineno"> 6580</span>  c = vec_sld (c, c, 4);</div><div class="line"><a name="l06581"></a><span class="lineno"> 6581</span>  resw = vec_vadduwm (resw, c);</div><div class="line"><a name="l06582"></a><span class="lineno"> 6582</span>  }</div><div class="line"><a name="l06583"></a><span class="lineno"> 6583</span> </div><div class="line"><a name="l06584"></a><span class="lineno"> 6584</span>  m1 = vec_splat (mm, 2);</div><div class="line"><a name="l06585"></a><span class="lineno"> 6585</span> </div><div class="line"><a name="l06586"></a><span class="lineno"> 6586</span>  p0 = vec_vmuleuh (m0, m1);</div><div class="line"><a name="l06587"></a><span class="lineno"> 6587</span>  p1 = vec_vmulouh (m0, m1);</div><div class="line"><a name="l06588"></a><span class="lineno"> 6588</span>  {</div><div class="line"><a name="l06589"></a><span class="lineno"> 6589</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> c;</div><div class="line"><a name="l06590"></a><span class="lineno"> 6590</span>  c = vec_vaddcuw (resw, p1);</div><div class="line"><a name="l06591"></a><span class="lineno"> 6591</span>  resw = vec_vadduwm (resw, p1);</div><div class="line"><a name="l06592"></a><span class="lineno"> 6592</span> </div><div class="line"><a name="l06593"></a><span class="lineno"> 6593</span>  c = vec_sld (c, c, 4);</div><div class="line"><a name="l06594"></a><span class="lineno"> 6594</span>  resw = vec_vadduwm (resw, c);</div><div class="line"><a name="l06595"></a><span class="lineno"> 6595</span>  resw = vec_sld (c, resw, 14);</div><div class="line"><a name="l06596"></a><span class="lineno"> 6596</span>  }</div><div class="line"><a name="l06597"></a><span class="lineno"> 6597</span> </div><div class="line"><a name="l06598"></a><span class="lineno"> 6598</span>  {</div><div class="line"><a name="l06599"></a><span class="lineno"> 6599</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> c;</div><div class="line"><a name="l06600"></a><span class="lineno"> 6600</span>  c = vec_vaddcuw (resw, p0);</div><div class="line"><a name="l06601"></a><span class="lineno"> 6601</span>  resw = vec_vadduwm (resw, p0);</div><div class="line"><a name="l06602"></a><span class="lineno"> 6602</span>  c = vec_sld (c, c, 4);</div><div class="line"><a name="l06603"></a><span class="lineno"> 6603</span>  resw = vec_vadduwm (resw, c);</div><div class="line"><a name="l06604"></a><span class="lineno"> 6604</span>  }</div><div class="line"><a name="l06605"></a><span class="lineno"> 6605</span> </div><div class="line"><a name="l06606"></a><span class="lineno"> 6606</span>  m1 = vec_splat (mm, 1);</div><div class="line"><a name="l06607"></a><span class="lineno"> 6607</span> </div><div class="line"><a name="l06608"></a><span class="lineno"> 6608</span>  p0 = vec_vmuleuh (m0, m1);</div><div class="line"><a name="l06609"></a><span class="lineno"> 6609</span>  p1 = vec_vmulouh (m0, m1);</div><div class="line"><a name="l06610"></a><span class="lineno"> 6610</span> </div><div class="line"><a name="l06611"></a><span class="lineno"> 6611</span>  {</div><div class="line"><a name="l06612"></a><span class="lineno"> 6612</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> c;</div><div class="line"><a name="l06613"></a><span class="lineno"> 6613</span>  c = vec_vaddcuw (resw, p1);</div><div class="line"><a name="l06614"></a><span class="lineno"> 6614</span>  resw = vec_vadduwm (resw, p1);</div><div class="line"><a name="l06615"></a><span class="lineno"> 6615</span> </div><div class="line"><a name="l06616"></a><span class="lineno"> 6616</span>  c = vec_sld (c, c, 4);</div><div class="line"><a name="l06617"></a><span class="lineno"> 6617</span>  resw = vec_vadduwm (resw, c);</div><div class="line"><a name="l06618"></a><span class="lineno"> 6618</span>  resw = vec_sld (c, resw, 14);</div><div class="line"><a name="l06619"></a><span class="lineno"> 6619</span>  }</div><div class="line"><a name="l06620"></a><span class="lineno"> 6620</span> </div><div class="line"><a name="l06621"></a><span class="lineno"> 6621</span>  {</div><div class="line"><a name="l06622"></a><span class="lineno"> 6622</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> c;</div><div class="line"><a name="l06623"></a><span class="lineno"> 6623</span>  c = vec_vaddcuw (resw, p0);</div><div class="line"><a name="l06624"></a><span class="lineno"> 6624</span>  resw = vec_vadduwm (resw, p0);</div><div class="line"><a name="l06625"></a><span class="lineno"> 6625</span>  c = vec_sld (c, c, 4);</div><div class="line"><a name="l06626"></a><span class="lineno"> 6626</span>  resw = vec_vadduwm (resw, c);</div><div class="line"><a name="l06627"></a><span class="lineno"> 6627</span>  }</div><div class="line"><a name="l06628"></a><span class="lineno"> 6628</span> </div><div class="line"><a name="l06629"></a><span class="lineno"> 6629</span>  m1 = vec_splat (mm, 0);</div><div class="line"><a name="l06630"></a><span class="lineno"> 6630</span> </div><div class="line"><a name="l06631"></a><span class="lineno"> 6631</span>  p0 = vec_vmuleuh (m0, m1);</div><div class="line"><a name="l06632"></a><span class="lineno"> 6632</span>  p1 = vec_vmulouh (m0, m1);</div><div class="line"><a name="l06633"></a><span class="lineno"> 6633</span> </div><div class="line"><a name="l06634"></a><span class="lineno"> 6634</span>  {</div><div class="line"><a name="l06635"></a><span class="lineno"> 6635</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> c;</div><div class="line"><a name="l06636"></a><span class="lineno"> 6636</span>  c = vec_vaddcuw (resw, p1);</div><div class="line"><a name="l06637"></a><span class="lineno"> 6637</span>  resw = vec_vadduwm (resw, p1);</div><div class="line"><a name="l06638"></a><span class="lineno"> 6638</span> </div><div class="line"><a name="l06639"></a><span class="lineno"> 6639</span>  c = vec_sld (c, c, 4);</div><div class="line"><a name="l06640"></a><span class="lineno"> 6640</span>  resw = vec_vadduwm (resw, c);</div><div class="line"><a name="l06641"></a><span class="lineno"> 6641</span>  resw = vec_sld (c, resw, 14);</div><div class="line"><a name="l06642"></a><span class="lineno"> 6642</span>  }</div><div class="line"><a name="l06643"></a><span class="lineno"> 6643</span> </div><div class="line"><a name="l06644"></a><span class="lineno"> 6644</span>  {</div><div class="line"><a name="l06645"></a><span class="lineno"> 6645</span>  <a class="code" href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a> c;</div><div class="line"><a name="l06646"></a><span class="lineno"> 6646</span>  c = vec_vaddcuw (resw, p0);</div><div class="line"><a name="l06647"></a><span class="lineno"> 6647</span>  resw = vec_vadduwm (resw, p0);</div><div class="line"><a name="l06648"></a><span class="lineno"> 6648</span>  c = vec_sld (c, c, 4);</div><div class="line"><a name="l06649"></a><span class="lineno"> 6649</span>  resw = vec_vadduwm (resw, c);</div><div class="line"><a name="l06650"></a><span class="lineno"> 6650</span>  }</div><div class="line"><a name="l06651"></a><span class="lineno"> 6651</span> </div><div class="line"><a name="l06652"></a><span class="lineno"> 6652</span>  res = (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a>)resw;</div><div class="line"><a name="l06653"></a><span class="lineno"> 6653</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l06654"></a><span class="lineno"> 6654</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l06655"></a><span class="lineno"> 6655</span>  <span class="keywordflow">return</span> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) res);</div><div class="line"><a name="l06656"></a><span class="lineno"> 6656</span> }</div><div class="line"><a name="l06657"></a><span class="lineno"> 6657</span> </div><div class="line"><a name="l06680"></a><span class="lineno"> 6680</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l06681"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#ae0b83d2696455fea53b1ecf434a0daf8"> 6681</a></span> <a class="code" href="vec__int128__ppc_8h.html#ae0b83d2696455fea53b1ecf434a0daf8">vec_vmaddoud</a> (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> a, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> c)</div><div class="line"><a name="l06682"></a><span class="lineno"> 6682</span> {</div><div class="line"><a name="l06683"></a><span class="lineno"> 6683</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> zero = { 0, 0 };</div><div class="line"><a name="l06684"></a><span class="lineno"> 6684</span> <span class="preprocessor">#ifdef _ARCH_PWR9</span></div><div class="line"><a name="l06685"></a><span class="lineno"> 6685</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b_oud = <a class="code" href="vec__int64__ppc_8h.html#a5242d6311cd5ab50377cfeb2cf2ac8bf">vec_mrgald</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) b);</div><div class="line"><a name="l06686"></a><span class="lineno"> 6686</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> c_oud = <a class="code" href="vec__int64__ppc_8h.html#a5242d6311cd5ab50377cfeb2cf2ac8bf">vec_mrgald</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) c);</div><div class="line"><a name="l06687"></a><span class="lineno"> 6687</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#a1d183ebd232e5826be109cdaa421aeed">vec_msumudm</a>(a, b_oud, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) c_oud);</div><div class="line"><a name="l06688"></a><span class="lineno"> 6688</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l06689"></a><span class="lineno"> 6689</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> res;</div><div class="line"><a name="l06690"></a><span class="lineno"> 6690</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> c_oud = <a class="code" href="vec__int64__ppc_8h.html#a5242d6311cd5ab50377cfeb2cf2ac8bf">vec_mrgald</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) c);</div><div class="line"><a name="l06691"></a><span class="lineno"> 6691</span>  res = <a class="code" href="vec__int128__ppc_8h.html#a208744996e7482604ad274b44999d6ce">vec_vmuloud</a> (a, b);</div><div class="line"><a name="l06692"></a><span class="lineno"> 6692</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (res, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) c_oud);</div><div class="line"><a name="l06693"></a><span class="lineno"> 6693</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l06694"></a><span class="lineno"> 6694</span> }</div><div class="line"><a name="l06695"></a><span class="lineno"> 6695</span> </div><div class="line"><a name="l06719"></a><span class="lineno"> 6719</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l06720"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#af66cdabc7f2bc00f79579ce90fd483e0"> 6720</a></span> <a class="code" href="vec__int128__ppc_8h.html#af66cdabc7f2bc00f79579ce90fd483e0">vec_vmadd2oud</a> (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> a, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> c, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> d)</div><div class="line"><a name="l06721"></a><span class="lineno"> 6721</span> {</div><div class="line"><a name="l06722"></a><span class="lineno"> 6722</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> zero = { 0, 0 };</div><div class="line"><a name="l06723"></a><span class="lineno"> 6723</span> <span class="preprocessor">#ifdef _ARCH_PWR9</span></div><div class="line"><a name="l06724"></a><span class="lineno"> 6724</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> cd_sum;</div><div class="line"><a name="l06725"></a><span class="lineno"> 6725</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b_oud = <a class="code" href="vec__int64__ppc_8h.html#a5242d6311cd5ab50377cfeb2cf2ac8bf">vec_mrgald</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) b);</div><div class="line"><a name="l06726"></a><span class="lineno"> 6726</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> c_oud = <a class="code" href="vec__int64__ppc_8h.html#a5242d6311cd5ab50377cfeb2cf2ac8bf">vec_mrgald</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) c);</div><div class="line"><a name="l06727"></a><span class="lineno"> 6727</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> d_oud = <a class="code" href="vec__int64__ppc_8h.html#a5242d6311cd5ab50377cfeb2cf2ac8bf">vec_mrgald</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) d);</div><div class="line"><a name="l06728"></a><span class="lineno"> 6728</span>  cd_sum = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) c_oud, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) d_oud);</div><div class="line"><a name="l06729"></a><span class="lineno"> 6729</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#a1d183ebd232e5826be109cdaa421aeed">vec_msumudm</a>(a, b_oud, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) cd_sum);</div><div class="line"><a name="l06730"></a><span class="lineno"> 6730</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l06731"></a><span class="lineno"> 6731</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> res, cd_sum;</div><div class="line"><a name="l06732"></a><span class="lineno"> 6732</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> c_oud = <a class="code" href="vec__int64__ppc_8h.html#a5242d6311cd5ab50377cfeb2cf2ac8bf">vec_mrgald</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) c);</div><div class="line"><a name="l06733"></a><span class="lineno"> 6733</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> d_oud = <a class="code" href="vec__int64__ppc_8h.html#a5242d6311cd5ab50377cfeb2cf2ac8bf">vec_mrgald</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) d);</div><div class="line"><a name="l06734"></a><span class="lineno"> 6734</span>  cd_sum = <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) c_oud, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) d_oud);</div><div class="line"><a name="l06735"></a><span class="lineno"> 6735</span>  res = <a class="code" href="vec__int128__ppc_8h.html#a208744996e7482604ad274b44999d6ce">vec_vmuloud</a> (a, b);</div><div class="line"><a name="l06736"></a><span class="lineno"> 6736</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (res, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) cd_sum);</div><div class="line"><a name="l06737"></a><span class="lineno"> 6737</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l06738"></a><span class="lineno"> 6738</span> }</div><div class="line"><a name="l06739"></a><span class="lineno"> 6739</span> </div><div class="line"><a name="l06762"></a><span class="lineno"> 6762</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l06763"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a43f6f199cdf39641d940f5b8d55dbf6b"> 6763</a></span> <a class="code" href="vec__int128__ppc_8h.html#a43f6f199cdf39641d940f5b8d55dbf6b">vec_vmsumeud</a> (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> a, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> c)</div><div class="line"><a name="l06764"></a><span class="lineno"> 6764</span> {</div><div class="line"><a name="l06765"></a><span class="lineno"> 6765</span> <span class="preprocessor">#ifdef _ARCH_PWR9</span></div><div class="line"><a name="l06766"></a><span class="lineno"> 6766</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> zero = { 0, 0 };</div><div class="line"><a name="l06767"></a><span class="lineno"> 6767</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b_eud = <a class="code" href="vec__int64__ppc_8h.html#acd5bafec6c1c15b0336551e82d1169d4">vec_mrgahd</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) b, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero);</div><div class="line"><a name="l06768"></a><span class="lineno"> 6768</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#a1d183ebd232e5826be109cdaa421aeed">vec_msumudm</a>(a, b_eud, c);</div><div class="line"><a name="l06769"></a><span class="lineno"> 6769</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l06770"></a><span class="lineno"> 6770</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> res;</div><div class="line"><a name="l06771"></a><span class="lineno"> 6771</span>  res = <a class="code" href="vec__int128__ppc_8h.html#a84e6361054b52ac4564bcef25b718151">vec_vmuleud</a> (a, b);</div><div class="line"><a name="l06772"></a><span class="lineno"> 6772</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (res, c);</div><div class="line"><a name="l06773"></a><span class="lineno"> 6773</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l06774"></a><span class="lineno"> 6774</span> }</div><div class="line"><a name="l06775"></a><span class="lineno"> 6775</span> </div><div class="line"><a name="l06798"></a><span class="lineno"> 6798</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="line"><a name="l06799"></a><span class="lineno"><a class="line" href="vec__int128__ppc_8h.html#a04385860c7a03a9aa57f4a31017caf81"> 6799</a></span> <a class="code" href="vec__int128__ppc_8h.html#a04385860c7a03a9aa57f4a31017caf81">vec_vmsumoud</a> (<a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> a, <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b, <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> c)</div><div class="line"><a name="l06800"></a><span class="lineno"> 6800</span> {</div><div class="line"><a name="l06801"></a><span class="lineno"> 6801</span> <span class="preprocessor">#ifdef _ARCH_PWR9</span></div><div class="line"><a name="l06802"></a><span class="lineno"> 6802</span>  <span class="keyword">const</span> <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> zero = { 0, 0 };</div><div class="line"><a name="l06803"></a><span class="lineno"> 6803</span>  <a class="code" href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a> b_oud = <a class="code" href="vec__int64__ppc_8h.html#a5242d6311cd5ab50377cfeb2cf2ac8bf">vec_mrgald</a> ((<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) zero, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) b);</div><div class="line"><a name="l06804"></a><span class="lineno"> 6804</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#a1d183ebd232e5826be109cdaa421aeed">vec_msumudm</a>(a, b_oud, (<a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a>) c);</div><div class="line"><a name="l06805"></a><span class="lineno"> 6805</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l06806"></a><span class="lineno"> 6806</span>  <a class="code" href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a> res;</div><div class="line"><a name="l06807"></a><span class="lineno"> 6807</span>  res = <a class="code" href="vec__int128__ppc_8h.html#a208744996e7482604ad274b44999d6ce">vec_vmuloud</a> (a, b);</div><div class="line"><a name="l06808"></a><span class="lineno"> 6808</span>  <span class="keywordflow">return</span> <a class="code" href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a> (res, c);</div><div class="line"><a name="l06809"></a><span class="lineno"> 6809</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l06810"></a><span class="lineno"> 6810</span> }</div><div class="line"><a name="l06811"></a><span class="lineno"> 6811</span> <span class="preprocessor">#endif </span><span class="comment">/* VEC_INT128_PPC_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="vec__int128__ppc_8h_html_a6280736f91cb67eca10b55e750bfe1de"><div class="ttname"><a href="vec__int128__ppc_8h.html#a6280736f91cb67eca10b55e750bfe1de">vec_vmaddeud</a></div><div class="ttdeci">static vui128_t vec_vmaddeud(vui64_t a, vui64_t b, vui64_t c)</div><div class="ttdoc">Vector Multiply-Add Even Unsigned Doublewords. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:6431</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_ab99c4af0aae31b02e1f17f12500198f0"><div class="ttname"><a href="vec__int128__ppc_8h.html#ab99c4af0aae31b02e1f17f12500198f0">vec_sraq</a></div><div class="ttdeci">static vi128_t vec_sraq(vi128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Shift Right Algebraic Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:5807</div></div>
<div class="ttc" id="vec__int64__ppc_8h_html_a5242d6311cd5ab50377cfeb2cf2ac8bf"><div class="ttname"><a href="vec__int64__ppc_8h.html#a5242d6311cd5ab50377cfeb2cf2ac8bf">vec_mrgald</a></div><div class="ttdeci">static vui64_t vec_mrgald(vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Merge Algebraic Low Doublewords. </div><div class="ttdef"><b>Definition:</b> vec_int64_ppc.h:2328</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a7f9ebc5ad32b151a3e08136d51aad4dc"><div class="ttname"><a href="vec__int128__ppc_8h.html#a7f9ebc5ad32b151a3e08136d51aad4dc">vec_cmpltuq</a></div><div class="ttdeci">static vb128_t vec_cmpltuq(vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Compare Less Than Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:2841</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a917acd42e775f4bb323ba2104c52d7cb"><div class="ttname"><a href="vec__int128__ppc_8h.html#a917acd42e775f4bb323ba2104c52d7cb">vec_divudq_10e32</a></div><div class="ttdeci">static vui128_t vec_divudq_10e32(vui128_t *qh, vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Divide Unsigned Double Quadword by const 10e32. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3549</div></div>
<div class="ttc" id="vec__common__ppc_8h_html_abf3504d2f86f03f90239a3196da3b3de"><div class="ttname"><a href="vec__common__ppc_8h.html#abf3504d2f86f03f90239a3196da3b3de">VEC_WE_3</a></div><div class="ttdeci">#define VEC_WE_3</div><div class="ttdoc">Element index for vector splat word 3. </div><div class="ttdef"><b>Definition:</b> vec_common_ppc.h:336</div></div>
<div class="ttc" id="vec__common__ppc_8h_html_a9ed8c282b57705c960542ed869de3325"><div class="ttname"><a href="vec__common__ppc_8h.html#a9ed8c282b57705c960542ed869de3325">CONST_VINT128_DW</a></div><div class="ttdeci">#define CONST_VINT128_DW(__dw0, __dw1)</div><div class="ttdoc">Initializer for 128-bits vector, as two unsigned long long elements in high->low order. May require an explicit cast. </div><div class="ttdef"><b>Definition:</b> vec_common_ppc.h:298</div></div>
<div class="ttc" id="vec__common__ppc_8h_html_a0c3abdfe41178c152e0a2130c20476ff"><div class="ttname"><a href="vec__common__ppc_8h.html#a0c3abdfe41178c152e0a2130c20476ff">vi64_t</a></div><div class="ttdeci">__vector long long vi64_t</div><div class="ttdoc">vector of 64-bit signed long long elements. </div><div class="ttdef"><b>Definition:</b> vec_common_ppc.h:217</div></div>
<div class="ttc" id="vec__int64__ppc_8h_html_a03cdec54548bd95e04d4835d96b1bea4"><div class="ttname"><a href="vec__int64__ppc_8h.html#a03cdec54548bd95e04d4835d96b1bea4">vec_clzd</a></div><div class="ttdeci">static vui64_t vec_clzd(vui64_t vra)</div><div class="ttdoc">Count leading zeros for a vector unsigned long int. </div><div class="ttdef"><b>Definition:</b> vec_int64_ppc.h:958</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a44e63f70b182d60fe03b43a80647451a"><div class="ttname"><a href="vec__int128__ppc_8h.html#a44e63f70b182d60fe03b43a80647451a">vec_addeuqm</a></div><div class="ttdeci">static vui128_t vec_addeuqm(vui128_t a, vui128_t b, vui128_t ci)</div><div class="ttdoc">Vector Add Extended Unsigned Quadword Modulo. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:2250</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a186d0b94bbc652e700ab4e1733b9524c"><div class="ttname"><a href="vec__int128__ppc_8h.html#a186d0b94bbc652e700ab4e1733b9524c">vec_cmpneuq</a></div><div class="ttdeci">static vb128_t vec_cmpneuq(vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Compare Not Equal Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:2896</div></div>
<div class="ttc" id="vec__int16__ppc_8h_html_aa0ddf6a0d591ec6836d1a2b349d16d4d"><div class="ttname"><a href="vec__int16__ppc_8h.html#aa0ddf6a0d591ec6836d1a2b349d16d4d">vec_vmaddouh</a></div><div class="ttdeci">static vui32_t vec_vmaddouh(vui16_t a, vui16_t b, vui16_t c)</div><div class="ttdoc">Vector Multiply-Add Odd Unsigned Halfwords. </div><div class="ttdef"><b>Definition:</b> vec_int16_ppc.h:1134</div></div>
<div class="ttc" id="vec__int64__ppc_8h_html_a32acead723b7867ff4c9f8be9bb708ca"><div class="ttname"><a href="vec__int64__ppc_8h.html#a32acead723b7867ff4c9f8be9bb708ca">vec_vmaddouw</a></div><div class="ttdeci">static vui64_t vec_vmaddouw(vui32_t a, vui32_t b, vui32_t c)</div><div class="ttdoc">Vector Multiply-Add Odd Unsigned Words. </div><div class="ttdef"><b>Definition:</b> vec_int64_ppc.h:3614</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a45ce55b0cba15cddb6764a900922d768"><div class="ttname"><a href="vec__int128__ppc_8h.html#a45ce55b0cba15cddb6764a900922d768">vec_cmpgtsq</a></div><div class="ttdeci">static vb128_t vec_cmpgtsq(vi128_t vra, vi128_t vrb)</div><div class="ttdoc">Vector Compare Greater Than Signed Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:2683</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_adb02d0572ecc17eca0de6d4f0d9aa302"><div class="ttname"><a href="vec__int128__ppc_8h.html#adb02d0572ecc17eca0de6d4f0d9aa302">vec_maxuq</a></div><div class="ttdeci">static vui128_t vec_maxuq(vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Maximum Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3730</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a88209b466e628a6a77c6ddab7a15b4c8"><div class="ttname"><a href="vec__int128__ppc_8h.html#a88209b466e628a6a77c6ddab7a15b4c8">vec_cmpsq_all_le</a></div><div class="ttdeci">static int vec_cmpsq_all_le(vi128_t vra, vi128_t vrb)</div><div class="ttdoc">Vector Compare any Less Than or Equal Signed Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3031</div></div>
<div class="ttc" id="vec__common__ppc_8h_html_aafeddf1e79ef817440ff01fafb0e00ca"><div class="ttname"><a href="vec__common__ppc_8h.html#aafeddf1e79ef817440ff01fafb0e00ca">vb32_t</a></div><div class="ttdeci">__vector __bool int vb32_t</div><div class="ttdoc">vector of 32-bit bool int elements. </div><div class="ttdef"><b>Definition:</b> vec_common_ppc.h:228</div></div>
<div class="ttc" id="vec__int64__ppc_8h_html"><div class="ttname"><a href="vec__int64__ppc_8h.html">vec_int64_ppc.h</a></div><div class="ttdoc">Header package containing a collection of 128-bit SIMD operations over 64-bit integer elements...</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_af8f06b2c3d612a7cfdeb3bb883c59e19"><div class="ttname"><a href="vec__int128__ppc_8h.html#af8f06b2c3d612a7cfdeb3bb883c59e19">vec_cmpuq_all_ge</a></div><div class="ttdeci">static int vec_cmpuq_all_ge(vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Compare any Greater Than or Equal Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3153</div></div>
<div class="ttc" id="vec__int64__ppc_8h_html_a431720fd713485fcb13963cdcb89ac76"><div class="ttname"><a href="vec__int64__ppc_8h.html#a431720fd713485fcb13963cdcb89ac76">vec_vmsumuwm</a></div><div class="ttdeci">static vui64_t vec_vmsumuwm(vui32_t vra, vui32_t vrb, vui64_t vrc)</div><div class="ttdoc">Vector Multiply-Sum Unsigned Word Modulo. </div><div class="ttdef"><b>Definition:</b> vec_int64_ppc.h:3686</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_ae2b45341cc9cc918198bb69da0552098"><div class="ttname"><a href="vec__int128__ppc_8h.html#ae2b45341cc9cc918198bb69da0552098">vec_divuq_10e32</a></div><div class="ttdeci">static vui128_t vec_divuq_10e32(vui128_t vra)</div><div class="ttdoc">Vector Divide by const 10e32 Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3661</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a04f6df21399a4e6228eca254611b23c5"><div class="ttname"><a href="vec__int128__ppc_8h.html#a04f6df21399a4e6228eca254611b23c5">vec_subecuq</a></div><div class="ttdeci">static vui128_t vec_subecuq(vui128_t vra, vui128_t vrb, vui128_t vrc)</div><div class="ttdoc">Vector Subtract Extended and Write Carry Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:6142</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a50546b5b39e0c21cffe678f225ff59b7"><div class="ttname"><a href="vec__int128__ppc_8h.html#a50546b5b39e0c21cffe678f225ff59b7">vec_sraqi</a></div><div class="ttdeci">static vi128_t vec_sraqi(vi128_t vra, const unsigned int shb)</div><div class="ttdoc">Vector Shift Right Algebraic Quadword Immediate. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:5848</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_ab435fd182688a615fb88b6578321839d"><div class="ttname"><a href="vec__int128__ppc_8h.html#ab435fd182688a615fb88b6578321839d">vec_minsq</a></div><div class="ttdeci">static vi128_t vec_minsq(vi128_t vra, vi128_t vrb)</div><div class="ttdoc">Vector Minimum Signed Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3754</div></div>
<div class="ttc" id="vec__common__ppc_8h_html_aa4c9ef3ba2f2c2a8b33f4f4459bbd2aa"><div class="ttname"><a href="vec__common__ppc_8h.html#aa4c9ef3ba2f2c2a8b33f4f4459bbd2aa">VEC_WE_0</a></div><div class="ttdeci">#define VEC_WE_0</div><div class="ttdoc">Element index for vector splat word 0. </div><div class="ttdef"><b>Definition:</b> vec_common_ppc.h:330</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_ac05c640c6a42770cb95466ff4a2d903c"><div class="ttname"><a href="vec__int128__ppc_8h.html#ac05c640c6a42770cb95466ff4a2d903c">vec_srqi</a></div><div class="ttdeci">static vui128_t vec_srqi(vui128_t vra, const unsigned int shb)</div><div class="ttdoc">Vector Shift Right Quadword Immediate. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:5947</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a921647d5b67f0de5006ee32fb3d9c4f1"><div class="ttname"><a href="vec__int128__ppc_8h.html#a921647d5b67f0de5006ee32fb3d9c4f1">vec_setb_ncq</a></div><div class="ttdeci">static vb128_t vec_setb_ncq(vui128_t vcy)</div><div class="ttdoc">Vector Set Bool from Quadword not Carry. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:5581</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a3642b1e0d48117c91189f69dd0e955ad"><div class="ttname"><a href="vec__int128__ppc_8h.html#a3642b1e0d48117c91189f69dd0e955ad">vec_cmplesq</a></div><div class="ttdeci">static vb128_t vec_cmplesq(vi128_t vra, vi128_t vrb)</div><div class="ttdoc">Vector Compare Less Than or Equal Signed Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:2744</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a8c641b0107fc3e1621ef729c04efd583"><div class="ttname"><a href="vec__int128__ppc_8h.html#a8c641b0107fc3e1621ef729c04efd583">vec_mul10cuq</a></div><div class="ttdeci">static vui128_t vec_mul10cuq(vui128_t a)</div><div class="ttdoc">Vector Multiply by 10 & write Carry Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:4007</div></div>
<div class="ttc" id="vec__common__ppc_8h_html_af4ffb9244d1aa4482b683d35c3544194"><div class="ttname"><a href="vec__common__ppc_8h.html#af4ffb9244d1aa4482b683d35c3544194">CONST_VINT64_DW</a></div><div class="ttdeci">#define CONST_VINT64_DW(__dw0, __dw1)</div><div class="ttdoc">Arrange elements of dword initializer in high->low order. </div><div class="ttdef"><b>Definition:</b> vec_common_ppc.h:295</div></div>
<div class="ttc" id="vec__int64__ppc_8h_html_a53159a600aba803503ae6ddcb539a123"><div class="ttname"><a href="vec__int64__ppc_8h.html#a53159a600aba803503ae6ddcb539a123">vec_pasted</a></div><div class="ttdeci">static vui64_t vec_pasted(vui64_t __VH, vui64_t __VL)</div><div class="ttdoc">Vector doubleword paste. Concatenate the high doubleword of the 1st vector with the low double word o...</div><div class="ttdef"><b>Definition:</b> vec_int64_ppc.h:2529</div></div>
<div class="ttc" id="vec__int64__ppc_8h_html_a1e20bdd1df7e3e49dca06d5512ada84b"><div class="ttname"><a href="vec__int64__ppc_8h.html#a1e20bdd1df7e3e49dca06d5512ada84b">vec_vmaddeuw</a></div><div class="ttdeci">static vui64_t vec_vmaddeuw(vui32_t a, vui32_t b, vui32_t c)</div><div class="ttdoc">Vector Multiply-Add Even Unsigned Words. </div><div class="ttdef"><b>Definition:</b> vec_int64_ppc.h:3545</div></div>
<div class="ttc" id="vec__int64__ppc_8h_html_af55ccf9e8b50b5b1198e4cc226000282"><div class="ttname"><a href="vec__int64__ppc_8h.html#af55ccf9e8b50b5b1198e4cc226000282">vec_xxspltd</a></div><div class="ttdeci">static vui64_t vec_xxspltd(vui64_t vra, const int ctl)</div><div class="ttdoc">Vector splat doubleword. Duplicate the selected doubleword element across the doubleword elements of ...</div><div class="ttdef"><b>Definition:</b> vec_int64_ppc.h:3504</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a1799f860ba79e698c66b171392afde01"><div class="ttname"><a href="vec__int128__ppc_8h.html#a1799f860ba79e698c66b171392afde01">vec_cmpuq_all_ne</a></div><div class="ttdeci">static int vec_cmpuq_all_ne(vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Compare all Not Equal Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3262</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a62a38e9016e2d94a56f935ddded3830b"><div class="ttname"><a href="vec__int128__ppc_8h.html#a62a38e9016e2d94a56f935ddded3830b">vec_cmpsq_all_gt</a></div><div class="ttdeci">static int vec_cmpsq_all_gt(vi128_t vra, vi128_t vrb)</div><div class="ttdoc">Vector Compare any Greater Than Signed Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3000</div></div>
<div class="ttc" id="vec__int16__ppc_8h_html_ac0b8c37da453c373690760370a8ceb39"><div class="ttname"><a href="vec__int16__ppc_8h.html#ac0b8c37da453c373690760370a8ceb39">vec_vmaddeuh</a></div><div class="ttdeci">static vui32_t vec_vmaddeuh(vui16_t a, vui16_t b, vui16_t c)</div><div class="ttdoc">Vector Multiply-Add Even Unsigned Halfwords. </div><div class="ttdef"><b>Definition:</b> vec_int16_ppc.h:1098</div></div>
<div class="ttc" id="vec__int32__ppc_8h_html_ae52349ced57857d20fb5e06b1b09cc05"><div class="ttname"><a href="vec__int32__ppc_8h.html#ae52349ced57857d20fb5e06b1b09cc05">vec_vmulouw</a></div><div class="ttdeci">static vui64_t vec_vmulouw(vui32_t vra, vui32_t vrb)</div><div class="ttdoc">Vector Multiply Odd Unsigned Words. </div><div class="ttdef"><b>Definition:</b> vec_int32_ppc.h:1485</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a43f6f199cdf39641d940f5b8d55dbf6b"><div class="ttname"><a href="vec__int128__ppc_8h.html#a43f6f199cdf39641d940f5b8d55dbf6b">vec_vmsumeud</a></div><div class="ttdeci">static vui128_t vec_vmsumeud(vui64_t a, vui64_t b, vui128_t c)</div><div class="ttdoc">Vector Multiply-Sum Even Unsigned Doublewords. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:6763</div></div>
<div class="ttc" id="vec__common__ppc_8h_html_a3b2bbf9f23490ccca3bdc08bc1dc7831"><div class="ttname"><a href="vec__common__ppc_8h.html#a3b2bbf9f23490ccca3bdc08bc1dc7831">vi128_t</a></div><div class="ttdeci">__vector __int128 vi128_t</div><div class="ttdoc">vector of one 128-bit signed __int128 element. </div><div class="ttdef"><b>Definition:</b> vec_common_ppc.h:235</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_ae0b83d2696455fea53b1ecf434a0daf8"><div class="ttname"><a href="vec__int128__ppc_8h.html#ae0b83d2696455fea53b1ecf434a0daf8">vec_vmaddoud</a></div><div class="ttdeci">static vui128_t vec_vmaddoud(vui64_t a, vui64_t b, vui64_t c)</div><div class="ttdoc">Vector Multiply-Add Odd Unsigned Doublewords. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:6681</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a8ba40be93339359793ef776e1d5d7577"><div class="ttname"><a href="vec__int128__ppc_8h.html#a8ba40be93339359793ef776e1d5d7577">vec_sldq</a></div><div class="ttdeci">static vui128_t vec_sldq(vui128_t vrw, vui128_t vrx, vui128_t vrb)</div><div class="ttdoc">Vector Shift Left Double Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:5640</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a31a893a75e42f5f6c4dfe793678fea59"><div class="ttname"><a href="vec__int128__ppc_8h.html#a31a893a75e42f5f6c4dfe793678fea59">vec_modudq_10e31</a></div><div class="ttdeci">static vui128_t vec_modudq_10e31(vui128_t vra, vui128_t vrb, vui128_t *ql)</div><div class="ttdoc">Vector Modulo Unsigned Double Quadword by const 10e31. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3842</div></div>
<div class="ttc" id="vec__common__ppc_8h_html_aafb30510341c41500fc4fab3268cfec7"><div class="ttname"><a href="vec__common__ppc_8h.html#aafb30510341c41500fc4fab3268cfec7">VEC_W_L</a></div><div class="ttdeci">#define VEC_W_L</div><div class="ttdoc">Element index for lowest order word. </div><div class="ttdef"><b>Definition:</b> vec_common_ppc.h:328</div></div>
<div class="ttc" id="vec__int64__ppc_8h_html_a0fb3ddc8b334ae25119a02e749884290"><div class="ttname"><a href="vec__int64__ppc_8h.html#a0fb3ddc8b334ae25119a02e749884290">vec_vsld</a></div><div class="ttdeci">static vui64_t vec_vsld(vui64_t vra, vui64_t vrb)</div><div class="ttdoc">Vector Shift Left Doubleword. </div><div class="ttdef"><b>Definition:</b> vec_int64_ppc.h:3295</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_ad0fa6a9987d3bd9593d1780b1c28c390"><div class="ttname"><a href="vec__int128__ppc_8h.html#ad0fa6a9987d3bd9593d1780b1c28c390">vec_minuq</a></div><div class="ttdeci">static vui128_t vec_minuq(vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Minimum Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3778</div></div>
<div class="ttc" id="vec__int64__ppc_8h_html_a28052c1907d1f733c9dda8a48039e546"><div class="ttname"><a href="vec__int64__ppc_8h.html#a28052c1907d1f733c9dda8a48039e546">vec_addudm</a></div><div class="ttdeci">static vui64_t vec_addudm(vui64_t a, vui64_t b)</div><div class="ttdoc">Vector Add Unsigned Doubleword Modulo. </div><div class="ttdef"><b>Definition:</b> vec_int64_ppc.h:911</div></div>
<div class="ttc" id="vec__int64__ppc_8h_html_a0db4e91aa49c03fbb4a8da5a174c7b07"><div class="ttname"><a href="vec__int64__ppc_8h.html#a0db4e91aa49c03fbb4a8da5a174c7b07">vec_popcntd</a></div><div class="ttdeci">static vui64_t vec_popcntd(vui64_t vra)</div><div class="ttdoc">Vector Population Count doubleword. </div><div class="ttdef"><b>Definition:</b> vec_int64_ppc.h:2660</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_ad4ce43dcbc14fb34623d5ece8073b86e"><div class="ttname"><a href="vec__int128__ppc_8h.html#ad4ce43dcbc14fb34623d5ece8073b86e">vec_cmpgtuq</a></div><div class="ttdeci">static vb128_t vec_cmpgtuq(vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Compare Greater Than Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:2718</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a208744996e7482604ad274b44999d6ce"><div class="ttname"><a href="vec__int128__ppc_8h.html#a208744996e7482604ad274b44999d6ce">vec_vmuloud</a></div><div class="ttdeci">static vui128_t vec_vmuloud(vui64_t a, vui64_t b)</div><div class="ttdoc">Vector Multiply Odd Unsigned Doublewords. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:6513</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_af18b98d2d73f1afbc439e1407c78f305"><div class="ttname"><a href="vec__int128__ppc_8h.html#af18b98d2d73f1afbc439e1407c78f305">vec_addecuq</a></div><div class="ttdeci">static vui128_t vec_addecuq(vui128_t a, vui128_t b, vui128_t ci)</div><div class="ttdoc">Vector Add Extended & write Carry Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:2188</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a066cc120c198773a2f8dfd17480b7a49"><div class="ttname"><a href="vec__int128__ppc_8h.html#a066cc120c198773a2f8dfd17480b7a49">vec_clzq</a></div><div class="ttdeci">static vui128_t vec_clzq(vui128_t vra)</div><div class="ttdoc">Vector Count Leading Zeros Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:2483</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a395dad1916a94a6cdb2b601565d7ffce"><div class="ttname"><a href="vec__int128__ppc_8h.html#a395dad1916a94a6cdb2b601565d7ffce">vec_cmpsq_all_lt</a></div><div class="ttdeci">static int vec_cmpsq_all_lt(vi128_t vra, vi128_t vrb)</div><div class="ttdoc">Vector Compare any Less Than Signed Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3062</div></div>
<div class="ttc" id="vec__int64__ppc_8h_html_a8238ba590103ac80fb146a6a2b1aed1c"><div class="ttname"><a href="vec__int64__ppc_8h.html#a8238ba590103ac80fb146a6a2b1aed1c">vec_permdi</a></div><div class="ttdeci">static vui64_t vec_permdi(vui64_t vra, vui64_t vrb, const int ctl)</div><div class="ttdoc">Vector Permute Doubleword Immediate. Combine a doubleword selected from the 1st (vra) vector with a d...</div><div class="ttdef"><b>Definition:</b> vec_int64_ppc.h:2575</div></div>
<div class="ttc" id="vec__common__ppc_8h_html_a9d1a7749d270995baf9eaae078578961"><div class="ttname"><a href="vec__common__ppc_8h.html#a9d1a7749d270995baf9eaae078578961">VEC_BYTE_L</a></div><div class="ttdeci">#define VEC_BYTE_L</div><div class="ttdoc">Element index for lowest order byte. </div><div class="ttdef"><b>Definition:</b> vec_common_ppc.h:344</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a6bafb410404d4f1e10a99263b57d1df0"><div class="ttname"><a href="vec__int128__ppc_8h.html#a6bafb410404d4f1e10a99263b57d1df0">vec_subuqm</a></div><div class="ttdeci">static vui128_t vec_subuqm(vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Subtract Unsigned Quadword Modulo. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:6223</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_aff4f1d8a707289d2271eafad4aeb1e82"><div class="ttname"><a href="vec__int128__ppc_8h.html#aff4f1d8a707289d2271eafad4aeb1e82">vec_moduq_10e32</a></div><div class="ttdeci">static vui128_t vec_moduq_10e32(vui128_t vra, vui128_t q)</div><div class="ttdoc">Vector Modulo by const 10e32 Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3973</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a257bcf71eefa1d08482587637dc400da"><div class="ttname"><a href="vec__int128__ppc_8h.html#a257bcf71eefa1d08482587637dc400da">vec_srq5</a></div><div class="ttdeci">static vui128_t vec_srq5(vui128_t vra)</div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:6075</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a04385860c7a03a9aa57f4a31017caf81"><div class="ttname"><a href="vec__int128__ppc_8h.html#a04385860c7a03a9aa57f4a31017caf81">vec_vmsumoud</a></div><div class="ttdeci">static vui128_t vec_vmsumoud(vui64_t a, vui64_t b, vui128_t c)</div><div class="ttdoc">Vector Multiply-Sum Odd Unsigned Doublewords. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:6799</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a7e7f25c382f8016baa6452fc02c03b83"><div class="ttname"><a href="vec__int128__ppc_8h.html#a7e7f25c382f8016baa6452fc02c03b83">vec_madd2uq</a></div><div class="ttdeci">static vui128_t vec_madd2uq(vui128_t *mulu, vui128_t a, vui128_t b, vui128_t c1, vui128_t c2)</div><div class="ttdoc">Vector Multiply-Add2 Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:5334</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a9449c746cad42f0cd9e2fe4560364e18"><div class="ttname"><a href="vec__int128__ppc_8h.html#a9449c746cad42f0cd9e2fe4560364e18">vec_cmul10cuq</a></div><div class="ttdeci">static vui128_t vec_cmul10cuq(vui128_t *cout, vui128_t a)</div><div class="ttdoc">Vector combined Multiply by 10 & write Carry Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3352</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a2b7f505ebca731aa6fdc7433f82c0c6d"><div class="ttname"><a href="vec__int128__ppc_8h.html#a2b7f505ebca731aa6fdc7433f82c0c6d">vec_cmpuq_all_le</a></div><div class="ttdeci">static int vec_cmpuq_all_le(vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Compare any Less Than or Equal Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3207</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_ae05185c980535dd28aec3a2a9431cb69"><div class="ttname"><a href="vec__int128__ppc_8h.html#ae05185c980535dd28aec3a2a9431cb69">vec_popcntq</a></div><div class="ttdeci">static vui128_t vec_popcntq(vui128_t vra)</div><div class="ttdoc">Vector Population Count Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:5386</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a2f19a53d6d28ac9b2aab5b8e1c5b2cbb"><div class="ttname"><a href="vec__int128__ppc_8h.html#a2f19a53d6d28ac9b2aab5b8e1c5b2cbb">vec_muludm</a></div><div class="ttdeci">static vui64_t vec_muludm(vui64_t vra, vui64_t vrb)</div><div class="ttdoc">Vector Multiply Unsigned Doubleword Modulo. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:4500</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_ae320909aca43d55b8be1069f38544ee8"><div class="ttname"><a href="vec__int128__ppc_8h.html#ae320909aca43d55b8be1069f38544ee8">vec_divsq_10e31</a></div><div class="ttdeci">static vi128_t vec_divsq_10e31(vi128_t vra)</div><div class="ttdoc">Vector Divide by const 10e31 Signed Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3415</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_afa2db6d665f837f96c746d88027e9e19"><div class="ttname"><a href="vec__int128__ppc_8h.html#afa2db6d665f837f96c746d88027e9e19">vec_divudq_10e31</a></div><div class="ttdeci">static vui128_t vec_divudq_10e31(vui128_t *qh, vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Divide Unsigned Double Quadword by const 10e31. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3479</div></div>
<div class="ttc" id="vec__int64__ppc_8h_html_acd5bafec6c1c15b0336551e82d1169d4"><div class="ttname"><a href="vec__int64__ppc_8h.html#acd5bafec6c1c15b0336551e82d1169d4">vec_mrgahd</a></div><div class="ttdeci">static vui64_t vec_mrgahd(vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Merge Algebraic High Doublewords. </div><div class="ttdef"><b>Definition:</b> vec_int64_ppc.h:2302</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a84e6361054b52ac4564bcef25b718151"><div class="ttname"><a href="vec__int128__ppc_8h.html#a84e6361054b52ac4564bcef25b718151">vec_vmuleud</a></div><div class="ttdeci">static vui128_t vec_vmuleud(vui64_t a, vui64_t b)</div><div class="ttdoc">Vector Multiply Even Unsigned Doublewords. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:6271</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_ac3f85b6577e5ab0de2b3f68ca45dd33b"><div class="ttname"><a href="vec__int128__ppc_8h.html#ac3f85b6577e5ab0de2b3f68ca45dd33b">vec_cmul100ecuq</a></div><div class="ttdeci">static vui128_t vec_cmul100ecuq(vui128_t *cout, vui128_t a, vui128_t cin)</div><div class="ttdoc">Vector combined Multiply by 100 Extended & write Carry Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:4293</div></div>
<div class="ttc" id="vec__int32__ppc_8h_html_ae30f226bd27241513f0611b50967a080"><div class="ttname"><a href="vec__int32__ppc_8h.html#ae30f226bd27241513f0611b50967a080">vec_vmuleuw</a></div><div class="ttdeci">static vui64_t vec_vmuleuw(vui32_t vra, vui32_t vrb)</div><div class="ttdoc">Vector Multiply Even Unsigned words. </div><div class="ttdef"><b>Definition:</b> vec_int32_ppc.h:1382</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a4777f3b762c3313df0a13aa352c2f189"><div class="ttname"><a href="vec__int128__ppc_8h.html#a4777f3b762c3313df0a13aa352c2f189">vec_rlqi</a></div><div class="ttdeci">static vui128_t vec_rlqi(vui128_t vra, const unsigned int shb)</div><div class="ttdoc">Vector Rotate Left Quadword Immediate. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:5498</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a52b3bfcc5b277628cd80ecd90440f8a5"><div class="ttname"><a href="vec__int128__ppc_8h.html#a52b3bfcc5b277628cd80ecd90440f8a5">vec_rlq</a></div><div class="ttdeci">static vui128_t vec_rlq(vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Rotate Left Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:5474</div></div>
<div class="ttc" id="vec__common__ppc_8h_html_ad739666851dfec6cc520c2ee06fd5d41"><div class="ttname"><a href="vec__common__ppc_8h.html#ad739666851dfec6cc520c2ee06fd5d41">VEC_WE_2</a></div><div class="ttdeci">#define VEC_WE_2</div><div class="ttdoc">Element index for vector splat word 2. </div><div class="ttdef"><b>Definition:</b> vec_common_ppc.h:334</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a2c2c01f3aa165fedba47600f87067768"><div class="ttname"><a href="vec__int128__ppc_8h.html#a2c2c01f3aa165fedba47600f87067768">vec_cmpuq_all_eq</a></div><div class="ttdeci">static int vec_cmpuq_all_eq(vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Compare all Equal Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3124</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a69b25e7f46986d00997fedaeeb7871c2"><div class="ttname"><a href="vec__int128__ppc_8h.html#a69b25e7f46986d00997fedaeeb7871c2">vec_cmpleuq</a></div><div class="ttdeci">static vb128_t vec_cmpleuq(vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Compare Less Than or Equal Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:2779</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a8bc23a0cd3f522c017ec95d5ce93a2f0"><div class="ttname"><a href="vec__int128__ppc_8h.html#a8bc23a0cd3f522c017ec95d5ce93a2f0">vec_cmul100cuq</a></div><div class="ttdeci">static vui128_t vec_cmul100cuq(vui128_t *cout, vui128_t a)</div><div class="ttdoc">Vector combined Multiply by 100 & write Carry Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:4228</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a363fa7103ccd730c47bb34cb9f05e80b"><div class="ttname"><a href="vec__int128__ppc_8h.html#a363fa7103ccd730c47bb34cb9f05e80b">vec_addcq</a></div><div class="ttdeci">static vui128_t vec_addcq(vui128_t *cout, vui128_t a, vui128_t b)</div><div class="ttdoc">Vector Add with carry Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:2354</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a9aaaf0e4c2705be1e0e8e925b09c52de"><div class="ttname"><a href="vec__int128__ppc_8h.html#a9aaaf0e4c2705be1e0e8e925b09c52de">vec_mulluq</a></div><div class="ttdeci">static vui128_t vec_mulluq(vui128_t a, vui128_t b)</div><div class="ttdoc">Vector Multiply Low Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:4705</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a82d83d78ff2330205a8d74741b34a1be"><div class="ttname"><a href="vec__int128__ppc_8h.html#a82d83d78ff2330205a8d74741b34a1be">vec_cmpltsq</a></div><div class="ttdeci">static vb128_t vec_cmpltsq(vi128_t vra, vi128_t vrb)</div><div class="ttdoc">Vector Compare Less Than Signed Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:2806</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_ac93dc5ed8bb3501470cf70c5cb5796a9"><div class="ttname"><a href="vec__int128__ppc_8h.html#ac93dc5ed8bb3501470cf70c5cb5796a9">vec_cmpuq_all_gt</a></div><div class="ttdeci">static int vec_cmpuq_all_gt(vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Compare any Greater Than Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3180</div></div>
<div class="ttc" id="vec__int64__ppc_8h_html_ad8406367635fbd8f1c50a11f6d650a2a"><div class="ttname"><a href="vec__int64__ppc_8h.html#ad8406367635fbd8f1c50a11f6d650a2a">vec_vrld</a></div><div class="ttdeci">static vui64_t vec_vrld(vui64_t vra, vui64_t vrb)</div><div class="ttdoc">Vector Rotate Left Doubleword. </div><div class="ttdef"><b>Definition:</b> vec_int64_ppc.h:3242</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a2a38409db81a0765586023d5874ab6b0"><div class="ttname"><a href="vec__int128__ppc_8h.html#a2a38409db81a0765586023d5874ab6b0">vec_madduq</a></div><div class="ttdeci">static vui128_t vec_madduq(vui128_t *mulu, vui128_t a, vui128_t b, vui128_t c)</div><div class="ttdoc">Vector Multiply-Add Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:5106</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_acef64f9ffe8af5a8f08b6bdd0a9e218f"><div class="ttname"><a href="vec__int128__ppc_8h.html#acef64f9ffe8af5a8f08b6bdd0a9e218f">vec_maxsq</a></div><div class="ttdeci">static vi128_t vec_maxsq(vi128_t vra, vi128_t vrb)</div><div class="ttdoc">Vector Maximum Signed Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3706</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a3675fa1a2334eff913df447904be78ad"><div class="ttname"><a href="vec__int128__ppc_8h.html#a3675fa1a2334eff913df447904be78ad">vec_mul10uq</a></div><div class="ttdeci">static vui128_t vec_mul10uq(vui128_t a)</div><div class="ttdoc">Vector Multiply by 10 Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:4178</div></div>
<div class="ttc" id="vec__common__ppc_8h_html_a0cbf2bc0426544f7d64ce84da322a919"><div class="ttname"><a href="vec__common__ppc_8h.html#a0cbf2bc0426544f7d64ce84da322a919">VEC_WE_1</a></div><div class="ttdeci">#define VEC_WE_1</div><div class="ttdoc">Element index for vector splat word 1. </div><div class="ttdef"><b>Definition:</b> vec_common_ppc.h:332</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a2ccbd77900956c01a51b88e672e593c6"><div class="ttname"><a href="vec__int128__ppc_8h.html#a2ccbd77900956c01a51b88e672e593c6">vec_modudq_10e32</a></div><div class="ttdeci">static vui128_t vec_modudq_10e32(vui128_t vra, vui128_t vrb, vui128_t *ql)</div><div class="ttdoc">Vector Modulo Unsigned Double Quadword by const 10e32. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3895</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_af7587275a406a1e2437ef86c23e2875a"><div class="ttname"><a href="vec__int128__ppc_8h.html#af7587275a406a1e2437ef86c23e2875a">vec_cmpsq_all_ne</a></div><div class="ttdeci">static int vec_cmpsq_all_ne(vi128_t vra, vi128_t vrb)</div><div class="ttdoc">Vector Compare all Not Equal Signed Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3094</div></div>
<div class="ttc" id="vec__common__ppc_8h_html"><div class="ttname"><a href="vec__common__ppc_8h.html">vec_common_ppc.h</a></div><div class="ttdoc">Common definitions and typedef used by the collection of Power Vector Library (pveclib) headers...</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a26f95e02f7b0551e3f2bb7e4b4da040d"><div class="ttname"><a href="vec__int128__ppc_8h.html#a26f95e02f7b0551e3f2bb7e4b4da040d">vec_muleud</a></div><div class="ttdeci">static vui128_t vec_muleud(vui64_t a, vui64_t b)</div><div class="ttdoc">Vector Multiply Even Unsigned Doublewords. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:4410</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_af74036e39e72e0f3c29706d30fbb96d1"><div class="ttname"><a href="vec__int128__ppc_8h.html#af74036e39e72e0f3c29706d30fbb96d1">vec_setb_cyq</a></div><div class="ttdeci">static vb128_t vec_setb_cyq(vui128_t vcy)</div><div class="ttdoc">Vector Set Bool from Quadword Carry. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:5541</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a9e8daafaa42c16823750d7fe61224662"><div class="ttname"><a href="vec__int128__ppc_8h.html#a9e8daafaa42c16823750d7fe61224662">vec_vmadd2eud</a></div><div class="ttdeci">static vui128_t vec_vmadd2eud(vui64_t a, vui64_t b, vui64_t c, vui64_t d)</div><div class="ttdoc">Vector Multiply-Add2 Even Unsigned Doublewords. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:6470</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_abf1707d712cc191915a8f558eaaa1fe7"><div class="ttname"><a href="vec__int128__ppc_8h.html#abf1707d712cc191915a8f558eaaa1fe7">vec_absduq</a></div><div class="ttdeci">static vui128_t vec_absduq(vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Absolute Difference Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:2078</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_aee5c5b2998ef105b4c6f39739748ffa8"><div class="ttname"><a href="vec__int128__ppc_8h.html#aee5c5b2998ef105b4c6f39739748ffa8">vec_muludq</a></div><div class="ttdeci">static vui128_t vec_muludq(vui128_t *mulu, vui128_t a, vui128_t b)</div><div class="ttdoc">Vector Multiply Unsigned Double Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:4884</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a10780cd8a88f18ec564ee6254c179a06"><div class="ttname"><a href="vec__int128__ppc_8h.html#a10780cd8a88f18ec564ee6254c179a06">vec_mulhud</a></div><div class="ttdeci">static vui64_t vec_mulhud(vui64_t vra, vui64_t vrb)</div><div class="ttdoc">Vector Multiply High Unsigned Doubleword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:4443</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a655de600915e449a8681572961939422"><div class="ttname"><a href="vec__int128__ppc_8h.html#a655de600915e449a8681572961939422">vec_avguq</a></div><div class="ttdeci">static vui128_t vec_avguq(vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Average Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:2107</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_adf308aff6d9e25ae55b2c9d998c5de68"><div class="ttname"><a href="vec__int128__ppc_8h.html#adf308aff6d9e25ae55b2c9d998c5de68">vec_cmpeqsq</a></div><div class="ttdeci">static vb128_t vec_cmpeqsq(vi128_t vra, vi128_t vrb)</div><div class="ttdoc">Vector Compare Equal Signed Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:2552</div></div>
<div class="ttc" id="vec__int32__ppc_8h_html_acb5b81dc628ca80e079a86515e391023"><div class="ttname"><a href="vec__int32__ppc_8h.html#acb5b81dc628ca80e079a86515e391023">vec_popcntw</a></div><div class="ttdeci">static vui32_t vec_popcntw(vui32_t vra)</div><div class="ttdoc">Vector Population Count word. </div><div class="ttdef"><b>Definition:</b> vec_int32_ppc.h:1094</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a49d355191fabd04a434723265ccafa20"><div class="ttname"><a href="vec__int128__ppc_8h.html#a49d355191fabd04a434723265ccafa20">vec_srq4</a></div><div class="ttdeci">static vui128_t vec_srq4(vui128_t vra)</div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:6053</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_ad7aaadba249ce46c4c94f78df1020da3"><div class="ttname"><a href="vec__int128__ppc_8h.html#ad7aaadba249ce46c4c94f78df1020da3">vec_addcuq</a></div><div class="ttdeci">static vui128_t vec_addcuq(vui128_t a, vui128_t b)</div><div class="ttdoc">Vector Add & write Carry Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:2134</div></div>
<div class="ttc" id="vec__common__ppc_8h_html_a52a773b6353c69a546bdc2e8686a50ec"><div class="ttname"><a href="vec__common__ppc_8h.html#a52a773b6353c69a546bdc2e8686a50ec">vui64_t</a></div><div class="ttdeci">__vector unsigned long long vui64_t</div><div class="ttdoc">vector of 64-bit unsigned long long elements. </div><div class="ttdef"><b>Definition:</b> vec_common_ppc.h:208</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_ae2cdf052bf633951201589454e50f52e"><div class="ttname"><a href="vec__int128__ppc_8h.html#ae2cdf052bf633951201589454e50f52e">vec_cmpnesq</a></div><div class="ttdeci">static vb128_t vec_cmpnesq(vi128_t vra, vi128_t vrb)</div><div class="ttdoc">Vector Compare Equal Signed Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:2866</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a49fe2c36fca9911ab99a1f8abb53f0ff"><div class="ttname"><a href="vec__int128__ppc_8h.html#a49fe2c36fca9911ab99a1f8abb53f0ff">vec_slq</a></div><div class="ttdeci">static vui128_t vec_slq(vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Shift Left Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:5714</div></div>
<div class="ttc" id="vec__common__ppc_8h_html_a16cdf519bbbf190c311bd27d3e254208"><div class="ttname"><a href="vec__common__ppc_8h.html#a16cdf519bbbf190c311bd27d3e254208">vb128_t</a></div><div class="ttdeci">__vector __bool __int128 vb128_t</div><div class="ttdoc">vector of one 128-bit bool __int128 element. </div><div class="ttdef"><b>Definition:</b> vec_common_ppc.h:240</div></div>
<div class="ttc" id="vec__int64__ppc_8h_html_a560aef2acfdf1db1cf14848ec6cb0c1c"><div class="ttname"><a href="vec__int64__ppc_8h.html#a560aef2acfdf1db1cf14848ec6cb0c1c">vec_cmpequd</a></div><div class="ttdeci">static vb64_t vec_cmpequd(vui64_t a, vui64_t b)</div><div class="ttdoc">Vector Compare Equal Unsigned Doubleword. </div><div class="ttdef"><b>Definition:</b> vec_int64_ppc.h:1043</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a7197cd5c6e946211f2718b5e8464cdc0"><div class="ttname"><a href="vec__int128__ppc_8h.html#a7197cd5c6e946211f2718b5e8464cdc0">vec_cmpequq</a></div><div class="ttdeci">static vb128_t vec_cmpequq(vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Compare Equal Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:2582</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a269401b65405524bb2d971bef595cb0d"><div class="ttname"><a href="vec__int128__ppc_8h.html#a269401b65405524bb2d971bef595cb0d">vec_cmpsq_all_ge</a></div><div class="ttdeci">static int vec_cmpsq_all_ge(vi128_t vra, vi128_t vrb)</div><div class="ttdoc">Vector Compare any Greater Than or Equal Signed Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:2969</div></div>
<div class="ttc" id="vec__common__ppc_8h_html_ae4520a89b9b5a292a3e647a6d5b712ad"><div class="ttname"><a href="vec__common__ppc_8h.html#ae4520a89b9b5a292a3e647a6d5b712ad">CONST_VINT128_W</a></div><div class="ttdeci">#define CONST_VINT128_W(__w0, __w1, __w2, __w3)</div><div class="ttdoc">Arrange word elements of a unsigned int initializer in high->low order. May require an explicit cast...</div><div class="ttdef"><b>Definition:</b> vec_common_ppc.h:304</div></div>
<div class="ttc" id="vec__int64__ppc_8h_html_a42d2b39711c06106097ef869a20420b6"><div class="ttname"><a href="vec__int64__ppc_8h.html#a42d2b39711c06106097ef869a20420b6">vec_swapd</a></div><div class="ttdeci">static vui64_t vec_swapd(vui64_t vra)</div><div class="ttdoc">Vector doubleword swap. Exchange the high and low doubleword elements of a vector. </div><div class="ttdef"><b>Definition:</b> vec_int64_ppc.h:3090</div></div>
<div class="ttc" id="vec__common__ppc_8h_html_adf5717f56a3dac6980206dbd37614ca2"><div class="ttname"><a href="vec__common__ppc_8h.html#adf5717f56a3dac6980206dbd37614ca2">vi32_t</a></div><div class="ttdeci">__vector int vi32_t</div><div class="ttdoc">vector of 32-bit signed int elements. </div><div class="ttdef"><b>Definition:</b> vec_common_ppc.h:215</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a95d3546b2fd6840b46b031c15b4f60d3"><div class="ttname"><a href="vec__int128__ppc_8h.html#a95d3546b2fd6840b46b031c15b4f60d3">vec_subcuq</a></div><div class="ttdeci">static vui128_t vec_subcuq(vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Subtract and Write Carry Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:6101</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_aaa33904ec4de42f54cceab34adb303c5"><div class="ttname"><a href="vec__int128__ppc_8h.html#aaa33904ec4de42f54cceab34adb303c5">vec_sldqi</a></div><div class="ttdeci">static vui128_t vec_sldqi(vui128_t vrw, vui128_t vrx, const unsigned int shb)</div><div class="ttdoc">Vector Shift Left Double Quadword Immediate. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:5676</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a539de2a4426a84102471306acc571ce8"><div class="ttname"><a href="vec__int128__ppc_8h.html#a539de2a4426a84102471306acc571ce8">vec_adduqm</a></div><div class="ttdeci">static vui128_t vec_adduqm(vui128_t a, vui128_t b)</div><div class="ttdoc">Vector Add Unsigned Quadword Modulo. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:2305</div></div>
<div class="ttc" id="vec__common__ppc_8h_html_a3975205947785b1745a791ef12256e9a"><div class="ttname"><a href="vec__common__ppc_8h.html#a3975205947785b1745a791ef12256e9a">VEC_BYTE_H</a></div><div class="ttdeci">#define VEC_BYTE_H</div><div class="ttdoc">Element index for highest order byte. </div><div class="ttdef"><b>Definition:</b> vec_common_ppc.h:350</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_af21d01bb19f0ea8605d8c37035837802"><div class="ttname"><a href="vec__int128__ppc_8h.html#af21d01bb19f0ea8605d8c37035837802">vec_setb_sq</a></div><div class="ttdeci">static vb128_t vec_setb_sq(vi128_t vra)</div><div class="ttdoc">Vector Set Bool from Signed Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:5614</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_aa40644aaa8146d00f84fce58dd4fd24e"><div class="ttname"><a href="vec__int128__ppc_8h.html#aa40644aaa8146d00f84fce58dd4fd24e">vec_revbq</a></div><div class="ttdeci">static vui128_t vec_revbq(vui128_t vra)</div><div class="ttdoc">Vector Byte Reverse Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:5431</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_abd88782f327214c07d42519b7d4c69ce"><div class="ttname"><a href="vec__int128__ppc_8h.html#abd88782f327214c07d42519b7d4c69ce">vec_cmpgeuq</a></div><div class="ttdeci">static vb128_t vec_cmpgeuq(vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Compare Greater Than or Equal Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:2657</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a1d183ebd232e5826be109cdaa421aeed"><div class="ttname"><a href="vec__int128__ppc_8h.html#a1d183ebd232e5826be109cdaa421aeed">vec_msumudm</a></div><div class="ttdeci">static vui128_t vec_msumudm(vui64_t a, vui64_t b, vui128_t c)</div><div class="ttdoc">Vector Multiply-Sum Unsigned Doubleword Modulo. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:4368</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a9964ce224b90a0986122f79f6455cba5"><div class="ttname"><a href="vec__int128__ppc_8h.html#a9964ce224b90a0986122f79f6455cba5">vec_slq5</a></div><div class="ttdeci">static vui128_t vec_slq5(vui128_t vra)</div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:6031</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_ac7e92209124903c3e8c535263246ff37"><div class="ttname"><a href="vec__int128__ppc_8h.html#ac7e92209124903c3e8c535263246ff37">vec_cmpgesq</a></div><div class="ttdeci">static vb128_t vec_cmpgesq(vi128_t vra, vi128_t vrb)</div><div class="ttdoc">Vector Compare Greater Than or Equal Signed Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:2622</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a5f250dfab2a4aee0fd247a1d0217237b"><div class="ttname"><a href="vec__int128__ppc_8h.html#a5f250dfab2a4aee0fd247a1d0217237b">vec_cmul10ecuq</a></div><div class="ttdeci">static vui128_t vec_cmul10ecuq(vui128_t *cout, vui128_t a, vui128_t cin)</div><div class="ttdoc">Vector combined Multiply by 10 Extended & write Carry Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3289</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_af66cdabc7f2bc00f79579ce90fd483e0"><div class="ttname"><a href="vec__int128__ppc_8h.html#af66cdabc7f2bc00f79579ce90fd483e0">vec_vmadd2oud</a></div><div class="ttdeci">static vui128_t vec_vmadd2oud(vui64_t a, vui64_t b, vui64_t c, vui64_t d)</div><div class="ttdoc">Vector Multiply-Add2 Odd Unsigned Doublewords. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:6720</div></div>
<div class="ttc" id="vec__int64__ppc_8h_html_a6058f691cf57976e30f0294a183d2715"><div class="ttname"><a href="vec__int64__ppc_8h.html#a6058f691cf57976e30f0294a183d2715">vec_sradi</a></div><div class="ttdeci">static vi64_t vec_sradi(vi64_t vra, const unsigned int shb)</div><div class="ttdoc">Vector Shift Right Algebraic Doubleword Immediate. </div><div class="ttdef"><b>Definition:</b> vec_int64_ppc.h:2993</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a2245626e7b90621b33ba79b763a4215e"><div class="ttname"><a href="vec__int128__ppc_8h.html#a2245626e7b90621b33ba79b763a4215e">vec_mul10euq</a></div><div class="ttdeci">static vui128_t vec_mul10euq(vui128_t a, vui128_t cin)</div><div class="ttdoc">Vector Multiply by 10 Extended Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:4125</div></div>
<div class="ttc" id="vec__common__ppc_8h_html_a2ff4a776536870e01b7c9e454586544b"><div class="ttname"><a href="vec__common__ppc_8h.html#a2ff4a776536870e01b7c9e454586544b">vui32_t</a></div><div class="ttdeci">__vector unsigned int vui32_t</div><div class="ttdoc">vector of 32-bit unsigned int elements. </div><div class="ttdef"><b>Definition:</b> vec_common_ppc.h:206</div></div>
<div class="ttc" id="vec__common__ppc_8h_html_aaf7a8e92d8ba681dac3d2ec3259c0820"><div class="ttname"><a href="vec__common__ppc_8h.html#aaf7a8e92d8ba681dac3d2ec3259c0820">vui128_t</a></div><div class="ttdeci">__vector unsigned __int128 vui128_t</div><div class="ttdoc">vector of one 128-bit unsigned __int128 element. </div><div class="ttdef"><b>Definition:</b> vec_common_ppc.h:237</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a2e40f9bf5df59b725cbfb6738c765202"><div class="ttname"><a href="vec__int128__ppc_8h.html#a2e40f9bf5df59b725cbfb6738c765202">vec_subeuqm</a></div><div class="ttdeci">static vui128_t vec_subeuqm(vui128_t vra, vui128_t vrb, vui128_t vrc)</div><div class="ttdoc">Vector Subtract Extended Unsigned Quadword Modulo. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:6183</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_af4b3b91f7e80522d8a8c0c171e077b99"><div class="ttname"><a href="vec__int128__ppc_8h.html#af4b3b91f7e80522d8a8c0c171e077b99">vec_moduq_10e31</a></div><div class="ttdeci">static vui128_t vec_moduq_10e31(vui128_t vra, vui128_t q)</div><div class="ttdoc">Vector Modulo by const 10e31 Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3940</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_ad6be9c8f02e43c39a659d6bbc9c3a2d2"><div class="ttname"><a href="vec__int128__ppc_8h.html#ad6be9c8f02e43c39a659d6bbc9c3a2d2">vec_mulhuq</a></div><div class="ttdeci">static vui128_t vec_mulhuq(vui128_t a, vui128_t b)</div><div class="ttdoc">Vector Multiply High Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:4537</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a9a6a39212f8a8b9ebf20e0117e1e1e88"><div class="ttname"><a href="vec__int128__ppc_8h.html#a9a6a39212f8a8b9ebf20e0117e1e1e88">vec_divuq_10e31</a></div><div class="ttdeci">static vui128_t vec_divuq_10e31(vui128_t vra)</div><div class="ttdoc">Vector Divide by const 10e31 Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3613</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a391cc9e4b1221618840767c7487d3032"><div class="ttname"><a href="vec__int128__ppc_8h.html#a391cc9e4b1221618840767c7487d3032">vec_cmpsq_all_eq</a></div><div class="ttdeci">static int vec_cmpsq_all_eq(vi128_t vra, vi128_t vrb)</div><div class="ttdoc">Vector Compare all Equal Signed Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:2940</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_aab5db88e4608d4a7408df9042adce86c"><div class="ttname"><a href="vec__int128__ppc_8h.html#aab5db88e4608d4a7408df9042adce86c">vec_modsq_10e31</a></div><div class="ttdeci">static vi128_t vec_modsq_10e31(vi128_t vra, vi128_t q)</div><div class="ttdoc">Vector Modulo by const 10e31 Signed Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3800</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a7ca2a6427ecb9458858b5caaac8c4dca"><div class="ttname"><a href="vec__int128__ppc_8h.html#a7ca2a6427ecb9458858b5caaac8c4dca">vec_mul10ecuq</a></div><div class="ttdeci">static vui128_t vec_mul10ecuq(vui128_t a, vui128_t cin)</div><div class="ttdoc">Vector Multiply by 10 Extended & write Carry Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:4063</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_aa989582cbfaa7984f78a937225e92f4a"><div class="ttname"><a href="vec__int128__ppc_8h.html#aa989582cbfaa7984f78a937225e92f4a">vec_muloud</a></div><div class="ttdeci">static vui128_t vec_muloud(vui64_t a, vui64_t b)</div><div class="ttdoc">Vector Multiply Odd Unsigned Doublewords. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:4469</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a070fe972995f3954362835f5b72e5ff6"><div class="ttname"><a href="vec__int128__ppc_8h.html#a070fe972995f3954362835f5b72e5ff6">vec_slqi</a></div><div class="ttdeci">static vui128_t vec_slqi(vui128_t vra, const unsigned int shb)</div><div class="ttdoc">Vector Shift Left Quadword Immediate. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:5745</div></div>
<div class="ttc" id="vec__common__ppc_8h_html_afb47075b07673afbf78f8c60298f3712"><div class="ttname"><a href="vec__common__ppc_8h.html#afb47075b07673afbf78f8c60298f3712">vui16_t</a></div><div class="ttdeci">__vector unsigned short vui16_t</div><div class="ttdoc">vector of 16-bit unsigned short elements. </div><div class="ttdef"><b>Definition:</b> vec_common_ppc.h:204</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a9e27910c148d525e17d099688aec9ba1"><div class="ttname"><a href="vec__int128__ppc_8h.html#a9e27910c148d525e17d099688aec9ba1">vec_addeq</a></div><div class="ttdeci">static vui128_t vec_addeq(vui128_t *cout, vui128_t a, vui128_t b, vui128_t ci)</div><div class="ttdoc">Vector Add Extend with carry Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:2415</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a0edd172a5656b842d6586c5078284942"><div class="ttname"><a href="vec__int128__ppc_8h.html#a0edd172a5656b842d6586c5078284942">vec_srq</a></div><div class="ttdeci">static vui128_t vec_srq(vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Shift Right Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:5916</div></div>
<div class="ttc" id="vec__common__ppc_8h_html_aed458e4755a6589049b936cf9f24f6f8"><div class="ttname"><a href="vec__common__ppc_8h.html#aed458e4755a6589049b936cf9f24f6f8">vui8_t</a></div><div class="ttdeci">__vector unsigned char vui8_t</div><div class="ttdoc">vector of 8-bit unsigned char elements. </div><div class="ttdef"><b>Definition:</b> vec_common_ppc.h:202</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a4f6dca233bb7e4edc2adb751d478572e"><div class="ttname"><a href="vec__int128__ppc_8h.html#a4f6dca233bb7e4edc2adb751d478572e">vec_slq4</a></div><div class="ttdeci">static vui128_t vec_slq4(vui128_t vra)</div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:6009</div></div>
<div class="ttc" id="vec__int128__ppc_8h_html_a31ddb6149475e80f4a1d38277317d980"><div class="ttname"><a href="vec__int128__ppc_8h.html#a31ddb6149475e80f4a1d38277317d980">vec_cmpuq_all_lt</a></div><div class="ttdeci">static int vec_cmpuq_all_lt(vui128_t vra, vui128_t vrb)</div><div class="ttdoc">Vector Compare any Less Than Unsigned Quadword. </div><div class="ttdef"><b>Definition:</b> vec_int128_ppc.h:3234</div></div>
<div class="ttc" id="vec__int32__ppc_8h_html_afbe65a777f2b75022ae584f76d0a2777"><div class="ttname"><a href="vec__int32__ppc_8h.html#afbe65a777f2b75022ae584f76d0a2777">vec_clzw</a></div><div class="ttdeci">static vui32_t vec_clzw(vui32_t vra)</div><div class="ttdoc">Vector Count Leading Zeros word. </div><div class="ttdef"><b>Definition:</b> vec_int32_ppc.h:465</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Jul 17 2020 17:13:18 for POWER Vector Library Manual by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>