; RUN: llc -stack-symbol-ordering=0 %s -o - -mattr=-avx -mtriple=x86_64-unknown-linux-gnu | FileCheck %s --check-prefix=SSE
; RUN: llc -stack-symbol-ordering=0 %s -o - -mattr=+avx -mtriple=x86_64-unknown-linux-gnu | FileCheck %s --check-prefix=AVX
; PR4891
; PR5626

; This load should be before the call, not after.

; SSE: movsd     compl+128(%rip), %xmm0
; SSE: movaps  %xmm0, (%rsp)
; SSE: callq   killcommon

; AVX: vmovsd     compl+128(%rip), %xmm0
; AVX: vmovaps  %xmm0, (%rsp)
; AVX: callq   killcommon

@compl = linkonce dso_local global [20 x i64] zeroinitializer, align 64 ; <[20 x i64]*> [#uses=1]

declare void @killcommon(i32* noalias)

define dso_local void @reset(<2 x float>* noalias %garbage1) {
"file complex.c, line 27, bb1":
  %changed = alloca i32, align 4                  ; <i32*> [#uses=3]
  br label %"file complex.c, line 27, bb13"

"file complex.c, line 27, bb13":                  ; preds = %"file complex.c, line 27, bb1"
  store i32 0, i32* %changed, align 4
  %r2 = getelementptr float, float* bitcast ([20 x i64]* @compl to float*), i64 32 ; <float*> [#uses=1]
  %r3 = bitcast float* %r2 to <2 x float>*        ; <<2 x float>*> [#uses=1]
  %r4 = load <2 x float>, <2 x float>* %r3, align 4            ; <<2 x float>> [#uses=1]
  call void @killcommon(i32* %changed)
  br label %"file complex.c, line 34, bb4"

"file complex.c, line 34, bb4":                   ; preds = %"file complex.c, line 27, bb13"
  %r5 = load i32, i32* %changed, align 4               ; <i32> [#uses=1]
  %r6 = icmp eq i32 %r5, 0                        ; <i1> [#uses=1]
  %r7 = zext i1 %r6 to i32                        ; <i32> [#uses=1]
  %r8 = icmp ne i32 %r7, 0                        ; <i1> [#uses=1]
  br i1 %r8, label %"file complex.c, line 34, bb7", label %"file complex.c, line 27, bb5"

"file complex.c, line 27, bb5":                   ; preds = %"file complex.c, line 34, bb4"
  br label %"file complex.c, line 35, bb6"

"file complex.c, line 35, bb6":                   ; preds = %"file complex.c, line 27, bb5"
  %r11 = ptrtoint <2 x float>* %garbage1 to i64   ; <i64> [#uses=1]
  %r12 = inttoptr i64 %r11 to <2 x float>*        ; <<2 x float>*> [#uses=1]
  store <2 x float> %r4, <2 x float>* %r12, align 4
  br label %"file complex.c, line 34, bb7"

"file complex.c, line 34, bb7":                   ; preds = %"file complex.c, line 35, bb6", %"file complex.c, line 34, bb4"
  ret void
}
