Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/CodeGen/X86/win32-spill-xmm.ll
; RUN: llc -mcpu=generic -mtriple=i686-pc-windows-msvc -mattr=+sse < %s | FileCheck %s | ; RUN: llc -mcpu=generic -mtriple=i686-pc-windows-msvc -mattr=+sse < %s | FileCheck %s | ||||
; Check proper alignment of spilled vector | ; Check proper alignment of spilled vector | ||||
; CHECK-LABEL: spill_ok | ; CHECK-LABEL: spill_ok | ||||
; CHECK: subl $32, %esp | ; CHECK: subl $32, %esp | ||||
; CHECK: movaps %xmm3, (%esp) | ; CHECK: movups %xmm3, (%esp) | ||||
; CHECK: movl $0, 16(%esp) | ; CHECK: movl $0, 16(%esp) | ||||
; CHECK: calll _bar | ; CHECK: calll _bar | ||||
define void @spill_ok(i32, <16 x float> *) { | define void @spill_ok(i32, <16 x float> *) { | ||||
entry: | entry: | ||||
%2 = alloca i32, i32 %0 | %2 = alloca i32, i32 %0 | ||||
%3 = load <16 x float>, <16 x float> * %1, align 64 | %3 = load <16 x float>, <16 x float> * %1, align 64 | ||||
tail call void @bar(<16 x float> %3, i32 0) nounwind | tail call void @bar(<16 x float> %3, i32 0) nounwind | ||||
ret void | ret void | ||||
Show All 25 Lines |