Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: test/Transforms/NaCl/expand-varargs-struct.ll

Issue 1151093004: Changes from 3.7 merge to files not in upstream (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-llvm.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 ; RUN: opt < %s -expand-varargs -S | FileCheck %s 1 ; RUN: opt < %s -expand-varargs -S | FileCheck %s
2 2
3 declare i32 @varargs_func(i32 %arg, ...) 3 declare i32 @varargs_func(i32 %arg, ...)
4 4
5 5
6 %MyStruct = type { i64, i64 } 6 %MyStruct = type { i64, i64 }
7 7
8 ; Test passing a struct by value. 8 ; Test passing a struct by value.
9 define i32 @varargs_call_struct(%MyStruct* %ptr) { 9 define i32 @varargs_call_struct(%MyStruct* %ptr) {
10 %result = call i32 (i32, ...)* @varargs_func(i32 111, i64 222, %MyStruct* byva l %ptr) 10 %result = call i32 (i32, ...) @varargs_func(i32 111, i64 222, %MyStruct* byval %ptr)
11 ret i32 %result 11 ret i32 %result
12 } 12 }
13 ; CHECK-LABEL: @varargs_call_struct( 13 ; CHECK-LABEL: @varargs_call_struct(
14 ; CHECK: %vararg_ptr1 = getelementptr inbounds { i64, %MyStruct }* %vararg_buffe r, i32 0, i32 1 14 ; CHECK: %vararg_ptr1 = getelementptr inbounds { i64, %MyStruct }, { i64, %MyStr uct }* %vararg_buffer, i32 0, i32 1
15 ; CHECK: %1 = bitcast %MyStruct* %vararg_ptr1 to i8* 15 ; CHECK: %1 = bitcast %MyStruct* %vararg_ptr1 to i8*
16 ; CHECK: %2 = bitcast %MyStruct* %ptr to i8* 16 ; CHECK: %2 = bitcast %MyStruct* %ptr to i8*
17 ; CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* %2, i64 16, i32 1, i1 false) 17 ; CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* %2, i64 16, i32 1, i1 false)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698