1; REQUIRES: asserts 2; RUN: opt -jump-threading -aa-pipeline basic-aa -S -disable-output %s 3; RUN: opt -passes=jump-threading -aa-pipeline basic-aa -S -disable-output %s 4 5define void @foo(i8** %arg1, i32* %arg2) { 6bb: 7 br label %bb1 8 9bb1: 10 %tmp = phi i1 [ 0, %bb24 ], [ 1, %bb ] 11 br i1 %tmp, label %bb9, label %bb24 12 13 14bb9: 15 br i1 %tmp, label %bb8, label %bb20 16 17bb8: 18 ret void 19 20bb13: 21 br label %bb14 22 23bb14: 24 %tmp15 = phi i32* [ %tmp21, %bb20 ], [ %arg2, %bb13 ] 25 %tmp16 = phi i8** [ %tmp22, %bb20 ], [ %arg1, %bb13 ] 26 store atomic i32 0, i32* %tmp15 unordered, align 4 27 %tmp17 = load atomic i8*, i8** %tmp16 unordered, align 8 28 %tmp18 = icmp eq i8* %tmp17, null 29 br i1 %tmp18, label %bb25, label %bb19 30 31bb19: 32 ret void 33 34bb20: 35 %tmp21 = phi i32* [ %arg2, %bb9 ] 36 %tmp22 = phi i8** [ %arg1, %bb9 ] 37 br label %bb14 38 39bb24: 40 br label %bb1 41 42bb25: 43 ret void 44} 45