forked from OSchip/llvm-project
55 lines
1.2 KiB
LLVM
55 lines
1.2 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
|
; RUN: opt -S -passes=jump-threading -aa-pipeline basic-aa < %s | FileCheck %s
|
|
|
|
define void @foo(ptr %arg1, ptr %arg2) {
|
|
; CHECK-LABEL: @foo(
|
|
; CHECK-NEXT: bb:
|
|
; CHECK-NEXT: br label [[BB1:%.*]]
|
|
; CHECK: bb1:
|
|
; CHECK-NEXT: [[TMP:%.*]] = phi i1 [ false, [[BB24:%.*]] ], [ true, [[BB:%.*]] ]
|
|
; CHECK-NEXT: br i1 [[TMP]], label [[BB8:%.*]], label [[BB24]]
|
|
; CHECK: bb8:
|
|
; CHECK-NEXT: ret void
|
|
; CHECK: bb24:
|
|
; CHECK-NEXT: br label [[BB1]]
|
|
;
|
|
bb:
|
|
br label %bb1
|
|
|
|
bb1:
|
|
%tmp = phi i1 [ 0, %bb24 ], [ 1, %bb ]
|
|
br i1 %tmp, label %bb9, label %bb24
|
|
|
|
|
|
bb9:
|
|
br i1 %tmp, label %bb8, label %bb20
|
|
|
|
bb8:
|
|
ret void
|
|
|
|
bb13:
|
|
br label %bb14
|
|
|
|
bb14:
|
|
%tmp15 = phi ptr [ %tmp21, %bb20 ], [ %arg2, %bb13 ]
|
|
%tmp16 = phi ptr [ %tmp22, %bb20 ], [ %arg1, %bb13 ]
|
|
store atomic i32 0, ptr %tmp15 unordered, align 4
|
|
%tmp17 = load atomic ptr, ptr %tmp16 unordered, align 8
|
|
%tmp18 = icmp eq ptr %tmp17, null
|
|
br i1 %tmp18, label %bb25, label %bb19
|
|
|
|
bb19:
|
|
ret void
|
|
|
|
bb20:
|
|
%tmp21 = phi ptr [ %arg2, %bb9 ]
|
|
%tmp22 = phi ptr [ %arg1, %bb9 ]
|
|
br label %bb14
|
|
|
|
bb24:
|
|
br label %bb1
|
|
|
|
bb25:
|
|
ret void
|
|
}
|