; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6
; RUN: llc < %s -mtriple=x86_64 | FileCheck %s

define void @f(ptr %0, i64 %1) {
; CHECK-LABEL: f:
; CHECK:       # %bb.0: # %BB
; CHECK-NEXT:    subq $40, %rsp
; CHECK-NEXT:    .cfi_def_cfa_offset 48
; CHECK-NEXT:    andl $1, %esi
; CHECK-NEXT:    movaps (%rdi), %xmm0
; CHECK-NEXT:    movaps %xmm0, (%rsp) # 16-byte Spill
; CHECK-NEXT:    movaps %xmm0, {{[0-9]+}}(%rsp)
; CHECK-NEXT:    movl $42, %edi
; CHECK-NEXT:    callq *16(%rsp,%rsi,8)
; CHECK-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
; CHECK-NEXT:    movaps %xmm0, (%rax)
; CHECK-NEXT:    addq $40, %rsp
; CHECK-NEXT:    .cfi_def_cfa_offset 8
; CHECK-NEXT:    retq
BB:
  %fps = load <2 x ptr>, ptr %0
  %fp = extractelement <2 x ptr> %fps, i64 %1
  %p = call ptr %fp(i32 42)
  store <2 x ptr> %fps, ptr %p
  ret void
}
