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

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Jul 21 17:51:10 PDT 2014


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

            Bug ID: 20393
           Summary: Cannot select v2f64 = vector_shuffle
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: X86
          Assignee: unassignedbugs at nondot.org
          Reporter: nlewycky at google.com
                CC: chandlerc at gmail.com, llvmbugs at cs.uiuc.edu
    Classification: Unclassified

$ 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

-- 
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/c65f37f2/attachment.html>


More information about the llvm-bugs mailing list