<html>
    <head>
      <base href="http://llvm.org/bugs/" />
    </head>
    <body><span class="vcard"><a class="email" href="mailto:chandlerc@gmail.com" title="Chandler Carruth <chandlerc@gmail.com>"> <span class="fn">Chandler Carruth</span></a>
</span> changed
              <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Cannot select v2f64 = vector_shuffle"
   href="http://llvm.org/bugs/show_bug.cgi?id=20393">bug 20393</a>
        <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">Status</td>
           <td>NEW
           </td>
           <td>RESOLVED
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">Resolution</td>
           <td>---
           </td>
           <td>FIXED
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Cannot select v2f64 = vector_shuffle"
   href="http://llvm.org/bugs/show_bug.cgi?id=20393#c1">Comment # 1</a>
              on <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Cannot select v2f64 = vector_shuffle"
   href="http://llvm.org/bugs/show_bug.cgi?id=20393">bug 20393</a>
              from <span class="vcard"><a class="email" href="mailto:chandlerc@gmail.com" title="Chandler Carruth <chandlerc@gmail.com>"> <span class="fn">Chandler Carruth</span></a>
</span></b>
        <pre>(In reply to <a href="show_bug.cgi?id=20393#c0">comment #0</a>)
<span class="quote">> $ clang -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -O2 -std=gnu++11 -x
> c++ x.ii

> Testcase:

> typedef double __m128d __attribute__((__vector_size__(16)));
> __m128d ploadu();

> __m128d ploadu(__m128d *ptr) {
>   __m128d a;
>   struct B {
>     __m128d __v;
>   } __attribute__((packed));
>   a = ((B *)ptr)->__v;
>   return a;
> }

> void use(int);

> void test(__m128d *ptr) {
>   __m128d C_c = ploadu(ptr);
>   use(C_c[1]);
> }

> Output:

> fatal error: error in backend: Cannot select: 0x2c1aed8: v2f64 =
> vector_shuffle 0x2c1afe0, 0x2c1a9b0<1,1> [ORD=3] [ID=11]
>   0x2c1afe0: v2f64,ch = load 0x2bdb080, 0x2c1b0e8,
> 0x2c1acc8<LD16[%ptr](align=1)(tbaa=<badref>)> [ORD=2] [ID=10]
>     0x2c1b0e8: i64,ch = CopyFromReg 0x2bdb080, 0x2c1b1f0 [ORD=1] [ID=9]
>       0x2c1b1f0: i64 = Register %vreg0 [ID=1]
>     0x2c1acc8: i64 = undef [ID=2]
>   0x2c1a9b0: v2f64 = undef [ID=8]
> In function: _Z4testPDv2_d</span >

No idea when, but this is fixed in ToT.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>