summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2014-01-22 19:21:33 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2014-01-22 19:21:33 +0000
commitfc3c91d0cbd7be7346834e47cf4a00d178cd114b (patch)
treee98bdff7343b6ebaecc70cf75ecbfc7e4c467719 /llvm/test
parentdad963039874d88f0adc6889b64283fe5d1c94c6 (diff)
downloadbcm5719-llvm-fc3c91d0cbd7be7346834e47cf4a00d178cd114b.tar.gz
bcm5719-llvm-fc3c91d0cbd7be7346834e47cf4a00d178cd114b.zip
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. llvm-svn: 199821
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/Assembler/invalid_cast3.ll7
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/test/Assembler/invalid_cast3.ll b/llvm/test/Assembler/invalid_cast3.ll
new file mode 100644
index 00000000000..cc956cee59a
--- /dev/null
+++ b/llvm/test/Assembler/invalid_cast3.ll
@@ -0,0 +1,7 @@
+; 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
+}
OpenPOWER on IntegriCloud