brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.4 KiB · c56f7f3 Raw
96 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --version 52; RUN: opt < %s -disable-output -aa-pipeline=default -passes='print<da>' \3; RUN: -da-miv-max-level-threshold=2 2>&1 | FileCheck %s4 5;; Check to make sure when MIV tests reach a maximum depth level6;; threshold, the resulting dependence is conservatively correct.7 8;; for (int i = 0; i < n; i++)9;;   for (int j = 0; j < m; j++)10;;     for (int k = 0; k < o; k++)11;;       A[i+j+k] = A[i-j+k] + B[i+j+k];12 13 14define void @foo(ptr noalias %A, ptr noalias %B, i32 signext %m, i32 signext %n, i32 signext %o) {15; CHECK-LABEL: 'foo'16; CHECK-NEXT:  Src: %2 = load float, ptr %arrayidx, align 4 --> Dst: %2 = load float, ptr %arrayidx, align 417; CHECK-NEXT:    da analyze - input [* * *]!18; CHECK-NEXT:  Src: %2 = load float, ptr %arrayidx, align 4 --> Dst: %5 = load float, ptr %arrayidx12, align 419; CHECK-NEXT:    da analyze - none!20; CHECK-NEXT:  Src: %2 = load float, ptr %arrayidx, align 4 --> Dst: store float %add13, ptr %arrayidx17, align 421; CHECK-NEXT:    da analyze - anti [* * *|<]!22; CHECK-NEXT:  Src: %5 = load float, ptr %arrayidx12, align 4 --> Dst: %5 = load float, ptr %arrayidx12, align 423; CHECK-NEXT:    da analyze - input [* * *]!24; CHECK-NEXT:  Src: %5 = load float, ptr %arrayidx12, align 4 --> Dst: store float %add13, ptr %arrayidx17, align 425; CHECK-NEXT:    da analyze - none!26; CHECK-NEXT:  Src: store float %add13, ptr %arrayidx17, align 4 --> Dst: store float %add13, ptr %arrayidx17, align 427; CHECK-NEXT:    da analyze - output [* * *]!28;29entry:30  %cmp5 = icmp sgt i32 %n, 031  br i1 %cmp5, label %for.body.preheader, label %for.end2332 33for.body.preheader:                               ; preds = %entry34  %wide.trip.count21 = zext i32 %n to i6435  br label %for.body36 37for.body:                                         ; preds = %for.body.preheader, %for.inc2138  %indvars.iv19 = phi i64 [ 0, %for.body.preheader ], [ %indvars.iv.next20, %for.inc21 ]39  %cmp23 = icmp sgt i32 %m, 040  br i1 %cmp23, label %for.body4.preheader, label %for.inc2141 42for.body4.preheader:                              ; preds = %for.body43  %wide.trip.count17 = zext i32 %m to i6444  br label %for.body445 46for.body4:                                        ; preds = %for.body4.preheader, %for.inc1847  %indvars.iv12 = phi i64 [ 0, %for.body4.preheader ], [ %indvars.iv.next13, %for.inc18 ]48  %cmp61 = icmp sgt i32 %o, 049  br i1 %cmp61, label %for.body8.preheader, label %for.inc1850 51for.body8.preheader:                              ; preds = %for.body452  %wide.trip.count = zext i32 %o to i6453  br label %for.body854 55for.body8:                                        ; preds = %for.body8.preheader, %for.body856  %indvars.iv = phi i64 [ 0, %for.body8.preheader ], [ %indvars.iv.next, %for.body8 ]57  %0 = sub nsw i64 %indvars.iv19, %indvars.iv1258  %1 = add nsw i64 %0, %indvars.iv59  %arrayidx = getelementptr inbounds float, ptr %A, i64 %160  %2 = load float, ptr %arrayidx, align 461  %3 = add nuw nsw i64 %indvars.iv19, %indvars.iv1262  %4 = add nuw nsw i64 %3, %indvars.iv63  %arrayidx12 = getelementptr inbounds float, ptr %B, i64 %464  %5 = load float, ptr %arrayidx12, align 465  %add13 = fadd fast float %2, %566  %6 = add nuw nsw i64 %indvars.iv19, %indvars.iv1267  %7 = add nuw nsw i64 %6, %indvars.iv68  %arrayidx17 = getelementptr inbounds float, ptr %A, i64 %769  store float %add13, ptr %arrayidx17, align 470  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 171  %exitcond = icmp ne i64 %indvars.iv.next, %wide.trip.count72  br i1 %exitcond, label %for.body8, label %for.inc18.loopexit73 74for.inc18.loopexit:                               ; preds = %for.body875  br label %for.inc1876 77for.inc18:                                        ; preds = %for.inc18.loopexit, %for.body478  %indvars.iv.next13 = add nuw nsw i64 %indvars.iv12, 179  %exitcond18 = icmp ne i64 %indvars.iv.next13, %wide.trip.count1780  br i1 %exitcond18, label %for.body4, label %for.inc21.loopexit81 82for.inc21.loopexit:                               ; preds = %for.inc1883  br label %for.inc2184 85for.inc21:                                        ; preds = %for.inc21.loopexit, %for.body86  %indvars.iv.next20 = add nuw nsw i64 %indvars.iv19, 187  %exitcond22 = icmp ne i64 %indvars.iv.next20, %wide.trip.count2188  br i1 %exitcond22, label %for.body, label %for.end23.loopexit89 90for.end23.loopexit:                               ; preds = %for.inc2191  br label %for.end2392 93for.end23:                                        ; preds = %for.end23.loopexit, %entry94  ret void95}96