1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2; RUN: opt -S -passes=jump-threading -aa-pipeline basic-aa < %s | FileCheck %s 3 4define void @foo(ptr %arg1, ptr %arg2) { 5; CHECK-LABEL: @foo( 6; CHECK-NEXT: bb: 7; CHECK-NEXT: br label [[BB1:%.*]] 8; CHECK: bb1: 9; CHECK-NEXT: [[TMP:%.*]] = phi i1 [ false, [[BB24:%.*]] ], [ true, [[BB:%.*]] ] 10; CHECK-NEXT: br i1 [[TMP]], label [[BB8:%.*]], label [[BB24]] 11; CHECK: bb8: 12; CHECK-NEXT: ret void 13; CHECK: bb24: 14; CHECK-NEXT: br label [[BB1]] 15; 16bb: 17 br label %bb1 18 19bb1: 20 %tmp = phi i1 [ 0, %bb24 ], [ 1, %bb ] 21 br i1 %tmp, label %bb9, label %bb24 22 23 24bb9: 25 br i1 %tmp, label %bb8, label %bb20 26 27bb8: 28 ret void 29 30bb13: 31 br label %bb14 32 33bb14: 34 %tmp15 = phi ptr [ %tmp21, %bb20 ], [ %arg2, %bb13 ] 35 %tmp16 = phi ptr [ %tmp22, %bb20 ], [ %arg1, %bb13 ] 36 store atomic i32 0, ptr %tmp15 unordered, align 4 37 %tmp17 = load atomic ptr, ptr %tmp16 unordered, align 8 38 %tmp18 = icmp eq ptr %tmp17, null 39 br i1 %tmp18, label %bb25, label %bb19 40 41bb19: 42 ret void 43 44bb20: 45 %tmp21 = phi ptr [ %arg2, %bb9 ] 46 %tmp22 = phi ptr [ %arg1, %bb9 ] 47 br label %bb14 48 49bb24: 50 br label %bb1 51 52bb25: 53 ret void 54} 55