28 lines · plain
1; REQUIRES: asserts2; RUN: opt < %s -disable-output -passes=rewrite-statepoints-for-gc3 4; We shouldn't crash when we encounter a vector phi with more than one input5; 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 %bb411 i32 2, label %bb412 ]13 14bb2: ; preds = %bb15 br i1 %arg3, label %bb8, label %bb416 17bb4: ; preds = %bb2, %bb, %bb18 %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 121 ret void22 23bb8: ; preds = %bb224 ret void25}26 27declare void @bar()28