brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.2 KiB · ebdf7d3 Raw
354 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py2; RUN: opt < %s -disable-output "-passes=print<scalar-evolution>" -scalar-evolution-classify-expressions=0 2>&1 2>&1 | FileCheck %s3 4target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"5target triple = "x86_64-unknown-linux-gnu"6 7define void @unsimplified_and1(i32 %n) {8; CHECK-LABEL: 'unsimplified_and1'9; CHECK-NEXT:  Determining loop execution counts for: @unsimplified_and110; CHECK-NEXT:  Loop %loop: backedge-taken count is %n11; CHECK-NEXT:  Loop %loop: constant max backedge-taken count is i32 -112; CHECK-NEXT:  Loop %loop: symbolic max backedge-taken count is %n13; CHECK-NEXT:  Loop %loop: Trip multiple is 114;15entry:16  br label %loop17 18loop:19  %iv = phi i32 [ 0, %entry ], [ %iv.inc, %loop ]20  %iv.inc = add nsw i32 %iv, 121  %becond = icmp ule i32 %iv.inc, %n22  %and = select i1 %becond, i1 true, i1 false23  br i1 %and, label %loop, label %leave24 25leave:26  ret void27}28 29define void @unsimplified_and2(i32 %n) {30; CHECK-LABEL: 'unsimplified_and2'31; CHECK-NEXT:  Determining loop execution counts for: @unsimplified_and232; CHECK-NEXT:  Loop %loop: backedge-taken count is %n33; CHECK-NEXT:  Loop %loop: constant max backedge-taken count is i32 -134; CHECK-NEXT:  Loop %loop: symbolic max backedge-taken count is %n35; CHECK-NEXT:  Loop %loop: Trip multiple is 136;37entry:38  br label %loop39 40loop:41  %iv = phi i32 [ 0, %entry ], [ %iv.inc, %loop ]42  %iv.inc = add nsw i32 %iv, 143  %becond = icmp ule i32 %iv.inc, %n44  %and = select i1 true, i1 %becond, i1 false45  br i1 %and, label %loop, label %leave46 47leave:48  ret void49}50 51define void @unsimplified_and3(i32 %n) {52; CHECK-LABEL: 'unsimplified_and3'53; CHECK-NEXT:  Determining loop execution counts for: @unsimplified_and354; CHECK-NEXT:  Loop %loop: backedge-taken count is i1 false55; CHECK-NEXT:  Loop %loop: constant max backedge-taken count is i1 false56; CHECK-NEXT:  Loop %loop: symbolic max backedge-taken count is i1 false57; CHECK-NEXT:  Loop %loop: Trip multiple is 158;59entry:60  br label %loop61 62loop:63  %iv = phi i32 [ 0, %entry ], [ %iv.inc, %loop ]64  %iv.inc = add nsw i32 %iv, 165  %becond = icmp ule i32 %iv.inc, %n66  %and = select i1 false, i1 %becond, i1 false67  br i1 %and, label %loop, label %leave68 69leave:70  ret void71}72 73define void @unsimplified_and4(i32 %n) {74; CHECK-LABEL: 'unsimplified_and4'75; CHECK-NEXT:  Determining loop execution counts for: @unsimplified_and476; CHECK-NEXT:  Loop %loop: backedge-taken count is i1 false77; CHECK-NEXT:  Loop %loop: constant max backedge-taken count is i1 false78; CHECK-NEXT:  Loop %loop: symbolic max backedge-taken count is i1 false79; CHECK-NEXT:  Loop %loop: Trip multiple is 180;81entry:82  br label %loop83 84loop:85  %iv = phi i32 [ 0, %entry ], [ %iv.inc, %loop ]86  %iv.inc = add nsw i32 %iv, 187  %becond = icmp ule i32 %iv.inc, %n88  %and = select i1 %becond, i1 false, i1 false89  br i1 %and, label %loop, label %leave90 91leave:92  ret void93}94 95define void @unsimplified_or1(i32 %n) {96; CHECK-LABEL: 'unsimplified_or1'97; CHECK-NEXT:  Determining loop execution counts for: @unsimplified_or198; CHECK-NEXT:  Loop %loop: Unpredictable backedge-taken count.99; CHECK-NEXT:  Loop %loop: Unpredictable constant max backedge-taken count.100; CHECK-NEXT:  Loop %loop: Unpredictable symbolic max backedge-taken count.101;102entry:103  br label %loop104 105loop:106  %iv = phi i32 [ 0, %entry ], [ %iv.inc, %loop ]107  %iv.inc = add nsw i32 %iv, 1108  %becond = icmp ule i32 %iv.inc, %n109  %or = select i1 %becond, i1 true, i1 true110  br i1 %or, label %loop, label %leave111 112leave:113  ret void114}115 116define void @unsimplified_or2(i32 %n) {117; CHECK-LABEL: 'unsimplified_or2'118; CHECK-NEXT:  Determining loop execution counts for: @unsimplified_or2119; CHECK-NEXT:  Loop %loop: Unpredictable backedge-taken count.120; CHECK-NEXT:  Loop %loop: Unpredictable constant max backedge-taken count.121; CHECK-NEXT:  Loop %loop: Unpredictable symbolic max backedge-taken count.122;123entry:124  br label %loop125 126loop:127  %iv = phi i32 [ 0, %entry ], [ %iv.inc, %loop ]128  %iv.inc = add nsw i32 %iv, 1129  %becond = icmp ule i32 %iv.inc, %n130  %or = select i1 true, i1 true, i1 %becond131  br i1 %or, label %loop, label %leave132 133leave:134  ret void135}136 137define void @unsimplified_or3(i32 %n) {138; CHECK-LABEL: 'unsimplified_or3'139; CHECK-NEXT:  Determining loop execution counts for: @unsimplified_or3140; CHECK-NEXT:  Loop %loop: backedge-taken count is %n141; CHECK-NEXT:  Loop %loop: constant max backedge-taken count is i32 -1142; CHECK-NEXT:  Loop %loop: symbolic max backedge-taken count is %n143; CHECK-NEXT:  Loop %loop: Trip multiple is 1144;145entry:146  br label %loop147 148loop:149  %iv = phi i32 [ 0, %entry ], [ %iv.inc, %loop ]150  %iv.inc = add nsw i32 %iv, 1151  %becond = icmp ule i32 %iv.inc, %n152  %or = select i1 false, i1 true, i1 %becond153  br i1 %or, label %loop, label %leave154 155leave:156  ret void157}158 159define void @unsimplified_or4(i32 %n) {160; CHECK-LABEL: 'unsimplified_or4'161; CHECK-NEXT:  Determining loop execution counts for: @unsimplified_or4162; CHECK-NEXT:  Loop %loop: backedge-taken count is %n163; CHECK-NEXT:  Loop %loop: constant max backedge-taken count is i32 -1164; CHECK-NEXT:  Loop %loop: symbolic max backedge-taken count is %n165; CHECK-NEXT:  Loop %loop: Trip multiple is 1166;167entry:168  br label %loop169 170loop:171  %iv = phi i32 [ 0, %entry ], [ %iv.inc, %loop ]172  %iv.inc = add nsw i32 %iv, 1173  %becond = icmp ule i32 %iv.inc, %n174  %or = select i1 %becond, i1 true, i1 false175  br i1 %or, label %loop, label %leave176 177leave:178  ret void179}180 181define void @reversed_and1(i32 %n) {182; CHECK-LABEL: 'reversed_and1'183; CHECK-NEXT:  Determining loop execution counts for: @reversed_and1184; CHECK-NEXT:  Loop %loop: backedge-taken count is %n185; CHECK-NEXT:  Loop %loop: constant max backedge-taken count is i32 -1186; CHECK-NEXT:  Loop %loop: symbolic max backedge-taken count is %n187; CHECK-NEXT:  Loop %loop: Trip multiple is 1188;189entry:190  br label %loop191 192loop:193  %iv = phi i32 [ 0, %entry ], [ %iv.inc, %loop ]194  %iv.inc = add nsw i32 %iv, 1195  %becond = icmp ugt i32 %iv.inc, %n196  %and = select i1 %becond, i1 true, i1 false197  br i1 %and, label %leave, label %loop198 199leave:200  ret void201}202 203define void @reversed_and2(i32 %n) {204; CHECK-LABEL: 'reversed_and2'205; CHECK-NEXT:  Determining loop execution counts for: @reversed_and2206; CHECK-NEXT:  Loop %loop: backedge-taken count is %n207; CHECK-NEXT:  Loop %loop: constant max backedge-taken count is i32 -1208; CHECK-NEXT:  Loop %loop: symbolic max backedge-taken count is %n209; CHECK-NEXT:  Loop %loop: Trip multiple is 1210;211entry:212  br label %loop213 214loop:215  %iv = phi i32 [ 0, %entry ], [ %iv.inc, %loop ]216  %iv.inc = add nsw i32 %iv, 1217  %becond = icmp ugt i32 %iv.inc, %n218  %and = select i1 true, i1 %becond, i1 false219  br i1 %and, label %leave, label %loop220 221leave:222  ret void223}224 225define void @reversed_and3(i32 %n) {226; CHECK-LABEL: 'reversed_and3'227; CHECK-NEXT:  Determining loop execution counts for: @reversed_and3228; CHECK-NEXT:  Loop %loop: Unpredictable backedge-taken count.229; CHECK-NEXT:  Loop %loop: Unpredictable constant max backedge-taken count.230; CHECK-NEXT:  Loop %loop: Unpredictable symbolic max backedge-taken count.231;232entry:233  br label %loop234 235loop:236  %iv = phi i32 [ 0, %entry ], [ %iv.inc, %loop ]237  %iv.inc = add nsw i32 %iv, 1238  %becond = icmp ugt i32 %iv.inc, %n239  %and = select i1 false, i1 %becond, i1 false240  br i1 %and, label %leave, label %loop241 242leave:243  ret void244}245 246define void @reversed_and4(i32 %n) {247; CHECK-LABEL: 'reversed_and4'248; CHECK-NEXT:  Determining loop execution counts for: @reversed_and4249; CHECK-NEXT:  Loop %loop: Unpredictable backedge-taken count.250; CHECK-NEXT:  Loop %loop: Unpredictable constant max backedge-taken count.251; CHECK-NEXT:  Loop %loop: Unpredictable symbolic max backedge-taken count.252;253entry:254  br label %loop255 256loop:257  %iv = phi i32 [ 0, %entry ], [ %iv.inc, %loop ]258  %iv.inc = add nsw i32 %iv, 1259  %becond = icmp ugt i32 %iv.inc, %n260  %and = select i1 %becond, i1 false, i1 false261  br i1 %and, label %leave, label %loop262 263leave:264  ret void265}266 267define void @reversed_or1(i32 %n) {268; CHECK-LABEL: 'reversed_or1'269; CHECK-NEXT:  Determining loop execution counts for: @reversed_or1270; CHECK-NEXT:  Loop %loop: backedge-taken count is i1 false271; CHECK-NEXT:  Loop %loop: constant max backedge-taken count is i1 false272; CHECK-NEXT:  Loop %loop: symbolic max backedge-taken count is i1 false273; CHECK-NEXT:  Loop %loop: Trip multiple is 1274;275entry:276  br label %loop277 278loop:279  %iv = phi i32 [ 0, %entry ], [ %iv.inc, %loop ]280  %iv.inc = add nsw i32 %iv, 1281  %becond = icmp ugt i32 %iv.inc, %n282  %or = select i1 %becond, i1 true, i1 true283  br i1 %or, label %leave, label %loop284 285leave:286  ret void287}288 289define void @reversed_or2(i32 %n) {290; CHECK-LABEL: 'reversed_or2'291; CHECK-NEXT:  Determining loop execution counts for: @reversed_or2292; CHECK-NEXT:  Loop %loop: backedge-taken count is i1 false293; CHECK-NEXT:  Loop %loop: constant max backedge-taken count is i1 false294; CHECK-NEXT:  Loop %loop: symbolic max backedge-taken count is i1 false295; CHECK-NEXT:  Loop %loop: Trip multiple is 1296;297entry:298  br label %loop299 300loop:301  %iv = phi i32 [ 0, %entry ], [ %iv.inc, %loop ]302  %iv.inc = add nsw i32 %iv, 1303  %becond = icmp ugt i32 %iv.inc, %n304  %or = select i1 true, i1 true, i1 %becond305  br i1 %or, label %leave, label %loop306 307leave:308  ret void309}310 311define void @reversed_or3(i32 %n) {312; CHECK-LABEL: 'reversed_or3'313; CHECK-NEXT:  Determining loop execution counts for: @reversed_or3314; CHECK-NEXT:  Loop %loop: backedge-taken count is %n315; CHECK-NEXT:  Loop %loop: constant max backedge-taken count is i32 -1316; CHECK-NEXT:  Loop %loop: symbolic max backedge-taken count is %n317; CHECK-NEXT:  Loop %loop: Trip multiple is 1318;319entry:320  br label %loop321 322loop:323  %iv = phi i32 [ 0, %entry ], [ %iv.inc, %loop ]324  %iv.inc = add nsw i32 %iv, 1325  %becond = icmp ugt i32 %iv.inc, %n326  %or = select i1 false, i1 true, i1 %becond327  br i1 %or, label %leave, label %loop328 329leave:330  ret void331}332 333define void @reversed_or4(i32 %n) {334; CHECK-LABEL: 'reversed_or4'335; CHECK-NEXT:  Determining loop execution counts for: @reversed_or4336; CHECK-NEXT:  Loop %loop: backedge-taken count is %n337; CHECK-NEXT:  Loop %loop: constant max backedge-taken count is i32 -1338; CHECK-NEXT:  Loop %loop: symbolic max backedge-taken count is %n339; CHECK-NEXT:  Loop %loop: Trip multiple is 1340;341entry:342  br label %loop343 344loop:345  %iv = phi i32 [ 0, %entry ], [ %iv.inc, %loop ]346  %iv.inc = add nsw i32 %iv, 1347  %becond = icmp ugt i32 %iv.inc, %n348  %or = select i1 %becond, i1 true, i1 false349  br i1 %or, label %leave, label %loop350 351leave:352  ret void353}354