blob: 3f0649cd9ae07eed431bc76bc78563c9507939a4 [file] [edit]
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6
; RUN: llc < %s -mtriple=x86_64-windows-gnu -verify-machineinstrs -mcpu=corei7 -mattr=-cx16 | FileCheck %s
define void @call_load(ptr %dst, ptr %src) nounwind {
; CHECK-LABEL: call_load:
; CHECK: # %bb.0: # %entry
; CHECK-NEXT: pushq %rsi
; CHECK-NEXT: subq $32, %rsp
; CHECK-NEXT: movq %rcx, %rsi
; CHECK-NEXT: movq %rdx, %rcx
; CHECK-NEXT: movl $5, %edx
; CHECK-NEXT: callq __atomic_load_16
; CHECK-NEXT: movaps %xmm0, (%rsi)
; CHECK-NEXT: addq $32, %rsp
; CHECK-NEXT: popq %rsi
; CHECK-NEXT: retq
entry:
%0 = load atomic i128, ptr %src seq_cst, align 16
store i128 %0, ptr %dst, align 16
ret void
}
define void @call_store(ptr %dst, ptr %src) nounwind {
; CHECK-LABEL: call_store:
; CHECK: # %bb.0: # %entry
; CHECK-NEXT: subq $56, %rsp
; CHECK-NEXT: movaps (%rdx), %xmm0
; CHECK-NEXT: movaps %xmm0, {{[0-9]+}}(%rsp)
; CHECK-NEXT: leaq {{[0-9]+}}(%rsp), %rdx
; CHECK-NEXT: movl $5, %r8d
; CHECK-NEXT: callq __atomic_store_16
; CHECK-NEXT: addq $56, %rsp
; CHECK-NEXT: retq
entry:
%0 = load i128, ptr %src, align 16
store atomic i128 %0, ptr %dst seq_cst, align 16
ret void
}