[LLVMbugs] [Bug 20393] Cannot select v2f64 = vector_shuffle

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Jul 21 18:57:39 PDT 2014


http://llvm.org/bugs/show_bug.cgi?id=20393

Chandler Carruth <chandlerc at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #1 from Chandler Carruth <chandlerc at gmail.com> ---
(In reply to comment #0)
> $ 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

No idea when, but this is fixed in ToT.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20140722/011120d4/attachment.html>


More information about the llvm-bugs mailing list