Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/CodeGen/X86/win32-spill-xmm.ll
Show All 14 Lines | entry: | ||||
ret void | ret void | ||||
} | } | ||||
declare void @bar(<16 x float> %a, i32 %b) | declare void @bar(<16 x float> %a, i32 %b) | ||||
; Check that proper alignment of spilled vector does not affect vargs | ; Check that proper alignment of spilled vector does not affect vargs | ||||
; CHECK-LABEL: vargs_not_affected | ; CHECK-LABEL: vargs_not_affected | ||||
; CHECK: movl 28(%ebp), %eax | ; CHECK: movl 28(%esp), %eax | ||||
define i32 @vargs_not_affected(<4 x float> %v, i8* %f, ...) { | define i32 @vargs_not_affected(<4 x float> %v, i8* %f, ...) { | ||||
entry: | entry: | ||||
%ap = alloca i8*, align 4 | %ap = alloca i8*, align 4 | ||||
%0 = bitcast i8** %ap to i8* | %0 = bitcast i8** %ap to i8* | ||||
call void @llvm.va_start(i8* %0) | call void @llvm.va_start(i8* %0) | ||||
%argp.cur = load i8*, i8** %ap, align 4 | %argp.cur = load i8*, i8** %ap, align 4 | ||||
%argp.next = getelementptr inbounds i8, i8* %argp.cur, i32 4 | %argp.next = getelementptr inbounds i8, i8* %argp.cur, i32 4 | ||||
store i8* %argp.next, i8** %ap, align 4 | store i8* %argp.next, i8** %ap, align 4 | ||||
Show All 9 Lines |