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

            Bug ID: 21352
           Summary: Vector lowering: Assertion `isReg() && "This is not a
                    register operand!"' failed.
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: X86
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected]
    Classification: Unclassified

Created attachment 13241
  --> http://llvm.org/bugs/attachment.cgi?id=13241&action=edit
Traceback

Bisected this to r219046, enabling new vector lowering by default.

This is about as reduced as I can make it, sorry...
source file and traceback attached.

$ clang -cc1 -O2 -std=c++11 -emit-obj bug8.cpp
...
MCInst.h:64: unsigned int llvm::MCOperand::getReg() const: 
Assertion `isReg() && "This is not a register operand!"' failed.
....
Stack dump:
0.    Program arguments:
/home/probinson/projects/llvm-org-tip/obj/Debug+Asserts/bin/clang -cc1 -O2
-std=c++11 -emit-obj bug8.cpp 
1.    <eof> parser at end of file
2.    Code generation
3.    Running pass 'Function Pass Manager' on module 'bug8.cpp'.
4.    Running pass 'X86 Assembly / Object Emitter' on function '@_Z2llv'

$ cat bug8.cpp
typedef int int16 __attribute__((__vector_size__(16)));
typedef char char16 __attribute__((__vector_size__(16)));
struct AA {
  void bb();
  int cc();
  int16 dd;
};
void AA::bb() {
  dd = {};
}
int16 hh;
void ff() {
  int16 jj = __extension__({
    char16 kk =
        (__builtin_ia32_psradi128(__extension__({
                                    int16 kk = {};
                                    kk;
                                  }),
                                  0));
    __builtin_shufflevector((char16) {}, kk, 12, 13, 14, 15, 16, 17, 18, 19,
20,
                            21, 22, 23, 24, 25, 26, 27);
  });
  hh = jj;
}
void ll() {
  AA nn;
  ff();
  nn.bb();
  nn.cc();
}

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to