llvm/test/Assembler/invalid_cast3.ll
Matt Arsenault 79e3fb53d6 Bug 18228 - Fix accepting bitcasts between vectors of pointers with a
different number of elements.

Bitcasts were passing with vectors of pointers with different number of
elements since the number of elements was checking
SrcTy->getVectorNumElements() == SrcTy->getVectorNumElements() which
isn't helpful. The addrspacecast was also wrong, but that case at least
is caught by the verifier. Refactor bitcast and addrspacecast handling
in castIsValid to be more readable and fix this problem.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199821 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-22 19:21:33 +00:00

8 lines
264 B
LLVM

; RUN: not llvm-as < %s 2>&1 | FileCheck %s
; CHECK: invalid cast opcode for cast from '<4 x i32*>' to '<2 x i32*>'
define <2 x i32*> @illegal_vector_pointer_bitcast_num_elements(<4 x i32*> %c) {
%bc = bitcast <4 x i32*> %c to <2 x i32*>
ret <2 x i32*> %bc
}