1
1
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2
- ; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck --check-prefixes=CHECK,NODUPRET %s
3
- ; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -simplifycfg-dup-ret -S | FileCheck --check-prefixes=CHECK,DUPRET %s
2
+ ; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck --check-prefixes=CHECK %s
4
3
; RUN: opt < %s -debugify -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck --check-prefixes=DBGINFO %s
5
4
6
5
define i32 @test1 (i1 %C ) {
@@ -24,12 +23,9 @@ F: ; preds = %entry
24
23
}
25
24
26
25
define void @test2 (i1 %C ) {
27
- ; NODUPRET-LABEL: @test2(
28
- ; NODUPRET-NEXT: common.ret:
29
- ; NODUPRET-NEXT: ret void
30
- ;
31
- ; DUPRET-LABEL: @test2(
32
- ; DUPRET-NEXT: ret void
26
+ ; CHECK-LABEL: @test2(
27
+ ; CHECK-NEXT: common.ret:
28
+ ; CHECK-NEXT: ret void
33
29
;
34
30
; DBGINFO-LABEL: @test2(
35
31
; DBGINFO-NEXT: common.ret:
@@ -48,32 +44,20 @@ declare void @sideeffect1()
48
44
declare void @sideeffect2 ()
49
45
50
46
define i32 @test3 (i1 %C0 , i1 %C1 , i32 %v0 , i32 %v1 , i32 %v2 ) {
51
- ; NODUPRET-LABEL: @test3(
52
- ; NODUPRET-NEXT: entry:
53
- ; NODUPRET-NEXT: call void @sideeffect0()
54
- ; NODUPRET-NEXT: br i1 [[C0:%.*]], label [[T:%.*]], label [[F:%.*]]
55
- ; NODUPRET: end:
56
- ; NODUPRET-NEXT: [[R:%.*]] = phi i32 [ [[V2:%.*]], [[F]] ], [ [[SPEC_SELECT:%.*]], [[T]] ]
57
- ; NODUPRET-NEXT: ret i32 [[R]]
58
- ; NODUPRET: T:
59
- ; NODUPRET-NEXT: call void @sideeffect1()
60
- ; NODUPRET-NEXT: [[SPEC_SELECT]] = select i1 [[C1:%.*]], i32 [[V0:%.*]], i32 [[V1:%.*]]
61
- ; NODUPRET-NEXT: br label [[END:%.*]]
62
- ; NODUPRET: F:
63
- ; NODUPRET-NEXT: call void @sideeffect2()
64
- ; NODUPRET-NEXT: br label [[END]]
65
- ;
66
- ; DUPRET-LABEL: @test3(
67
- ; DUPRET-NEXT: entry:
68
- ; DUPRET-NEXT: call void @sideeffect0()
69
- ; DUPRET-NEXT: br i1 [[C0:%.*]], label [[T:%.*]], label [[F:%.*]]
70
- ; DUPRET: T:
71
- ; DUPRET-NEXT: call void @sideeffect1()
72
- ; DUPRET-NEXT: [[RETVAL:%.*]] = select i1 [[C1:%.*]], i32 [[V0:%.*]], i32 [[V1:%.*]]
73
- ; DUPRET-NEXT: ret i32 [[RETVAL]]
74
- ; DUPRET: F:
75
- ; DUPRET-NEXT: call void @sideeffect2()
76
- ; DUPRET-NEXT: ret i32 [[V2:%.*]]
47
+ ; CHECK-LABEL: @test3(
48
+ ; CHECK-NEXT: entry:
49
+ ; CHECK-NEXT: call void @sideeffect0()
50
+ ; CHECK-NEXT: br i1 [[C0:%.*]], label [[T:%.*]], label [[F:%.*]]
51
+ ; CHECK: end:
52
+ ; CHECK-NEXT: [[R:%.*]] = phi i32 [ [[V2:%.*]], [[F]] ], [ [[SPEC_SELECT:%.*]], [[T]] ]
53
+ ; CHECK-NEXT: ret i32 [[R]]
54
+ ; CHECK: T:
55
+ ; CHECK-NEXT: call void @sideeffect1()
56
+ ; CHECK-NEXT: [[SPEC_SELECT]] = select i1 [[C1:%.*]], i32 [[V0:%.*]], i32 [[V1:%.*]]
57
+ ; CHECK-NEXT: br label [[END:%.*]]
58
+ ; CHECK: F:
59
+ ; CHECK-NEXT: call void @sideeffect2()
60
+ ; CHECK-NEXT: br label [[END]]
77
61
;
78
62
; DBGINFO-LABEL: @test3(
79
63
; DBGINFO-NEXT: entry:
0 commit comments