; RUN: llc -O2 -mtriple=hexagon < %s | FileCheck %s
; Rely on the comments generated by llc. Make sure there are no add/addasl
; instructions in while.body13 (before the loads).
; CHECK: while.body13
; CHECK-NOT: add
; CHECK: memw

%struct.1 = type { i32, i32 }
%struct.2 = type { [24 x i32], [24 x i32], [24 x i32], [24 x i32], [24 x i32], [24 x i32], [24 x i32], [24 x i32], [24 x i32], [24 x i32], [24 x i32], [24 x i32], [24 x i32], [24 x i32], [24 x i32], [24 x i32], [24 x i32], [3 x i32], [24 x i32], [8 x %struct.1], [5 x i32] }

@A1 = global i64 zeroinitializer
@A2 = global i64 zeroinitializer
@B1 = global i32 zeroinitializer
@B2 = global i32 zeroinitializer
@C1 = global i8 zeroinitializer

declare i32 @llvm.hexagon.S2.cl0(i32) nounwind readnone
declare i32 @llvm.hexagon.S2.setbit.r(i32, i32) nounwind readnone
declare i64 @llvm.hexagon.M2.vmpy2s.s0(i32, i32) nounwind readnone
declare i64 @llvm.hexagon.M2.vmac2s.s0(i64, i32, i32) nounwind readnone
declare i64 @llvm.hexagon.A2.vaddws(i64, i64) nounwind readnone
declare i64 @llvm.hexagon.A2.vsubws(i64, i64) nounwind readnone
declare i32 @llvm.hexagon.A4.modwrapu(i32, i32) nounwind readnone

define void @foo(i32 %n) nounwind {
entry:
  br label %while.body

while.body:
  %count = phi i32 [ 0, %entry ], [ %next, %while.end ]
  %idx = phi i32 [ 0, %entry ], [ %15, %while.end ]
  %0 = load i32, ptr @B1, align 4
  %1 = load i32, ptr @B2, align 8
  %2 = and i32 %1, %0
  br label %while.body13

while.body13:                                     ; preds = %while.body, %if.end
  %3 = phi i64 [ %13, %if.end ], [ 0, %while.body ]
  %4 = phi i64 [ %14, %if.end ], [ 0, %while.body ]
  %m = phi i32 [ %6, %if.end ], [ %2, %while.body ]
  %5 = tail call i32 @llvm.hexagon.S2.cl0(i32 %m)
  %6 = tail call i32 @llvm.hexagon.S2.setbit.r(i32 %m, i32 %5)
  %cgep85 = getelementptr [10 x %struct.2], ptr inttoptr (i32 -121502345 to ptr), i32 0, i32 %idx
  %cgep90 = getelementptr %struct.2, ptr %cgep85, i32 0, i32 12, i32 %5
  %7 = load i32, ptr %cgep90, align 4
  %8 = tail call i64 @llvm.hexagon.M2.vmpy2s.s0(i32 %7, i32 %7)
  %cgep91 = getelementptr %struct.2, ptr %cgep85, i32 0, i32 13, i32 %5
  %9 = load i32, ptr %cgep91, align 4
  %10 = tail call i64 @llvm.hexagon.M2.vmac2s.s0(i64 %8, i32 %9, i32 %9)
  %11 = load i8, ptr @C1, align 1
  %and24 = and i8 %11, 1
  %cmp = icmp eq i8 %and24, 0
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %while.body13
  %12 = tail call i64 @llvm.hexagon.A2.vaddws(i64 %3, i64 %10)
  store i64 %12, ptr @A1, align 8
  br label %if.end

if.end:                                           ; preds = %if.then, %while.body13
  %13 = phi i64 [ %12, %if.then ], [ %3, %while.body13 ]
  %14 = tail call i64 @llvm.hexagon.A2.vsubws(i64 %4, i64 %10)
  %tobool12 = icmp eq i32 %6, 0
  br i1 %tobool12, label %while.end, label %while.body13

while.end:
  %add40 = add i32 %idx, 1
  %15 = tail call i32 @llvm.hexagon.A4.modwrapu(i32 %add40, i32 10) nounwind
  %next = add i32 %count, 1
  %cc = icmp eq i32 %next, %n
  br i1 %cc, label %end, label %while.body

end:
  store i64 %10, ptr @A2, align 8
  ret void
}
