1; REQUIRES: asserts 2; RUN: opt < %s -disable-output -passes=rewrite-statepoints-for-gc 3 4; We shouldn't crash when we encounter a vector phi with more than one input 5; from the same predecessor. 6define void @foo(<2 x ptr addrspace(1)> %arg1, i32 %arg2, i1 %arg3, <2 x ptr addrspace(1)> %arg4) gc "statepoint-example" personality ptr null { 7bb: 8 %tmp = bitcast <2 x ptr addrspace(1)> %arg1 to <2 x ptr addrspace(1)> 9 switch i32 %arg2, label %bb2 [ 10 i32 1, label %bb4 11 i32 2, label %bb4 12 ] 13 14bb2: ; preds = %bb 15 br i1 %arg3, label %bb8, label %bb4 16 17bb4: ; preds = %bb2, %bb, %bb 18 %tmp5 = phi <2 x ptr addrspace(1)> [ %tmp, %bb ], [ %tmp, %bb ], [ %arg4, %bb2 ] 19 call void @bar() 20 %tmp6 = extractelement <2 x ptr addrspace(1)> %tmp5, i32 1 21 ret void 22 23bb8: ; preds = %bb2 24 ret void 25} 26 27declare void @bar() 28