brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · fe37153 Raw
52 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 32; RUN: llc < %s -mtriple=aarch64 -aarch64-enable-sink-fold=true -global-isel | FileCheck %s3 4target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"5target triple = "arm64-apple-macosx13.5.0"6 7; Check we don't crash here with a use-after-free.8 9define i32 @nsis_BZ2_bzDecompress(ptr %pos.i, i1 %cmp661.not3117.i, i1 %exitcond.not.i) {10; CHECK-LABEL: nsis_BZ2_bzDecompress:11; CHECK:       // %bb.0: // %entry12; CHECK-NEXT:    mov x8, xzr13; CHECK-NEXT:    b .LBB0_214; CHECK-NEXT:  .LBB0_1: // %while.end671.i15; CHECK-NEXT:    // in Loop: Header=BB0_2 Depth=116; CHECK-NEXT:    strb w9, [x0]17; CHECK-NEXT:    tbnz w2, #0, .LBB0_418; CHECK-NEXT:  .LBB0_2: // %for.body653.i19; CHECK-NEXT:    // =>This Inner Loop Header: Depth=120; CHECK-NEXT:    ldrb w9, [x0]21; CHECK-NEXT:    tbnz w1, #0, .LBB0_122; CHECK-NEXT:  // %bb.3: // %while.body663.i23; CHECK-NEXT:    // in Loop: Header=BB0_2 Depth=124; CHECK-NEXT:    ldrb w10, [x8]25; CHECK-NEXT:    strb wzr, [x0, x10]26; CHECK-NEXT:    b .LBB0_127; CHECK-NEXT:  .LBB0_4: // %for.end677.i28; CHECK-NEXT:    mov w0, wzr29; CHECK-NEXT:    ret30entry:31  br label %for.body653.i32 33for.body653.i:                                    ; preds = %while.end671.i, %entry34  %0 = load i8, ptr null, align 135  %idxprom657.i2 = zext i8 %0 to i6436  %1 = load i8, ptr %pos.i, align 137  br i1 %cmp661.not3117.i, label %while.end671.i, label %while.body663.i38 39while.body663.i:                                  ; preds = %for.body653.i40  %arrayidx669.i = getelementptr [6 x i8], ptr %pos.i, i64 0, i64 %idxprom657.i241  store i8 0, ptr %arrayidx669.i, align 142  br label %while.end671.i43 44while.end671.i:                                   ; preds = %while.body663.i, %for.body653.i45  store i8 %1, ptr %pos.i, align 146  br i1 %exitcond.not.i, label %for.end677.i, label %for.body653.i47 48for.end677.i:                                     ; preds = %while.end671.i49  ret i32 050}51 52