@@ -6,37 +6,37 @@ declare i8* @_Znwm() local_unnamed_addr #0
6
6
; Function Attrs: argmemonly nounwind willreturn writeonly
7
7
declare void @llvm.memset.p0i8.i64 (i8* nocapture writeonly , i8 , i64 , i1 immarg) #1
8
8
9
- define void @test1 (i1 %c , i64 %N ) {
9
+ define i8* @test1 (i1 %c , i64 %N ) {
10
10
; CHECK-LABEL: @test1(
11
11
; CHECK-NEXT: entry:
12
12
; CHECK-NEXT: br i1 [[C:%.*]], label [[COND_TRUE_I_I_I:%.*]], label [[COND_END_I_I_I:%.*]]
13
13
; CHECK: cond.true.i.i.i:
14
- ; CHECK-NEXT: ret void
14
+ ; CHECK-NEXT: ret i8* null
15
15
; CHECK: cond.end.i.i.i:
16
16
; CHECK-NEXT: [[ALLOC:%.*]] = tail call noalias nonnull i8* @_Znam() #[[ATTR2:[0-9]+]]
17
17
; CHECK-NEXT: [[ALLOC_BC:%.*]] = bitcast i8* [[ALLOC]] to i64*
18
18
; CHECK-NEXT: tail call void @llvm.memset.p0i8.i64(i8* nonnull align 8 [[ALLOC]], i8 0, i64 [[N:%.*]], i1 false) #[[ATTR3:[0-9]+]]
19
19
; CHECK-NEXT: store i64 0, i64* [[ALLOC_BC]], align 8
20
- ; CHECK-NEXT: ret void
20
+ ; CHECK-NEXT: ret i8* [[ALLOC]]
21
21
;
22
22
entry:
23
23
br i1 %c , label %cond.true.i.i.i , label %cond.end.i.i.i
24
24
25
25
cond.true .i.i.i: ; preds = %entry
26
- ret void
26
+ ret i8* null
27
27
28
28
cond.end.i.i.i: ; preds = %entry
29
29
%alloc = tail call noalias nonnull i8* @_Znam () #2
30
30
%alloc.bc = bitcast i8* %alloc to i64*
31
31
tail call void @llvm.memset.p0i8.i64 (i8* nonnull align 8 %alloc , i8 0 , i64 %N , i1 false ) #3
32
32
store i64 0 , i64* %alloc.bc , align 8
33
- ret void
33
+ ret i8* %alloc
34
34
}
35
35
36
36
declare i8* @_Znam ()
37
37
38
38
39
- define void @test2 (i1 %c , i64 %N ) {
39
+ define i8* @test2 (i1 %c , i64 %N ) {
40
40
; CHECK-LABEL: @test2(
41
41
; CHECK-NEXT: entry:
42
42
; CHECK-NEXT: br i1 [[C:%.*]], label [[CLEANUP_CONT104:%.*]], label [[IF_THEN:%.*]]
@@ -46,9 +46,9 @@ define void @test2(i1 %c, i64 %N) {
46
46
; CHECK-NEXT: [[ALLOC_BC:%.*]] = bitcast i8* [[ALLOC]] to i64*
47
47
; CHECK-NEXT: store i64 0, i64* [[ALLOC_BC]], align 8
48
48
; CHECK-NEXT: call void @llvm.memset.p0i8.i64(i8* nonnull align 8 [[ALLOC]], i8 0, i64 [[MUL]], i1 false) #[[ATTR3]]
49
- ; CHECK-NEXT: ret void
49
+ ; CHECK-NEXT: ret i8* [[ALLOC]]
50
50
; CHECK: cleanup.cont104:
51
- ; CHECK-NEXT: ret void
51
+ ; CHECK-NEXT: ret i8* null
52
52
;
53
53
entry:
54
54
br i1 %c , label %cleanup.cont104 , label %if.then
@@ -59,10 +59,10 @@ if.then: ; preds = %entry
59
59
%alloc.bc = bitcast i8* %alloc to i64*
60
60
store i64 0 , i64* %alloc.bc , align 8
61
61
call void @llvm.memset.p0i8.i64 (i8* nonnull align 8 %alloc , i8 0 , i64 %mul , i1 false ) #3
62
- ret void
62
+ ret i8* %alloc
63
63
64
64
cleanup.cont104: ; preds = %entry
65
- ret void
65
+ ret i8* null
66
66
}
67
67
68
68
attributes #0 = { "use-soft-float" ="false" }
0 commit comments