17510f32fSAmara Emerson; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 3 29d353878SMomchil Velikov; RUN: llc < %s -mtriple=aarch64 -aarch64-enable-sink-fold=true -global-isel | FileCheck %s 37510f32fSAmara Emerson 47510f32fSAmara Emersontarget datalayout = "e-m:o-i64:64-i128:128-n32:64-S128" 57510f32fSAmara Emersontarget triple = "arm64-apple-macosx13.5.0" 67510f32fSAmara Emerson 77510f32fSAmara Emerson; Check we don't crash here with a use-after-free. 87510f32fSAmara Emerson 97510f32fSAmara Emersondefine i32 @nsis_BZ2_bzDecompress(ptr %pos.i, i1 %cmp661.not3117.i, i1 %exitcond.not.i) { 107510f32fSAmara Emerson; CHECK-LABEL: nsis_BZ2_bzDecompress: 117510f32fSAmara Emerson; CHECK: // %bb.0: // %entry 12*4e0bd3faSPengcheng Wang; CHECK-NEXT: mov x8, xzr 137510f32fSAmara Emerson; CHECK-NEXT: b .LBB0_2 147510f32fSAmara Emerson; CHECK-NEXT: .LBB0_1: // %while.end671.i 157510f32fSAmara Emerson; CHECK-NEXT: // in Loop: Header=BB0_2 Depth=1 16*4e0bd3faSPengcheng Wang; CHECK-NEXT: strb w9, [x0] 177510f32fSAmara Emerson; CHECK-NEXT: tbnz w2, #0, .LBB0_4 187510f32fSAmara Emerson; CHECK-NEXT: .LBB0_2: // %for.body653.i 197510f32fSAmara Emerson; CHECK-NEXT: // =>This Inner Loop Header: Depth=1 20*4e0bd3faSPengcheng Wang; CHECK-NEXT: ldrb w9, [x0] 217510f32fSAmara Emerson; CHECK-NEXT: tbnz w1, #0, .LBB0_1 227510f32fSAmara Emerson; CHECK-NEXT: // %bb.3: // %while.body663.i 237510f32fSAmara Emerson; CHECK-NEXT: // in Loop: Header=BB0_2 Depth=1 24*4e0bd3faSPengcheng Wang; CHECK-NEXT: ldrb w10, [x8] 25*4e0bd3faSPengcheng Wang; CHECK-NEXT: strb wzr, [x0, x10] 267510f32fSAmara Emerson; CHECK-NEXT: b .LBB0_1 277510f32fSAmara Emerson; CHECK-NEXT: .LBB0_4: // %for.end677.i 287510f32fSAmara Emerson; CHECK-NEXT: mov w0, wzr 297510f32fSAmara Emerson; CHECK-NEXT: ret 307510f32fSAmara Emersonentry: 317510f32fSAmara Emerson br label %for.body653.i 327510f32fSAmara Emerson 337510f32fSAmara Emersonfor.body653.i: ; preds = %while.end671.i, %entry 347510f32fSAmara Emerson %0 = load i8, ptr null, align 1 357510f32fSAmara Emerson %idxprom657.i2 = zext i8 %0 to i64 367510f32fSAmara Emerson %1 = load i8, ptr %pos.i, align 1 377510f32fSAmara Emerson br i1 %cmp661.not3117.i, label %while.end671.i, label %while.body663.i 387510f32fSAmara Emerson 397510f32fSAmara Emersonwhile.body663.i: ; preds = %for.body653.i 407510f32fSAmara Emerson %arrayidx669.i = getelementptr [6 x i8], ptr %pos.i, i64 0, i64 %idxprom657.i2 417510f32fSAmara Emerson store i8 0, ptr %arrayidx669.i, align 1 427510f32fSAmara Emerson br label %while.end671.i 437510f32fSAmara Emerson 447510f32fSAmara Emersonwhile.end671.i: ; preds = %while.body663.i, %for.body653.i 457510f32fSAmara Emerson store i8 %1, ptr %pos.i, align 1 467510f32fSAmara Emerson br i1 %exitcond.not.i, label %for.end677.i, label %for.body653.i 477510f32fSAmara Emerson 487510f32fSAmara Emersonfor.end677.i: ; preds = %while.end671.i 497510f32fSAmara Emerson ret i32 0 507510f32fSAmara Emerson} 517510f32fSAmara Emerson 52