brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.9 KiB · 1fa3811 Raw
141 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 32; RUN: opt -S -passes=gvn < %s | FileCheck %s3 4; Make sure deduplicated phi nodes are removed from the VN map.5define i64 @f2(ptr %arg) {6; CHECK-LABEL: define i64 @f2(7; CHECK-SAME: ptr [[ARG:%.*]]) {8; CHECK-NEXT:  BB:9; CHECK-NEXT:    store i1 false, ptr [[ARG]], align 110; CHECK-NEXT:    br label [[BB2D:%.*]]11; CHECK:       BB2a:12; CHECK-NEXT:    br label [[BB2B:%.*]]13; CHECK:       BB2b:14; CHECK-NEXT:    br label [[BB2C:%.*]]15; CHECK:       BB2c:16; CHECK-NEXT:    [[AZ2:%.*]] = phi i1 [ true, [[BB2B]] ], [ [[AZ:%.*]], [[BB2D]] ]17; CHECK-NEXT:    [[DOTPHI_TRANS_INSERT:%.*]] = sext i1 [[AZ2]] to i6418; CHECK-NEXT:    [[GEP2_PHI_TRANS_INSERT:%.*]] = getelementptr i1, ptr [[ARG]], i64 [[DOTPHI_TRANS_INSERT]]19; CHECK-NEXT:    [[L93_PRE:%.*]] = load i1, ptr [[GEP2_PHI_TRANS_INSERT]], align 120; CHECK-NEXT:    br label [[BB2D]]21; CHECK:       BB2d:22; CHECK-NEXT:    [[AZ]] = phi i1 [ [[AZ2]], [[BB2C]] ], [ false, [[BB:%.*]] ]23; CHECK-NEXT:    [[L93:%.*]] = phi i1 [ [[L93_PRE]], [[BB2C]] ], [ false, [[BB]] ]24; CHECK-NEXT:    [[TMP0:%.*]] = sext i1 [[AZ]] to i6425; CHECK-NEXT:    [[GEP2:%.*]] = getelementptr i1, ptr [[ARG]], i64 [[TMP0]]26; CHECK-NEXT:    store i1 [[AZ]], ptr [[ARG]], align 227; CHECK-NEXT:    br i1 [[L93]], label [[BB2C]], label [[BB1E:%.*]]28; CHECK:       BB1e:29; CHECK-NEXT:    br i1 [[AZ]], label [[BB2F:%.*]], label [[BB4:%.*]]30; CHECK:       BB2f:31; CHECK-NEXT:    store i1 true, ptr [[ARG]], align 232; CHECK-NEXT:    br label [[BB2B]]33; CHECK:       BB4:34; CHECK-NEXT:    br label [[BB4]]35;36BB:37  store i1 false, ptr %arg, align 138  br label %BB2d39 40BB2a: ; No predecessors!41  br label %BB2b42 43BB2b:       ; preds = %BB2f, %BB2a44  br label %BB2c45 46BB2c:                     ; preds = %BB2d, %BB2b47  %0 = phi i1 [ true, %BB2b ], [ %1, %BB2d ]48  br label %BB2d49 50BB2d:                              ; preds = %BB2c, %BB51  %1 = phi i1 [ %0, %BB2c ], [ false, %BB ]52  %2 = sext i1 %1 to i6453  %gep2 = getelementptr i1, ptr %arg, i64 %254  %L93 = load i1, ptr %gep2, align 155  %Az = load i1, ptr %arg, align 256  store i1 %1, ptr %arg, align 257  br i1 %L93, label %BB2c, label %BB1e58 59BB1e:                                        ; preds = %BB2d60  br i1 %Az, label %BB2f, label %BB461 62BB2f:                                ; preds = %BB1e63  store i1 true, ptr %arg, align 264  br label %BB2b65 66BB4:                                              ; preds = %BB1e, %BB467  br label %BB468 69; uselistorder directives70  uselistorder label %BB4, { 1, 0 }71}72 73; Make sure deduplicated phi nodes are removed from the VN map. Make74; sure there is no assert on attempt to use ConstantData use lists.75define i64 @f_null() {76; CHECK-LABEL: define i64 @f_null() {77; CHECK-NEXT:  BB:78; CHECK-NEXT:    store i1 false, ptr null, align 179; CHECK-NEXT:    br label [[BB2D:%.*]]80; CHECK:       BB2a:81; CHECK-NEXT:    br label [[BB2B:%.*]]82; CHECK:       BB2b:83; CHECK-NEXT:    br label [[BB2C:%.*]]84; CHECK:       BB2c:85; CHECK-NEXT:    [[AZ2:%.*]] = phi i1 [ true, [[BB2B]] ], [ [[AZ:%.*]], [[BB2D]] ]86; CHECK-NEXT:    [[DOTPHI_TRANS_INSERT:%.*]] = sext i1 [[AZ2]] to i6487; CHECK-NEXT:    [[GEP2_PHI_TRANS_INSERT:%.*]] = getelementptr i1, ptr null, i64 [[DOTPHI_TRANS_INSERT]]88; CHECK-NEXT:    [[L93_PRE:%.*]] = load i1, ptr [[GEP2_PHI_TRANS_INSERT]], align 189; CHECK-NEXT:    br label [[BB2D]]90; CHECK:       BB2d:91; CHECK-NEXT:    [[AZ]] = phi i1 [ [[AZ2]], [[BB2C]] ], [ false, [[BB:%.*]] ]92; CHECK-NEXT:    [[L93:%.*]] = phi i1 [ [[L93_PRE]], [[BB2C]] ], [ false, [[BB]] ]93; CHECK-NEXT:    [[TMP0:%.*]] = sext i1 [[AZ]] to i6494; CHECK-NEXT:    [[GEP2:%.*]] = getelementptr i1, ptr null, i64 [[TMP0]]95; CHECK-NEXT:    store i1 [[AZ]], ptr null, align 296; CHECK-NEXT:    br i1 [[L93]], label [[BB2C]], label [[BB1E:%.*]]97; CHECK:       BB1e:98; CHECK-NEXT:    br i1 [[AZ]], label [[BB2F:%.*]], label [[BB4:%.*]]99; CHECK:       BB2f:100; CHECK-NEXT:    store i1 true, ptr null, align 2101; CHECK-NEXT:    br label [[BB2B]]102; CHECK:       BB4:103; CHECK-NEXT:    br label [[BB4]]104;105BB:106  store i1 false, ptr null, align 1107  br label %BB2d108 109BB2a: ; No predecessors!110  br label %BB2b111 112BB2b:       ; preds = %BB2f, %BB2a113  br label %BB2c114 115BB2c:                     ; preds = %BB2d, %BB2b116  %0 = phi i1 [ true, %BB2b ], [ %1, %BB2d ]117  br label %BB2d118 119BB2d:                              ; preds = %BB2c, %BB120  %1 = phi i1 [ %0, %BB2c ], [ false, %BB ]121  %2 = sext i1 %1 to i64122  %gep2 = getelementptr i1, ptr null, i64 %2123  %L93 = load i1, ptr %gep2, align 1124  %Az = load i1, ptr null, align 2125  store i1 %1, ptr null, align 2126  br i1 %L93, label %BB2c, label %BB1e127 128BB1e:                                        ; preds = %BB2d129  br i1 %Az, label %BB2f, label %BB4130 131BB2f:                                ; preds = %BB1e132  store i1 true, ptr null, align 2133  br label %BB2b134 135BB4:                                              ; preds = %BB1e, %BB4136  br label %BB4137 138; uselistorder directives139  uselistorder label %BB4, { 1, 0 }140}141