Mercurial > hg > CbC > CbC_llvm
comparison test/CodeGen/X86/stdarg.ll @ 95:afa8332a0e37 LLVM3.8
LLVM 3.8
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 13 Oct 2015 17:48:58 +0900 |
parents | 95c75e76d11b |
children | 1172e4bd9c6f |
comparison
equal
deleted
inserted
replaced
84:f3e34b893a5f | 95:afa8332a0e37 |
---|---|
1 ; RUN: llc < %s -mtriple=x86_64-linux | FileCheck %s | 1 ; RUN: llc < %s -mtriple=x86_64-linux | FileCheck %s |
2 ; CHECK: testb %al, %al | |
3 | 2 |
4 %struct.__va_list_tag = type { i32, i32, i8*, i8* } | 3 %struct.__va_list_tag = type { i32, i32, i8*, i8* } |
5 | 4 |
6 define void @foo(i32 %x, ...) nounwind { | 5 define void @foo(i32 %x, ...) nounwind { |
7 entry: | 6 entry: |
8 %ap = alloca [1 x %struct.__va_list_tag], align 8; <[1 x %struct.__va_list_tag]*> [#uses=2] | 7 %ap = alloca [1 x %struct.__va_list_tag], align 8; <[1 x %struct.__va_list_tag]*> [#uses=2] |
9 %ap12 = bitcast [1 x %struct.__va_list_tag]* %ap to i8*; <i8*> [#uses=2] | 8 %ap12 = bitcast [1 x %struct.__va_list_tag]* %ap to i8*; <i8*> [#uses=2] |
10 call void @llvm.va_start(i8* %ap12) | 9 call void @llvm.va_start(i8* %ap12) |
11 %ap3 = getelementptr inbounds [1 x %struct.__va_list_tag]* %ap, i64 0, i64 0; <%struct.__va_list_tag*> [#uses=1] | 10 ; CHECK: testb %al, %al |
11 | |
12 ; These test for specific offsets, which is very fragile. Still, the test needs | |
13 ; to ensure that va_list has the correct element types. | |
14 ; | |
15 ; CHECK-DAG: movq {{.*}}, 192(%rsp) | |
16 ; CHECK-DAG: movq {{.*}}, 184(%rsp) | |
17 ; CHECK-DAG: movl {{.*}}, 180(%rsp) | |
18 ; CHECK-DAG: movl {{.*}}, 176(%rsp) | |
19 %ap3 = getelementptr inbounds [1 x %struct.__va_list_tag], [1 x %struct.__va_list_tag]* %ap, i64 0, i64 0; <%struct.__va_list_tag*> [#uses=1] | |
12 call void @bar(%struct.__va_list_tag* %ap3) nounwind | 20 call void @bar(%struct.__va_list_tag* %ap3) nounwind |
13 call void @llvm.va_end(i8* %ap12) | 21 call void @llvm.va_end(i8* %ap12) |
14 ret void | 22 ret void |
15 } | 23 } |
16 | 24 |