1*a538b0f0SEhsan Amiri; RUN: llc -verify-machineinstrs < %s -mcpu=ppc | FileCheck %s
21cf48ab8SHal Finkel
31cf48ab8SHal Finkeltarget datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v128:128:128-n32"
41cf48ab8SHal Finkeltarget triple = "powerpc-unknown-linux-gnu"
51cf48ab8SHal Finkel
61cf48ab8SHal Finkeldefine ppc_fp128 @foo(ppc_fp128* nocapture %n, ppc_fp128 %d) nounwind readonly {
71cf48ab8SHal Finkelentry:
81cf48ab8SHal Finkel  br label %for.body
91cf48ab8SHal Finkel
101cf48ab8SHal Finkelfor.body:                                         ; preds = %for.body, %entry
111cf48ab8SHal Finkel  %i.06 = phi i32 [ 0, %entry ], [ %inc, %for.body ]
121cf48ab8SHal Finkel  %x.05 = phi ppc_fp128 [ %d, %entry ], [ %conv, %for.body ]
1379e6c749SDavid Blaikie  %arrayidx = getelementptr inbounds ppc_fp128, ppc_fp128* %n, i32 %i.06
14a79ac14fSDavid Blaikie  %0 = load ppc_fp128, ppc_fp128* %arrayidx, align 8
151cf48ab8SHal Finkel  %conv = tail call ppc_fp128 @copysignl(ppc_fp128 %x.05, ppc_fp128 %d) nounwind readonly
161cf48ab8SHal Finkel  %inc = add nsw i32 %i.06, 1
171cf48ab8SHal Finkel  %exitcond = icmp eq i32 %inc, 2048
181cf48ab8SHal Finkel  br i1 %exitcond, label %for.end, label %for.body
191cf48ab8SHal Finkel
201cf48ab8SHal Finkelfor.end:                                          ; preds = %for.body
211cf48ab8SHal Finkel  ret ppc_fp128 %conv
221cf48ab8SHal Finkel}
231cf48ab8SHal Finkel
241cf48ab8SHal Finkeldeclare ppc_fp128 @copysignl(ppc_fp128, ppc_fp128) #0
251cf48ab8SHal Finkel
261cf48ab8SHal Finkel; CHECK: @foo
271cf48ab8SHal Finkel; CHECK-NOT: mtctr
281cf48ab8SHal Finkel
29