Fix invalid shufflevector operands
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 2 Aug 2015 15:28:10 +0000 (15:28 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 2 Aug 2015 15:28:10 +0000 (15:28 +0000)
commit4034b9f0b932c7e8c47a18fe1ef7d43e273e2913
tree1950dc3e2b31fe83f60f6b4ffbf718623fb013c5
parent87368fdd3064ac1ec5bedc8461b470af374e0534
Fix invalid shufflevector operands

This patch fixes bug 23800 ( https://llvm.org/bugs/show_bug.cgi?id=23800#c2 ). There existed a case where the index operand from extractelement was directly used to create a shufflevector mask. Since the index can be of any integral type but the mask must only contain 32 bit integers a 64 bit index operand led to an assertion error later on.

Committed on behalf of mpflanzer (Moritz Pflanzer)

Differential Revision: http://reviews.llvm.org/D10838

llvm-svn: 243851
clang/lib/CodeGen/CGExprScalar.cpp
clang/test/CodeGenOpenCL/vector_shufflevector_valid.cl [new file with mode: 0644]