;  RUN: opt -passes=loop-idiom -use-lir-code-size-heurs=true < %s -S | FileCheck %s

; When compiling for codesize we avoid idiom recognition for a
; multi-block loop unless it is one of
; - a loop_memset idiom, or
; - a memset/memcpy idiom in a nested loop.

declare void @llvm.memset.p0.i64(ptr nocapture, i8, i64, i1)
@APPLES = common global i32 0, align 4
@ORANGES = common global i32 0, align 4

; LIR allowed: loop_memset idiom in multi-block loop.
; ===================================================
; CHECK-LABEL: @LoopMemset
; CHECK: for.body.preheader:
; CHECK: call void @llvm.memset
; CHECK: for.body:
;
define i32 @LoopMemset(ptr noalias nocapture %DST, i32 %SIZE) local_unnamed_addr optsize {
entry:
  %cmp12 = icmp sgt i32 %SIZE, 0
  br i1 %cmp12, label %for.body.preheader, label %for.end

for.body.preheader:                               ; preds = %entry
  br label %for.body

for.body:                                         ; preds = %for.body.preheader, %for.inc
  %indvars.iv = phi i64 [ 0, %for.body.preheader ], [ %indvars.iv.next, %for.inc ]
  %BASKET.013 = phi i32 [ %BASKET.1, %for.inc ], [ 0, %for.body.preheader ]
  %arraydecay = getelementptr inbounds [2048 x i8], ptr %DST, i64 %indvars.iv, i64 0
  tail call void @llvm.memset.p0.i64(ptr %arraydecay, i8 -1, i64 2048, i1 false)
  %0 = trunc i64 %indvars.iv to i32
  %rem11 = and i32 %0, 1
  %cmp1 = icmp eq i32 %rem11, 0
  %1 = load i32, ptr @ORANGES, align 4
  %2 = load i32, ptr @APPLES, align 4
  br i1 %cmp1, label %if.then, label %if.else

if.else:                                          ; preds = %for.body
  %dec3 = add nsw i32 %2, -1
  store i32 %dec3, ptr @APPLES, align 4
  br label %for.inc

if.then:                                          ; preds = %for.body
  %dec = add nsw i32 %1, -1
  store i32 %dec, ptr @ORANGES, align 4
  br label %for.inc

for.inc:                                          ; preds = %if.then, %if.else
  %.pn = phi i32 [ %2, %if.then ], [ %1, %if.else ]
  %BASKET.1 = add nsw i32 %.pn, %BASKET.013
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
  %exitcond = icmp ne i32 %lftr.wideiv, %SIZE
  br i1 %exitcond, label %for.body, label %for.end.loopexit

for.end.loopexit:                                 ; preds = %for.inc
  %BASKET.1.lcssa = phi i32 [ %BASKET.1, %for.inc ]
  br label %for.end

for.end:                                          ; preds = %for.end.loopexit, %entry
  %BASKET.0.lcssa = phi i32 [ 0, %entry ], [ %BASKET.1.lcssa, %for.end.loopexit ]
  ret i32 %BASKET.0.lcssa
}

