Skip to content

Commit f55daa8

Browse files
committed
[InstCombine] Add pre-commit tests. NFC.
1 parent fe56c8f commit f55daa8

File tree

1 file changed

+39
-11
lines changed

1 file changed

+39
-11
lines changed
Lines changed: 39 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
12
; RUN: opt < %s -passes=instcombine -S | FileCheck %s
23

34
%struct.__va_list = type { ptr, ptr, ptr, i32, i32 }
45

5-
declare void @llvm.lifetime.start.p0(i64, ptr nocapture)
6-
declare void @llvm.lifetime.end.p0(i64, ptr nocapture)
7-
declare void @llvm.va_start(ptr)
8-
declare void @llvm.va_end(ptr)
9-
declare void @llvm.va_copy(ptr, ptr)
10-
11-
define i32 @func(ptr nocapture readnone %fmt, ...) {
12-
; CHECK-LABEL: @func(
13-
; CHECK: entry:
14-
; CHECK-NEXT: ret i32 0
6+
define void @func(ptr nocapture readnone %fmt, ...) {
7+
; CHECK-LABEL: define void @func(
8+
; CHECK-SAME: ptr readnone captures(none) [[FMT:%.*]], ...) {
9+
; CHECK-NEXT: [[ENTRY:.*:]]
10+
; CHECK-NEXT: ret void
11+
;
1512
entry:
1613
%va0 = alloca %struct.__va_list, align 8
1714
%va1 = alloca %struct.__va_list, align 8
@@ -23,6 +20,37 @@ entry:
2320
call void @llvm.lifetime.end.p0(i64 32, ptr %va1)
2421
call void @llvm.va_end(ptr %va0)
2522
call void @llvm.lifetime.end.p0(i64 32, ptr %va0)
26-
ret i32 0
23+
ret void
2724
}
2825

26+
declare void @callee(ptr)
27+
28+
define void @func_destroy_copy_src(ptr nocapture readnone %fmt, ...) {
29+
; CHECK-LABEL: define void @func_destroy_copy_src(
30+
; CHECK-SAME: ptr readnone captures(none) [[FMT:%.*]], ...) {
31+
; CHECK-NEXT: [[ENTRY:.*:]]
32+
; CHECK-NEXT: [[VA0:%.*]] = alloca [[STRUCT___VA_LIST:%.*]], align 8
33+
; CHECK-NEXT: [[VA1:%.*]] = alloca [[STRUCT___VA_LIST]], align 8
34+
; CHECK-NEXT: call void @llvm.lifetime.start.p0(i64 32, ptr nonnull [[VA0]])
35+
; CHECK-NEXT: call void @llvm.lifetime.start.p0(i64 32, ptr nonnull [[VA1]])
36+
; CHECK-NEXT: call void @llvm.va_copy.p0(ptr nonnull [[VA1]], ptr nonnull [[VA0]])
37+
; CHECK-NEXT: call void @callee(ptr nonnull [[VA1]])
38+
; CHECK-NEXT: call void @llvm.va_end.p0(ptr [[VA1]])
39+
; CHECK-NEXT: call void @llvm.lifetime.end.p0(i64 32, ptr nonnull [[VA1]])
40+
; CHECK-NEXT: call void @llvm.lifetime.end.p0(i64 32, ptr nonnull [[VA0]])
41+
; CHECK-NEXT: ret void
42+
;
43+
entry:
44+
%va0 = alloca %struct.__va_list, align 8
45+
%va1 = alloca %struct.__va_list, align 8
46+
call void @llvm.lifetime.start.p0(i64 32, ptr %va0)
47+
call void @llvm.lifetime.start.p0(i64 32, ptr %va1)
48+
call void @llvm.va_start(ptr %va0)
49+
call void @llvm.va_copy(ptr %va1, ptr %va0)
50+
call void @llvm.va_end(ptr %va0)
51+
call void @callee(ptr %va1)
52+
call void @llvm.va_end(ptr %va1)
53+
call void @llvm.lifetime.end.p0(i64 32, ptr %va1)
54+
call void @llvm.lifetime.end.p0(i64 32, ptr %va0)
55+
ret void
56+
}

0 commit comments

Comments
 (0)