11; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
22; RUN: opt < %s -passes=ipsccp -S | FileCheck %s
33
4- define internal i32 @testf (i1 %c , i1 %arg ) {
5- ; CHECK-LABEL: define internal range(i32 10, 12) i32 @testf(
6- ; CHECK-SAME: i1 [[C:%.*]], i1 [[ARG:%.*]]) {
4+ ;
5+ define internal i32 @testf (i1 %c ) {
6+ ; CHECK-LABEL: define internal i32 @testf(
7+ ; CHECK-SAME: i1 [[C:%.*]]) {
78; CHECK-NEXT: [[ENTRY:.*:]]
89; CHECK-NEXT: br i1 [[C]], label %[[IF_COND:.*]], label %[[IF_END:.*]]
910; CHECK: [[IF_COND]]:
10- ; CHECK-NEXT: br i1 [[ARG]], label %[[IF_THEN:.*]], label %[[IF_END]]
11- ; CHECK: [[IF_THEN]]:
12- ; CHECK-NEXT: ret i32 11
11+ ; CHECK-NEXT: unreachable
1312; CHECK: [[IF_END]]:
14- ; CHECK-NEXT: ret i32 10
13+ ; CHECK-NEXT: ret i32 poison
1514;
1615entry:
1716 br i1 %c , label %if.cond , label %if.end
1817
1918if.cond:
20- br i1 %arg , label %if.then , label %if.end
19+ br i1 poison , label %if.then , label %if.end
2120
2221if.then: ; preds = %entry, %if.then
2322 ret i32 11
@@ -27,25 +26,22 @@ if.end: ; preds = %if.then1, %entry
2726}
2827
2928;
30- define internal i32 @test1 (i1 %c , i1 %arg ) {
31- ; CHECK-LABEL: define internal range(i32 0, 100) i32 @test1(
32- ; CHECK-SAME: i1 [[C:%.*]], i1 [[ARG:%.*]] ) {
29+ define internal i32 @test1 (i1 %c ) {
30+ ; CHECK-LABEL: define internal i32 @test1(
31+ ; CHECK-SAME: i1 [[C:%.*]]) {
3332; CHECK-NEXT: [[ENTRY:.*:]]
3433; CHECK-NEXT: br label %[[IF_THEN:.*]]
3534; CHECK: [[IF_THEN]]:
36- ; CHECK-NEXT: [[CALL:%.*]] = call i32 @testf(i1 [[C]], i1 [[ARG]])
37- ; CHECK-NEXT: [[RES:%.*]] = icmp eq i32 [[CALL]], 10
38- ; CHECK-NEXT: br i1 [[RES]], label %[[RET1:.*]], label %[[RET2:.*]]
35+ ; CHECK-NEXT: [[CALL:%.*]] = call i32 @testf(i1 [[C]])
36+ ; CHECK-NEXT: br label %[[RET1:.*]]
3937; CHECK: [[RET1]]:
40- ; CHECK-NEXT: ret i32 99
41- ; CHECK: [[RET2]]:
42- ; CHECK-NEXT: ret i32 0
38+ ; CHECK-NEXT: ret i32 poison
4339;
4440entry:
4541 br label %if.then
4642
4743if.then: ; preds = %entry, %if.then
48- %call = call i32 @testf (i1 %c , i1 %arg )
44+ %call = call i32 @testf (i1 %c )
4945 %res = icmp eq i32 %call , 10
5046 br i1 %res , label %ret1 , label %ret2
5147
@@ -61,7 +57,7 @@ define i32 @main(i1 %c) {
6157; CHECK-LABEL: define i32 @main(
6258; CHECK-SAME: i1 [[C:%.*]]) {
6359; CHECK-NEXT: [[RES:%.*]] = call i32 @test1(i1 [[C]])
64- ; CHECK-NEXT: ret i32 [[RES]]
60+ ; CHECK-NEXT: ret i32 99
6561;
6662 %res = call i32 @test1 (i1 %c )
6763 ret i32 %res
0 commit comments