1; RUN: opt %loadNPMPolly '-passes=print<polly-function-scops>,scop(print<polly-simplify>)' -disable-output < %s | FileCheck %s 2; 3; The use of %sum.next by %phi counts as an escaping use. 4; Don't remove the scalar write of %sum.next. 5; 6target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 7 8define float @foo(ptr %A) { 9entry: 10 br label %header 11 12header: 13 fence seq_cst 14 br i1 true, label %body, label %exit 15 16body: 17 %i = phi i64 [ 0, %header ], [ %next, %body ] 18 %sum = phi float [ 0.0, %header ], [ %sum.next, %body ] 19 %arrayidx = getelementptr float, ptr %A, i64 %i 20 %next = add nuw nsw i64 %i, 1 21 %val = load float, ptr %arrayidx 22 %sum.next = fadd float %sum, %val 23 %cond = icmp ne i64 %i, 100 24 br i1 %cond, label %body, label %after 25 26after: 27 br label %exit 28 29exit: 30 %phi = phi float [%sum.next, %after], [0.0, %header] 31 ret float %phi 32} 33 34 35; CHECK: Statistics { 36; CHECK: Dead accesses removed: 0 37; CHECK: } 38