| ; 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 |
| } |