@@ -2167,11 +2167,9 @@ define i8 @test_trunc_and_1(i8 %a) {
21672167; CHECK-NEXT: [[CAST:%.*]] = trunc i8 [[A:%.*]] to i1
21682168; CHECK-NEXT: br i1 [[CAST]], label [[IF_THEN:%.*]], label [[IF_ELSE:%.*]]
21692169; CHECK: if.then:
2170- ; CHECK-NEXT: [[B:%.*]] = and i8 [[A]], 1
2171- ; CHECK-NEXT: ret i8 [[B]]
2170+ ; CHECK-NEXT: ret i8 1
21722171; CHECK: if.else:
2173- ; CHECK-NEXT: [[C:%.*]] = and i8 [[A]], 1
2174- ; CHECK-NEXT: ret i8 [[C]]
2172+ ; CHECK-NEXT: ret i8 0
21752173;
21762174entry:
21772175 %cast = trunc i8 %a to i1
@@ -2192,11 +2190,9 @@ define i8 @test_not_trunc_and_1(i8 %a) {
21922190; CHECK-NEXT: [[CAST:%.*]] = trunc i8 [[A:%.*]] to i1
21932191; CHECK-NEXT: br i1 [[CAST]], label [[IF_ELSE:%.*]], label [[IF_THEN:%.*]]
21942192; CHECK: if.then:
2195- ; CHECK-NEXT: [[B:%.*]] = and i8 [[A]], 1
2196- ; CHECK-NEXT: ret i8 [[B]]
2193+ ; CHECK-NEXT: ret i8 0
21972194; CHECK: if.else:
2198- ; CHECK-NEXT: [[C:%.*]] = and i8 [[A]], 1
2199- ; CHECK-NEXT: ret i8 [[C]]
2195+ ; CHECK-NEXT: ret i8 1
22002196;
22012197entry:
22022198 %cast = trunc i8 %a to i1
@@ -2243,11 +2239,9 @@ define i8 @test_trunc_nuw_and_1(i8 %a) {
22432239; CHECK-NEXT: [[CAST:%.*]] = trunc nuw i8 [[A:%.*]] to i1
22442240; CHECK-NEXT: br i1 [[CAST]], label [[IF_ELSE:%.*]], label [[IF_THEN:%.*]]
22452241; CHECK: if.then:
2246- ; CHECK-NEXT: [[B:%.*]] = and i8 [[A]], 1
2247- ; CHECK-NEXT: ret i8 [[B]]
2242+ ; CHECK-NEXT: ret i8 0
22482243; CHECK: if.else:
2249- ; CHECK-NEXT: [[C:%.*]] = and i8 [[A]], 1
2250- ; CHECK-NEXT: ret i8 [[C]]
2244+ ; CHECK-NEXT: ret i8 1
22512245;
22522246entry:
22532247 %cast = trunc nuw i8 %a to i1
@@ -2268,11 +2262,9 @@ define i8 @test_trunc_nuw_or_2(i8 %a) {
22682262; CHECK-NEXT: [[CAST:%.*]] = trunc nuw i8 [[A:%.*]] to i1
22692263; CHECK-NEXT: br i1 [[CAST]], label [[IF_ELSE:%.*]], label [[IF_THEN:%.*]]
22702264; CHECK: if.then:
2271- ; CHECK-NEXT: [[B:%.*]] = or i8 [[A]], 2
2272- ; CHECK-NEXT: ret i8 [[B]]
2265+ ; CHECK-NEXT: ret i8 2
22732266; CHECK: if.else:
2274- ; CHECK-NEXT: [[C:%.*]] = or i8 [[A]], 2
2275- ; CHECK-NEXT: ret i8 [[C]]
2267+ ; CHECK-NEXT: ret i8 3
22762268;
22772269entry:
22782270 %cast = trunc nuw i8 %a to i1
@@ -2293,11 +2285,9 @@ define i8 @test_not_trunc_nuw_and_1(i8 %a) {
22932285; CHECK-NEXT: [[CAST:%.*]] = trunc nuw i8 [[A:%.*]] to i1
22942286; CHECK-NEXT: br i1 [[CAST]], label [[IF_ELSE:%.*]], label [[IF_THEN:%.*]]
22952287; CHECK: if.then:
2296- ; CHECK-NEXT: [[B:%.*]] = and i8 [[A]], 1
2297- ; CHECK-NEXT: ret i8 [[B]]
2288+ ; CHECK-NEXT: ret i8 0
22982289; CHECK: if.else:
2299- ; CHECK-NEXT: [[C:%.*]] = and i8 [[A]], 1
2300- ; CHECK-NEXT: ret i8 [[C]]
2290+ ; CHECK-NEXT: ret i8 1
23012291;
23022292entry:
23032293 %cast = trunc nuw i8 %a to i1
@@ -2319,8 +2309,7 @@ define i8 @test_trunc_cond_and(i8 %x, i1 %c) {
23192309; CHECK-NEXT: [[COND:%.*]] = and i1 [[C:%.*]], [[CMP]]
23202310; CHECK-NEXT: br i1 [[COND]], label [[IF:%.*]], label [[EXIT:%.*]]
23212311; CHECK: if:
2322- ; CHECK-NEXT: [[OR1:%.*]] = or i8 [[X]], -2
2323- ; CHECK-NEXT: ret i8 [[OR1]]
2312+ ; CHECK-NEXT: ret i8 -1
23242313; CHECK: exit:
23252314; CHECK-NEXT: [[OR2:%.*]] = or i8 [[X]], -2
23262315; CHECK-NEXT: ret i8 [[OR2]]
@@ -2345,8 +2334,7 @@ define i8 @test_not_trunc_cond_and(i8 %x, i1 %c) {
23452334; CHECK-NEXT: [[COND:%.*]] = and i1 [[C:%.*]], [[NOT]]
23462335; CHECK-NEXT: br i1 [[COND]], label [[IF:%.*]], label [[EXIT:%.*]]
23472336; CHECK: if:
2348- ; CHECK-NEXT: [[OR1:%.*]] = or i8 [[X]], -2
2349- ; CHECK-NEXT: ret i8 [[OR1]]
2337+ ; CHECK-NEXT: ret i8 -2
23502338; CHECK: exit:
23512339; CHECK-NEXT: [[OR2:%.*]] = or i8 [[X]], -2
23522340; CHECK-NEXT: ret i8 [[OR2]]
0 commit comments