1e578e970SPetar Jovanovic; RUN: llc -march=mipsel -relocation-model=pic < %s | FileCheck %s
21f24e6a6SAkira Hatanaka
31f24e6a6SAkira Hatanaka@g1 = external global i32*
41f24e6a6SAkira Hatanaka
5d24ab20eSStephen Lin; CHECK-LABEL: foo1:
61f24e6a6SAkira Hatanaka; CHECK: lw ${{[0-9]+}}, %got(g1)
71f24e6a6SAkira Hatanaka; CHECK: # %for.body
81f24e6a6SAkira Hatanaka; CHECK: # %for.end
91f24e6a6SAkira Hatanaka
101f24e6a6SAkira Hatanakadefine i32 @foo1() {
111f24e6a6SAkira Hatanakaentry:
121f24e6a6SAkira Hatanaka  %b = alloca [16 x i32], align 4
131f24e6a6SAkira Hatanaka  %0 = bitcast [16 x i32]* %b to i8*
14*f10061ecSMatt Arsenault  call void @llvm.lifetime.start.p0i8(i64 64, i8* %0)
1579e6c749SDavid Blaikie  %arraydecay = getelementptr inbounds [16 x i32], [16 x i32]* %b, i32 0, i32 0
161f24e6a6SAkira Hatanaka  br label %for.body
171f24e6a6SAkira Hatanaka
181f24e6a6SAkira Hatanakafor.body:                                         ; preds = %for.body, %entry
191f24e6a6SAkira Hatanaka  %i.05 = phi i32 [ 0, %entry ], [ %inc, %for.body ]
201f24e6a6SAkira Hatanaka  %v.04 = phi i32 [ 0, %entry ], [ %add, %for.body ]
21a79ac14fSDavid Blaikie  %1 = load i32*, i32** @g1, align 4
2279e6c749SDavid Blaikie  %arrayidx = getelementptr inbounds i32, i32* %1, i32 %i.05
23a79ac14fSDavid Blaikie  %2 = load i32, i32* %arrayidx, align 4
241f24e6a6SAkira Hatanaka  %call = call i32 @foo2(i32 %2, i32* %arraydecay)
251f24e6a6SAkira Hatanaka  %add = add nsw i32 %call, %v.04
261f24e6a6SAkira Hatanaka  %inc = add nsw i32 %i.05, 1
271f24e6a6SAkira Hatanaka  %exitcond = icmp eq i32 %inc, 10000
281f24e6a6SAkira Hatanaka  br i1 %exitcond, label %for.end, label %for.body
291f24e6a6SAkira Hatanaka
301f24e6a6SAkira Hatanakafor.end:                                          ; preds = %for.body
31*f10061ecSMatt Arsenault  call void @llvm.lifetime.end.p0i8(i64 64, i8* %0)
321f24e6a6SAkira Hatanaka  ret i32 %add
331f24e6a6SAkira Hatanaka}
341f24e6a6SAkira Hatanaka
35*f10061ecSMatt Arsenaultdeclare void @llvm.lifetime.start.p0i8(i64, i8* nocapture)
361f24e6a6SAkira Hatanaka
371f24e6a6SAkira Hatanakadeclare i32 @foo2(i32, i32*)
381f24e6a6SAkira Hatanaka
39*f10061ecSMatt Arsenaultdeclare void @llvm.lifetime.end.p0i8(i64, i8* nocapture)
40