[LLVMbugs] [Bug 23800] New: Invalid shufflevector operands

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Tue Jun 9 11:06:50 PDT 2015


https://llvm.org/bugs/show_bug.cgi?id=23800

            Bug ID: 23800
           Summary: Invalid shufflevector operands
           Product: clang
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: -New Bugs
          Assignee: unassignedclangbugs at nondot.org
          Reporter: moritz.pflanzer14 at imperial.ac.uk
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Created attachment 14452
  --> https://llvm.org/bugs/attachment.cgi?id=14452&action=edit
Test-case with produces the wrong code

The following (OpenCL) code results in undef operands of a shufflevector LLVM
IR instruction when compiled with clang.

$ clang -S -emit-llvm -O0 -o - input.c

Clang and LLVM have been built from trunk. The bug does not occur with "Apple
LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)".

Test-case:

typedef unsigned int uint16 __attribute((ext_vector_type(16)));
typedef unsigned int uint8 __attribute((ext_vector_type(8)));

void test1(void) {
    (uint16)(((uint16)0).s0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
}

Part of LLVM IR:

%5 = shufflevector <16 x i32> %3, <16 x i32> undef, <16 x i64> <i64 0, i64
undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64
undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64
undef>

-- 
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/20150609/8eb349e9/attachment.html>


More information about the llvm-bugs mailing list