llvm/polly/test/ScopInfo/avoid_new_parameters_from_geps.ll

; RUN: opt %loadNPMPolly '-passes=print<polly-function-scops>' -disable-output < %s 2>&1 | FileCheck %s
;
; Check that we do no introduce a parameter here that is actually not needed.
;
; CHECK:      Region: %for.body58---%land.lhs.true
; CHECK-NEXT:     Max Loop Depth:  0
; CHECK-NEXT:     Invariant Accesses: {
; CHECK-NEXT:     }
; CHECK-NEXT:     Context:
; CHECK-NEXT:     {  :  }
; CHECK-NEXT:     Assumed Context:
; CHECK-NEXT:     {  :  }
; CHECK-NEXT:     Invalid Context:
; CHECK-NEXT:     {  : false }
; CHECK:          Arrays {
; CHECK-NEXT:         ptr MemRef_team2_0_in; // Element size 8
; CHECK-NEXT:     }
; CHECK-NEXT:     Arrays (Bounds as pw_affs) {
; CHECK-NEXT:         ptr MemRef_team2_0_in; // Element size 8
; CHECK-NEXT:     }
; CHECK-NEXT:     Alias Groups (0):
; CHECK-NEXT:         n/a
; CHECK-NEXT:     Statements {
; CHECK-NEXT:     	Stmt_if_then60
; CHECK-NEXT:             Domain :=
; CHECK-NEXT:                 { Stmt_if_then60[] };
; CHECK-NEXT:             Schedule :=
; CHECK-NEXT:                 { Stmt_if_then60[] -> [] };
; CHECK-NEXT:             MustWriteAccess :=	[Reduction Type: NONE] [Scalar: 1]
; CHECK-NEXT:                 { Stmt_if_then60[] -> MemRef_team2_0_in[] };
; CHECK-NEXT:     }
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"

@sched = external global [18 x [15 x [3 x i32]]], align 16

; Function Attrs: nounwind uwtable
define void @common() #0 {
entry:
  br label %for.body36

for.body36:                                       ; preds = %entry
  br label %for.cond56.preheader

for.cond56.preheader:                             ; preds = %for.inc158, %for.body36
  %indvars.iv78 = phi i64 [ 0, %for.inc158 ], [ 1, %for.body36 ]
  br label %for.body58

for.body58:                                       ; preds = %for.cond56.preheader
  %cmp59 = icmp eq i32 1, 1
  br i1 %cmp59, label %if.then60, label %if.else71

if.then60:                                        ; preds = %for.body58
  %arrayidx70 = getelementptr inbounds [18 x [15 x [3 x i32]]], ptr @sched, i64 0, i64 1, i64 %indvars.iv78, i64 1
  br label %land.lhs.true

if.else71:                                        ; preds = %for.body58
  br label %land.lhs.true

land.lhs.true:                                    ; preds = %if.else71, %if.then60
  %team2.0.in = phi ptr [ %arrayidx70, %if.then60 ], [ undef, %if.else71 ]
  br i1 undef, label %for.inc158, label %if.then86

if.then86:                                        ; preds = %land.lhs.true
  unreachable

for.inc158:                                       ; preds = %land.lhs.true
  br label %for.cond56.preheader
}