; LIR allowed: memset idiom in multi-block nested loop,
; which is recognized as a loop_memset in its turn.
; =====================================================
; CHECK-LABEL: @NestedMemset_LoopMemset
; CHECK: for.cond1.preheader.preheader:
; CHECK: call void @llvm.memset
; CHECK: for.cond1.preheader:
;
define i32 @NestedMemset_LoopMemset(ptr noalias nocapture %DST, i32 %SIZE) local_unnamed_addr optsize {
entry:
  %cmp25 = icmp sgt i32 %SIZE, 0
  br i1 %cmp25, label %for.cond1.preheader.preheader, label %for.end11

for.cond1.preheader.preheader:                    ; preds = %entry
  br label %for.cond1.preheader

for.cond1.preheader:                              ; preds = %for.cond1.preheader.preheader, %for.inc9
  %i.027 = phi i32 [ %inc10, %for.inc9 ], [ 0, %for.cond1.preheader.preheader ]
  %BASKET.026 = phi i32 [ %BASKET.2.lcssa, %for.inc9 ], [ 0, %for.cond1.preheader.preheader ]
  %idxprom4 = sext i32 %i.027 to i64
  %rem22 = and i32 %i.027, 1
  %cmp6 = icmp eq i32 %rem22, 0
  br label %for.body3

for.body3:                                        ; preds = %for.cond1.preheader, %for.inc
  %indvars.iv = phi i64 [ 0, %for.cond1.preheader ], [ %indvars.iv.next, %for.inc ]
  %BASKET.123 = phi i32 [ %BASKET.026, %for.cond1.preheader ], [ %BASKET.2, %for.inc ]
  %arrayidx5 = getelementptr inbounds [2046 x i8], ptr %DST, i64 %idxprom4, i64 %indvars.iv
  store i8 -1, ptr %arrayidx5, align 1
  %0 = load i32, ptr @APPLES, align 4
  %1 = load i32, ptr @ORANGES, align 4
  br i1 %cmp6, label %if.then, label %if.else

if.else:                                          ; preds = %for.body3
  %dec8 = add nsw i32 %0, -1
  store i32 %dec8, ptr @APPLES, align 4
  br label %for.inc

if.then:                                          ; preds = %for.body3
  %dec = add nsw i32 %1, -1
  store i32 %dec, ptr @ORANGES, align 4
  br label %for.inc

for.inc:                                          ; preds = %if.then, %if.else
  %.pn = phi i32 [ %0, %if.then ], [ %1, %if.else ]
  %BASKET.2 = add nsw i32 %.pn, %BASKET.123
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond = icmp ne i64 %indvars.iv.next, 2046
  br i1 %exitcond, label %for.body3, label %for.inc9

for.inc9:                                         ; preds = %for.inc
  %BASKET.2.lcssa = phi i32 [ %BASKET.2, %for.inc ]
  %inc10 = add nsw i32 %i.027, 1
  %cmp = icmp slt i32 %inc10, %SIZE
  br i1 %cmp, label %for.cond1.preheader, label %for.end11.loopexit

for.end11.loopexit:                               ; preds = %for.inc9
  %BASKET.2.lcssa.lcssa = phi i32 [ %BASKET.2.lcssa, %for.inc9 ]
  br label %for.end11

for.end11:                                        ; preds = %for.end11.loopexit, %entry
  %BASKET.0.lcssa = phi i32 [ 0, %entry ], [ %BASKET.2.lcssa.lcssa, %for.end11.loopexit ]
  ret i32 %BASKET.0.lcssa
}

; LIR avoided: memset idiom in multi-block top-level loop.
; ========================================================
; CHECK-LABEL: @Non_NestedMemset
; CHECK-NOT: call void @llvm.memset
;
define i32 @Non_NestedMemset(ptr noalias nocapture %DST, i32 %SIZE) local_unnamed_addr optsize {
entry:
  %cmp12 = icmp sgt i32 %SIZE, 0
  br i1 %cmp12, label %for.body.preheader, label %for.end

for.body.preheader:                               ; preds = %entry
  br label %for.body

for.body:                                         ; preds = %for.body.preheader, %for.inc
  %indvars.iv = phi i64 [ 0, %for.body.preheader ], [ %indvars.iv.next, %for.inc ]
  %BASKET.013 = phi i32 [ %BASKET.1, %for.inc ], [ 0, %for.body.preheader ]
  %arrayidx = getelementptr inbounds i8, ptr %DST, i64 %indvars.iv
  store i8 -1, ptr %arrayidx, align 1
  %0 = trunc i64 %indvars.iv to i32
  %rem11 = and i32 %0, 1
  %cmp1 = icmp eq i32 %rem11, 0
  %1 = load i32, ptr @ORANGES, align 4
  %2 = load i32, ptr @APPLES, align 4
  br i1 %cmp1, label %if.then, label %if.else

if.else:                                          ; preds = %for.body
  %dec3 = add nsw i32 %2, -1
  store i32 %dec3, ptr @APPLES, align 4
  br label %for.inc

if.then:                                          ; preds = %for.body
  %dec = add nsw i32 %1, -1
  store i32 %dec, ptr @ORANGES, align 4
  br label %for.inc

for.inc:                                          ; preds = %if.then, %if.else
  %.pn = phi i32 [ %2, %if.then ], [ %1, %if.else ]
  %BASKET.1 = add nsw i32 %.pn, %BASKET.013
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
  %exitcond = icmp ne i32 %lftr.wideiv, %SIZE
  br i1 %exitcond, label %for.body, label %for.end.loopexit

for.end.loopexit:                                 ; preds = %for.inc
  %BASKET.1.lcssa = phi i32 [ %BASKET.1, %for.inc ]
  br label %for.end

for.end:                                          ; preds = %for.end.loopexit, %entry
  %BASKET.0.lcssa = phi i32 [ 0, %entry ], [ %BASKET.1.lcssa, %for.end.loopexit ]
  ret i32 %BASKET.0.lcssa
}

