; RUN: llc -march=hexagon -O2 -fp-contract=fast < %s -pipeliner-experimental-cg=true | FileCheck %s

; Test that the memoperands for instructions in the epilog are updated
; correctly. Previously, the pipeliner updated the offset for the memoperands
; in the epilog. But, the value of the offset is incorrect when control flow
; branches around the kernel.

; In this test, we check that a load and store to the same location are not
; swapped due to a bad offset in the memoperands. The store and load are both
; to r29+32. If the memoperands are updated incorrectly, these are swapped.

; CHECK: [[REG0:r([0-9]+)]] = add(r29,#24)
; CHECK: memw([[REG0]]++#4) = r{{[0-9]+}}
; CHECK: r{{[0-9]+}} = memw(r29+#{{[0-9]+}})

%s.0 = type { %s.1 }
%s.1 = type { %s.2 }
%s.2 = type { %s.3 }
%s.3 = type { [9 x float] }
%s.4 = type { %s.5 }
%s.5 = type { %s.6 }
%s.6 = type { %s.7 }
%s.7 = type { [3 x float] }

@g0 = external hidden unnamed_addr constant [29 x i8], align 1

define i32 @f0() unnamed_addr {
b0:
  %v0 = alloca %s.0, align 4
  %v1 = alloca %s.4, align 4
  %v2 = bitcast %s.0* %v0 to i8*
  call void @llvm.lifetime.start.p0i8(i64 36, i8* %v2)
  %v3 = getelementptr inbounds %s.0, %s.0* %v0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0
  store float 0x3FEFFF7160000000, float* %v3, align 4
  %v4 = getelementptr inbounds %s.0, %s.0* %v0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1
  store float 0xBF87867F00000000, float* %v4, align 4
  %v5 = getelementptr inbounds %s.0, %s.0* %v0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 2
  store float 0xBF6185CEE0000000, float* %v5, align 4
  %v6 = getelementptr inbounds %s.0, %s.0* %v0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 3
  store float 0x3F8780BAA0000000, float* %v6, align 4
  %v7 = getelementptr inbounds %s.0, %s.0* %v0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 4
  store float 0x3FEFFF5C60000000, float* %v7, align 4
  %v8 = getelementptr inbounds %s.0, %s.0* %v0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 5
  store float 0xBF74717160000000, float* %v8, align 4
  %v9 = getelementptr inbounds %s.0, %s.0* %v0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 6
  store float 0x3F61FF7160000000, float* %v9, align 4
  %v10 = getelementptr inbounds %s.0, %s.0* %v0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 7
  store float 0x3F74573A80000000, float* %v10, align 4
  %v11 = getelementptr inbounds %s.0, %s.0* %v0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 8
  store float 0x3FEFFFE080000000, float* %v11, align 4
  %v12 = bitcast %s.4* %v1 to i8*
  call void @llvm.lifetime.start.p0i8(i64 12, i8* %v12)
  br label %b1

b1:                                               ; preds = %b1, %b0
  %v13 = phi i32 [ 0, %b0 ], [ %v29, %b1 ]
  %v14 = mul nuw nsw i32 %v13, 3
  %v15 = getelementptr inbounds %s.0, %s.0* %v0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 %v14
  %v16 = load float, float* %v15, align 4
  %v17 = fmul float %v16, 0x3FE7B2B120000000
  %v18 = add nuw nsw i32 %v14, 1
  %v19 = getelementptr inbounds %s.0, %s.0* %v0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 %v18
  %v20 = load float, float* %v19, align 4
  %v21 = fmul float %v20, 0x3FDA8BC9C0000000
  %v22 = fsub float %v21, %v17
  %v23 = add nuw nsw i32 %v14, 2
  %v24 = getelementptr inbounds %s.0, %s.0* %v0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 %v23
  %v25 = load float, float* %v24, align 4
  %v26 = fmul float %v25, 0x40030D6700000000
  %v27 = fadd float %v22, %v26
  %v28 = getelementptr inbounds %s.4, %s.4* %v1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 %v13
  store float %v27, float* %v28, align 4
  %v29 = add nuw nsw i32 %v13, 1
  %v30 = icmp eq i32 %v29, 3
  br i1 %v30, label %b2, label %b1

b2:                                               ; preds = %b1
  %v31 = getelementptr inbounds %s.4, %s.4* %v1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0
  %v32 = load float, float* %v31, align 4
  %v33 = fpext float %v32 to double
  %v34 = getelementptr inbounds %s.4, %s.4* %v1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1
  %v35 = load float, float* %v34, align 4
  %v36 = fpext float %v35 to double
  %v37 = getelementptr inbounds %s.4, %s.4* %v1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 2
  %v38 = load float, float* %v37, align 4
  %v39 = fpext float %v38 to double
  %v40 = tail call i32 (i8*, ...) @f1(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @g0, i32 0, i32 0), double %v33, double %v36, double %v39)
  call void @llvm.lifetime.end.p0i8(i64 12, i8* nonnull %v12)
  call void @llvm.lifetime.end.p0i8(i64 36, i8* nonnull %v2)
  ret i32 0
}

declare i32 @f1(i8* nocapture readonly, ...) local_unnamed_addr

; Function Attrs: argmemonly nounwind
declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #0

; Function Attrs: argmemonly nounwind
declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #0

attributes #0 = { argmemonly nounwind }
