; RUN: llc -march=hexagon < %s | FileCheck %s

; Check that we don't generate an invalid packet with too many instructions
; due to a store that has a must-extend operand.

; CHECK: CuSuiteAdd.exit.us
; CHECK: {
; CHECK-NOT: call abort
; CHECK: memw(##0)
; CHECK: memw(r{{[0-9+]}}<<#2+##4)
; CHECK: }

%struct.CuTest.1.28.31.37.40.43.52.55.67.85.111 = type { ptr, ptr, i32, i32, ptr, ptr }
%struct.CuSuite.2.29.32.38.41.44.53.56.68.86.112 = type { i32, [1024 x ptr], i32 }

@__func__.CuSuiteAdd = external unnamed_addr constant [11 x i8], align 8
@.str24 = external unnamed_addr constant [140 x i8], align 8

declare void @_Assert()

define void @CuSuiteAddSuite() nounwind {
entry:
  br i1 undef, label %for.body.us, label %for.end

for.body.us:                                      ; preds = %entry
  %0 = load ptr, ptr null, align 4
  %1 = load i32, ptr undef, align 4
  %cmp.i.us = icmp slt i32 %1, 1024
  br i1 %cmp.i.us, label %CuSuiteAdd.exit.us, label %cond.false6.i.us

cond.false6.i.us:                                 ; preds = %for.body.us
  tail call void @_Assert() nounwind
  unreachable

CuSuiteAdd.exit.us:                               ; preds = %for.body.us
  %arrayidx.i.us = getelementptr inbounds %struct.CuSuite.2.29.32.38.41.44.53.56.68.86.112, ptr null, i32 0, i32 1, i32 %1
  store ptr %0, ptr %arrayidx.i.us, align 4
  call void @llvm.trap()
  unreachable

for.end:                                          ; preds = %entry
  ret void
}

declare void @llvm.trap() noreturn nounwind
