95 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --version 52; RUN: opt < %s -disable-output "-passes=print<da>" -aa-pipeline=basic-aa 2>&1 \3; RUN: | FileCheck %s4 5; ModuleID = 'ZIV.bc'6target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"7target triple = "x86_64-apple-macosx10.6.0"8 9 10;; A[n + 1] = 0;11;; *B = A[1 + n];12 13define void @z0(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {14; CHECK-LABEL: 'z0'15; CHECK-NEXT: Src: store i32 0, ptr %arrayidx, align 4 --> Dst: store i32 0, ptr %arrayidx, align 416; CHECK-NEXT: da analyze - none!17; CHECK-NEXT: Src: store i32 0, ptr %arrayidx, align 4 --> Dst: %0 = load i32, ptr %arrayidx2, align 418; CHECK-NEXT: da analyze - consistent flow [|<]!19; CHECK-NEXT: Src: store i32 0, ptr %arrayidx, align 4 --> Dst: store i32 %0, ptr %B, align 420; CHECK-NEXT: da analyze - confused!21; CHECK-NEXT: Src: %0 = load i32, ptr %arrayidx2, align 4 --> Dst: %0 = load i32, ptr %arrayidx2, align 422; CHECK-NEXT: da analyze - none!23; CHECK-NEXT: Src: %0 = load i32, ptr %arrayidx2, align 4 --> Dst: store i32 %0, ptr %B, align 424; CHECK-NEXT: da analyze - confused!25; CHECK-NEXT: Src: store i32 %0, ptr %B, align 4 --> Dst: store i32 %0, ptr %B, align 426; CHECK-NEXT: da analyze - none!27;28entry:29 %add = add i64 %n, 130 %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add31 store i32 0, ptr %arrayidx, align 432 %add1 = add i64 %n, 133 %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 %add134 %0 = load i32, ptr %arrayidx2, align 435 store i32 %0, ptr %B, align 436 ret void37}38 39 40;; A[n] = 0;41;; *B = A[n + 1];42 43define void @z1(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {44; CHECK-LABEL: 'z1'45; CHECK-NEXT: Src: store i32 0, ptr %arrayidx, align 4 --> Dst: store i32 0, ptr %arrayidx, align 446; CHECK-NEXT: da analyze - none!47; CHECK-NEXT: Src: store i32 0, ptr %arrayidx, align 4 --> Dst: %0 = load i32, ptr %arrayidx1, align 448; CHECK-NEXT: da analyze - none!49; CHECK-NEXT: Src: store i32 0, ptr %arrayidx, align 4 --> Dst: store i32 %0, ptr %B, align 450; CHECK-NEXT: da analyze - confused!51; CHECK-NEXT: Src: %0 = load i32, ptr %arrayidx1, align 4 --> Dst: %0 = load i32, ptr %arrayidx1, align 452; CHECK-NEXT: da analyze - none!53; CHECK-NEXT: Src: %0 = load i32, ptr %arrayidx1, align 4 --> Dst: store i32 %0, ptr %B, align 454; CHECK-NEXT: da analyze - confused!55; CHECK-NEXT: Src: store i32 %0, ptr %B, align 4 --> Dst: store i32 %0, ptr %B, align 456; CHECK-NEXT: da analyze - none!57;58entry:59 %arrayidx = getelementptr inbounds i32, ptr %A, i64 %n60 store i32 0, ptr %arrayidx, align 461 %add = add i64 %n, 162 %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %add63 %0 = load i32, ptr %arrayidx1, align 464 store i32 %0, ptr %B, align 465 ret void66}67 68 69;; A[n] = 0;70;; *B = A[m];71 72define void @z2(ptr %A, ptr %B, i64 %n, i64 %m) nounwind uwtable ssp {73; CHECK-LABEL: 'z2'74; CHECK-NEXT: Src: store i32 0, ptr %arrayidx, align 4 --> Dst: store i32 0, ptr %arrayidx, align 475; CHECK-NEXT: da analyze - none!76; CHECK-NEXT: Src: store i32 0, ptr %arrayidx, align 4 --> Dst: %0 = load i32, ptr %arrayidx1, align 477; CHECK-NEXT: da analyze - flow [|<]!78; CHECK-NEXT: Src: store i32 0, ptr %arrayidx, align 4 --> Dst: store i32 %0, ptr %B, align 479; CHECK-NEXT: da analyze - confused!80; CHECK-NEXT: Src: %0 = load i32, ptr %arrayidx1, align 4 --> Dst: %0 = load i32, ptr %arrayidx1, align 481; CHECK-NEXT: da analyze - none!82; CHECK-NEXT: Src: %0 = load i32, ptr %arrayidx1, align 4 --> Dst: store i32 %0, ptr %B, align 483; CHECK-NEXT: da analyze - confused!84; CHECK-NEXT: Src: store i32 %0, ptr %B, align 4 --> Dst: store i32 %0, ptr %B, align 485; CHECK-NEXT: da analyze - none!86;87entry:88 %arrayidx = getelementptr inbounds i32, ptr %A, i64 %n89 store i32 0, ptr %arrayidx, align 490 %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %m91 %0 = load i32, ptr %arrayidx1, align 492 store i32 %0, ptr %B, align 493 ret void94}95