; RUN: llc < %s -mcpu=cortex-a9 -join-liveintervals=0 -verify-machineinstrs
; PR11765
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:64:128-a0:0:64-n32-S64"
target triple = "armv7-none-linux-gnueabi"

; This test case exercises the MachineCopyPropagation pass by disabling the
; RegisterCoalescer.

define arm_aapcs_vfpcc void @foo(i8* %arg) nounwind uwtable align 2 {
bb:
  br i1 undef, label %bb1, label %bb2

bb1:                                              ; preds = %bb
  unreachable

bb2:                                              ; preds = %bb
  br i1 undef, label %bb92, label %bb3

bb3:                                              ; preds = %bb2
  %tmp = or <4 x i32> undef, undef
  %tmp4 = bitcast <4 x i32> %tmp to <4 x float>
  %tmp5 = fsub <4 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %tmp4
  %tmp6 = bitcast <4 x i32> zeroinitializer to <4 x float>
  %tmp7 = fmul <4 x float> %tmp6, <float 1.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00>
  %tmp8 = bitcast <4 x float> %tmp7 to <2 x i64>
  %tmp9 = shufflevector <2 x i64> %tmp8, <2 x i64> undef, <1 x i32> zeroinitializer
  %tmp10 = bitcast <1 x i64> %tmp9 to <2 x float>
  %tmp11 = shufflevector <2 x i64> %tmp8, <2 x i64> undef, <1 x i32> <i32 1>
  %tmp12 = bitcast <1 x i64> %tmp11 to <2 x float>
  %tmp13 = shufflevector <2 x float> %tmp10, <2 x float> %tmp12, <2 x i32> <i32 0, i32 2>
  %tmp14 = shufflevector <2 x float> %tmp10, <2 x float> undef, <2 x i32> <i32 1, i32 2>
  %tmp15 = bitcast <2 x float> %tmp14 to <1 x i64>
  %tmp16 = bitcast <4 x i32> zeroinitializer to <2 x i64>
  %tmp17 = shufflevector <2 x i64> %tmp16, <2 x i64> undef, <1 x i32> zeroinitializer
  %tmp18 = bitcast <1 x i64> %tmp17 to <2 x i32>
  %tmp19 = and <2 x i32> %tmp18, <i32 -1, i32 0>
  %tmp20 = bitcast <2 x float> %tmp13 to <2 x i32>
  %tmp21 = and <2 x i32> %tmp20, <i32 0, i32 -1>
  %tmp22 = or <2 x i32> %tmp19, %tmp21
  %tmp23 = bitcast <2 x i32> %tmp22 to <1 x i64>
  %tmp24 = shufflevector <1 x i64> %tmp23, <1 x i64> undef, <2 x i32> <i32 0, i32 1>
  %tmp25 = bitcast <2 x i64> %tmp24 to <4 x float>
  %tmp26 = shufflevector <2 x i64> %tmp16, <2 x i64> undef, <1 x i32> <i32 1>
  %tmp27 = bitcast <1 x i64> %tmp26 to <2 x i32>
  %tmp28 = and <2 x i32> %tmp27, <i32 -1, i32 0>
  %tmp29 = and <2 x i32> undef, <i32 0, i32 -1>
  %tmp30 = or <2 x i32> %tmp28, %tmp29
  %tmp31 = bitcast <2 x i32> %tmp30 to <1 x i64>
  %tmp32 = insertelement <4 x float> %tmp25, float 0.000000e+00, i32 3
  %tmp33 = fmul <4 x float> undef, <float 1.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00>
  %tmp34 = fadd <4 x float> %tmp33, %tmp32
  %tmp35 = fmul <4 x float> %tmp33, zeroinitializer
  %tmp36 = fadd <4 x float> %tmp35, zeroinitializer
  %tmp37 = fadd <4 x float> %tmp35, zeroinitializer
  %tmp38 = bitcast <4 x float> %tmp34 to <2 x i64>
  %tmp39 = shufflevector <2 x i64> %tmp38, <2 x i64> undef, <1 x i32> zeroinitializer
  %tmp40 = bitcast <1 x i64> %tmp39 to <2 x float>
  %tmp41 = shufflevector <2 x float> %tmp40, <2 x float> undef, <4 x i32> <i32 1, i32 1, i32 1, i32 1>
  %tmp42 = load <4 x float>, <4 x float>* null, align 16
  %tmp43 = fmul <4 x float> %tmp42, %tmp41
  %tmp44 = load <4 x float>, <4 x float>* undef, align 16
  %tmp45 = fadd <4 x float> undef, %tmp43
  %tmp46 = fadd <4 x float> undef, %tmp45
  %tmp47 = bitcast <4 x float> %tmp36 to <2 x i64>
  %tmp48 = shufflevector <2 x i64> %tmp47, <2 x i64> undef, <1 x i32> zeroinitializer
  %tmp49 = bitcast <1 x i64> %tmp48 to <2 x float>
  %tmp50 = shufflevector <2 x float> %tmp49, <2 x float> undef, <4 x i32> <i32 1, i32 1, i32 1, i32 1>
  %tmp51 = fmul <4 x float> %tmp42, %tmp50
  %tmp52 = fmul <4 x float> %tmp44, undef
  %tmp53 = fadd <4 x float> %tmp52, %tmp51
  %tmp54 = fadd <4 x float> undef, %tmp53
  %tmp55 = bitcast <4 x float> %tmp37 to <2 x i64>
  %tmp56 = shufflevector <2 x i64> %tmp55, <2 x i64> undef, <1 x i32> <i32 1>
  %tmp57 = bitcast <1 x i64> %tmp56 to <2 x float>
  %tmp58 = shufflevector <2 x float> %tmp57, <2 x float> undef, <4 x i32> zeroinitializer
  %tmp59 = fmul <4 x float> undef, %tmp58
  %tmp60 = fadd <4 x float> %tmp59, undef
  %tmp61 = fadd <4 x float> %tmp60, zeroinitializer
  %tmp62 = load void (i8*, i8*)*, void (i8*, i8*)** undef, align 4
  call arm_aapcs_vfpcc  void %tmp62(i8* sret(i8) undef, i8* undef) nounwind
  %tmp63 = bitcast <4 x float> %tmp46 to i128
  %tmp64 = bitcast <4 x float> %tmp54 to i128
  %tmp65 = bitcast <4 x float> %tmp61 to i128
  %tmp66 = lshr i128 %tmp63, 64
  %tmp67 = trunc i128 %tmp66 to i64
  %tmp68 = insertvalue [8 x i64] undef, i64 %tmp67, 1
  %tmp69 = insertvalue [8 x i64] %tmp68, i64 undef, 2
  %tmp70 = lshr i128 %tmp64, 64
  %tmp71 = trunc i128 %tmp70 to i64
  %tmp72 = insertvalue [8 x i64] %tmp69, i64 %tmp71, 3
  %tmp73 = trunc i128 %tmp65 to i64
  %tmp74 = insertvalue [8 x i64] %tmp72, i64 %tmp73, 4
  %tmp75 = insertvalue [8 x i64] %tmp74, i64 undef, 5
  %tmp76 = insertvalue [8 x i64] %tmp75, i64 undef, 6
  %tmp77 = insertvalue [8 x i64] %tmp76, i64 undef, 7
  call arm_aapcs_vfpcc  void @bar(i8* sret(i8) null, [8 x i64] %tmp77) nounwind
  %tmp78 = call arm_aapcs_vfpcc  i8* null(i8* null) nounwind
  %tmp79 = bitcast i8* %tmp78 to i512*
  %tmp80 = load i512, i512* %tmp79, align 16
  %tmp81 = lshr i512 %tmp80, 128
  %tmp82 = trunc i512 %tmp80 to i128
  %tmp83 = trunc i512 %tmp81 to i128
  %tmp84 = bitcast i128 %tmp83 to <4 x float>
  %tmp85 = bitcast <4 x float> %tmp84 to <2 x i64>
  %tmp86 = shufflevector <2 x i64> %tmp85, <2 x i64> undef, <1 x i32> <i32 1>
  %tmp87 = bitcast <1 x i64> %tmp86 to <2 x float>
  %tmp88 = shufflevector <2 x float> %tmp87, <2 x float> undef, <4 x i32> <i32 1, i32 1, i32 1, i32 1>
  %tmp89 = fmul <4 x float> undef, %tmp88
  %tmp90 = fadd <4 x float> %tmp89, undef
  %tmp91 = fadd <4 x float> undef, %tmp90
  store <4 x float> %tmp91, <4 x float>* undef, align 16
  unreachable

bb92:                                             ; preds = %bb2
  ret void
}

declare arm_aapcs_vfpcc void @bar(i8* noalias nocapture sret(i8), [8 x i64]) nounwind uwtable inlinehint
