1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/test/Verifier/bitcast-vector-pointer-pos.ll
Serguei Katkov c4786d1529 [IR Verifier] Do not allow bitcast of pointer to vector of pointers and vice versa.
LangRef for BitCast requires that
"The bit sizes of value and the destination type, ty2, must be identical".
Currently verifier allows BitCast of pointer to vector of pointers so that
the sizes are different.

This change fixes that.

Reviewers: arsenm
Reviewed By: arsenm
Subscribers: llvm-commits, wdng
Differential Revision: https://reviews.llvm.org/D50886

llvm-svn: 340249
2018-08-21 04:27:07 +00:00

15 lines
476 B
LLVM

; RUN: llvm-as -disable-output %s
target datalayout = "e-p:32:32:32-p1:16:16:16-p2:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n8:16:32"
define <1 x i32*> @vector_legal_bitcast_pointer_to_vector_of_pointers(i64* %a) {
%b = bitcast i64* %a to <1 x i32*>
ret <1 x i32*> %b
}
define i64* @vector_legal_bitcast_vector_of_pointers_to_pointer(<1 x i32*> %a) {
%b = bitcast <1 x i32*> %a to i64*
ret i64* %b
}