annotate llvm/test/Feature/varargs.ll @ 252:1f2b6ac9f198 llvm-original

LLVM16-1
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 18 Aug 2023 09:04:13 +0900
parents 1d019706d866
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 ; RUN: llvm-as < %s | llvm-dis > %t1.ll
anatofuz
parents:
diff changeset
2 ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
anatofuz
parents:
diff changeset
3 ; RUN: diff %t1.ll %t2.ll
anatofuz
parents:
diff changeset
4
anatofuz
parents:
diff changeset
5 ; Demonstrate all of the variable argument handling intrinsic functions plus
anatofuz
parents:
diff changeset
6 ; the va_arg instruction.
anatofuz
parents:
diff changeset
7
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
8 declare void @llvm.va_start(ptr)
150
anatofuz
parents:
diff changeset
9
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
10 declare void @llvm.va_copy(ptr, ptr)
150
anatofuz
parents:
diff changeset
11
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
12 declare void @llvm.va_end(ptr)
150
anatofuz
parents:
diff changeset
13
anatofuz
parents:
diff changeset
14 define i32 @test(i32 %X, ...) {
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
15 %ap = alloca ptr ; <ptr> [#uses=4]
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
16 call void @llvm.va_start( ptr %ap )
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
17 %tmp = va_arg ptr %ap, i32 ; <i32> [#uses=1]
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
18 %aq = alloca ptr ; <ptr> [#uses=2]
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
19 call void @llvm.va_copy( ptr %aq, ptr %ap )
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
20 call void @llvm.va_end( ptr %aq )
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
21 call void @llvm.va_end( ptr %ap )
150
anatofuz
parents:
diff changeset
22 ret i32 %tmp
anatofuz
parents:
diff changeset
23 }
anatofuz
parents:
diff changeset
24