; RUN: llc -march=hexagon < %s | FileCheck %s
;
; Check that
;     {
;         r1 = r0
;     }
;     {
;         r0 = memw(r1 + #0)
;     }
; was copy-propagated to
;     {
;         r1 = r0
;         r0 = memw(r0 + #0)
;     }
;
; CHECK-LABEL: LBB0_1
; CHECK: [[DST:r[0-9]+]] = [[SRC:r[0-9]+]]
; CHECK-DAG: memw([[SRC]]
; CHECK-NOT: memw([[DST]]
; CHECK: %if.end

target datalayout = "e-p:32:32:32-i64:64:64-i32:32:32-i16:16:16-i1:32:32-f64:64:64-f32:32:32-v64:64:64-v32:32:32-a0:0-n16:32"
target triple = "hexagon"

%union.t = type { %struct.t, [64 x i8] }
%struct.t = type { [12 x i8], %struct.r*, double }
%struct.r = type opaque

define %union.t* @foo(%union.t* %chain) nounwind readonly {
entry:
  %tobool = icmp eq %union.t* %chain, null
  br i1 %tobool, label %if.end, label %while.cond.preheader

while.cond.preheader:                             ; preds = %entry
  br label %while.cond

while.cond:                                       ; preds = %while.cond.preheader, %while.cond
  %chain.addr.0 = phi %union.t* [ %0, %while.cond ], [ %chain, %while.cond.preheader ]
  %chain1 = bitcast %union.t* %chain.addr.0 to %union.t**
  %0 = load %union.t*, %union.t** %chain1, align 4, !tbaa !0
  %tobool2 = icmp eq %union.t* %0, null
  br i1 %tobool2, label %if.end.loopexit, label %while.cond

if.end.loopexit:                                  ; preds = %while.cond
  br label %if.end

if.end:                                           ; preds = %if.end.loopexit, %entry
  %chain.addr.1 = phi %union.t* [ null, %entry ], [ %chain.addr.0, %if.end.loopexit ]
  ret %union.t* %chain.addr.1
}

!0 = !{!"any pointer", !1}
!1 = !{!"omnipotent char", !2}
!2 = !{!"Simple C/C++ TBAA"}
