<html>#2530: Thorn Vectors fails to compile using gcc 8.X on POWER9
<table style='border-spacing: 1ex 0pt; '>
<tr><td style='text-align:right'> Reporter:</td><td>Roland Haas</td></tr>
<tr><td style='text-align:right'>   Status:</td><td>new</td></tr>
<tr><td style='text-align:right'>Milestone:</td><td></td></tr>
<tr><td style='text-align:right'>  Version:</td><td>development version</td></tr>
<tr><td style='text-align:right'>     Type:</td><td>bug</td></tr>
<tr><td style='text-align:right'> Priority:</td><td>minor</td></tr>
<tr><td style='text-align:right'>Component:</td><td>EinsteinToolkit thorn</td></tr>
</table>

<p>Comment (by Roland Haas):</p>
<p>It turns out it wants a cast to <code>vector double *</code> (see <a data-is-external-link="true" href="http://openpowerfoundation.org/wp-content/uploads/resources/Intrinsics-Reference/Intrinsics-Reference-20200211.pdf" rel="nofollow">http://openpowerfoundation.org/wp-content/uploads/resources/Intrinsics-Reference/Intrinsics-Reference-20200211.pdf</a> which does list both <code>vec_st(vector double x, long long int, double * )</code> and  <code>vec_st(vector double x, long long int, vector double * )</code> and apparently gcc 8 only supports the latter one). So this:</p>
<div class="codehilite"><pre><span></span><span class="cp">#if 0</span><span class="c"></span>
<span class="c">g++ -c -g3 -mcpu=power9 -mvsx -O1 -Wall $@ $0</span>
<span class="c">exit</span>
<span class="cp">#endif</span>

<span class="cp">#include</span> <span class="cpf">&lt;altivec.h&gt;</span><span class="cp"></span>

<span class="kt">void</span> <span class="nf">foo</span><span class="p">(</span><span class="n">vector</span> <span class="kt">double</span> <span class="n">x</span><span class="p">,</span> <span class="kt">double</span> <span class="o">&amp;</span><span class="n">p</span><span class="p">,</span> <span class="kt">double</span> <span class="o">&amp;</span><span class="n">q</span><span class="p">,</span> <span class="kt">double</span> <span class="o">&amp;</span><span class="n">r</span><span class="p">,</span> <span class="kt">double</span> <span class="o">&amp;</span><span class="n">s</span><span class="p">)</span>
<span class="p">{</span>
  <span class="k">const</span> <span class="kt">long</span> <span class="kt">long</span> <span class="n">null</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
  <span class="o">*</span><span class="p">(</span><span class="n">vector</span> <span class="kt">double</span><span class="o">*</span><span class="p">)</span><span class="o">&amp;</span><span class="n">p</span> <span class="o">=</span> <span class="n">x</span><span class="p">;</span>
  <span class="n">
<p>--<br/>
Ticket URL: <a href='https://bitbucket.org/einsteintoolkit/tickets/issues/2530/thorn-vectors-fails-to-compile-using-gcc'>https://bitbucket.org/einsteintoolkit/tickets/issues/2530/thorn-vectors-fails-to-compile-using-gcc</a></p>
</html>