brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 6db1725 Raw
60 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=i686-pc-win32 -mcpu=corei7 | FileCheck %s --check-prefix=X863; RUN: llc < %s -mtriple=x86_64-pc-win32 -mcpu=corei7 | FileCheck %s --check-prefix=X644 5define void @load_store(ptr %in) {6; X86-LABEL: load_store:7; X86:       # %bb.0: # %entry8; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax9; X86-NEXT:    movq {{.*#+}} xmm0 = mem[0],zero10; X86-NEXT:    paddw %xmm0, %xmm011; X86-NEXT:    movq %xmm0, (%eax)12; X86-NEXT:    retl13;14; X64-LABEL: load_store:15; X64:       # %bb.0: # %entry16; X64-NEXT:    movq {{.*#+}} xmm0 = mem[0],zero17; X64-NEXT:    paddw %xmm0, %xmm018; X64-NEXT:    movq %xmm0, (%rcx)19; X64-NEXT:    retq20entry:21  %A27 = load <4 x i16>, ptr %in, align 422  %A28 = add <4 x i16> %A27, %A2723  store <4 x i16> %A28, ptr %in, align 424  ret void25}26 27; Make sure that we store a 64bit value, even on 32bit systems.28define void @store_64(ptr %ptr) {29; X86-LABEL: store_64:30; X86:       # %bb.0: # %BB31; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax32; X86-NEXT:    xorps %xmm0, %xmm033; X86-NEXT:    movsd %xmm0, (%eax)34; X86-NEXT:    retl35;36; X64-LABEL: store_64:37; X64:       # %bb.0: # %BB38; X64-NEXT:    movq $0, (%rcx)39; X64-NEXT:    retq40BB:41  store <2 x i32> zeroinitializer, ptr %ptr42  ret void43}44 45define <2 x i32> @load_64(ptr %ptr) {46; X86-LABEL: load_64:47; X86:       # %bb.0: # %BB48; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax49; X86-NEXT:    movsd {{.*#+}} xmm0 = mem[0],zero50; X86-NEXT:    retl51;52; X64-LABEL: load_64:53; X64:       # %bb.0: # %BB54; X64-NEXT:    movsd {{.*#+}} xmm0 = mem[0],zero55; X64-NEXT:    retq56BB:57  %t = load <2 x i32>, ptr %ptr58  ret <2 x i32> %t59}60