brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.5 KiB · 283958d Raw
77 lines · plain
1;2; Here all the branches are exiting ones. Checking that we dont have3; exponential behavior with any kind of controlling heuristics here.4;5; There we should have just a single loop.6;7; RUN: opt < %s -enable-unswitch-cost-multiplier=true \8; RUN:     -unswitch-num-initial-unscaled-candidates=0 -unswitch-siblings-toplevel-div=1 \9; RUN: -passes='loop(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | FileCheck %s --check-prefixes=LOOP110;11; RUN: opt < %s -enable-unswitch-cost-multiplier=true \12; RUN:     -unswitch-num-initial-unscaled-candidates=0 -unswitch-siblings-toplevel-div=8 \13; RUN: -passes='loop(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | FileCheck %s --check-prefixes=LOOP114;15; RUN: opt < %s -enable-unswitch-cost-multiplier=true \16; RUN:     -unswitch-num-initial-unscaled-candidates=8 -unswitch-siblings-toplevel-div=1 \17; RUN: -passes='loop(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | FileCheck %s --check-prefixes=LOOP118;19; RUN: opt < %s -enable-unswitch-cost-multiplier=true \20; RUN:     -unswitch-num-initial-unscaled-candidates=8 -unswitch-siblings-toplevel-div=8 \21; RUN: -passes='loop(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | FileCheck %s --check-prefixes=LOOP122;23; RUN: opt < %s -enable-unswitch-cost-multiplier=false \24; RUN: -passes='loop(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | FileCheck %s --check-prefixes=LOOP125;26;27; RUN: opt < %s -enable-unswitch-cost-multiplier=true \28; RUN:     -unswitch-num-initial-unscaled-candidates=0 -unswitch-siblings-toplevel-div=1 \29; RUN: -passes='loop-mssa(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | FileCheck %s --check-prefixes=LOOP130;31; RUN: opt < %s -enable-unswitch-cost-multiplier=true \32; RUN:     -unswitch-num-initial-unscaled-candidates=0 -unswitch-siblings-toplevel-div=8 \33; RUN: -passes='loop-mssa(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | FileCheck %s --check-prefixes=LOOP134;35; RUN: opt < %s -enable-unswitch-cost-multiplier=true \36; RUN:     -unswitch-num-initial-unscaled-candidates=8 -unswitch-siblings-toplevel-div=1 \37; RUN: -passes='loop-mssa(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | FileCheck %s --check-prefixes=LOOP138;39; RUN: opt < %s -enable-unswitch-cost-multiplier=true \40; RUN:     -unswitch-num-initial-unscaled-candidates=8 -unswitch-siblings-toplevel-div=8 \41; RUN: -passes='loop-mssa(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | FileCheck %s --check-prefixes=LOOP142;43; RUN: opt < %s -enable-unswitch-cost-multiplier=false \44; RUN: -passes='loop-mssa(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | FileCheck %s --check-prefixes=LOOP145;46;47; Single loop, not unswitched48; LOOP1:     Loop at depth 1 containing:49; LOOP1-NOT: Loop at depth 1 containing:50 51declare void @bar()52 53define void @loop_simple5(ptr %addr, i1 %c1, i1 %c2, i1 %c3, i1 %c4, i1 %c5) {54entry:55  br label %loop56loop:57  %iv = phi i32 [0, %entry], [%iv.next, %loop_latch]58  %iv.next = add i32 %iv, 159  ;; disabling trivial unswitch60  call void @bar()61  br i1 %c1, label %loop_next1, label %exit62loop_next1:63  br i1 %c2, label %loop_next2, label %exit64loop_next2:65  br i1 %c3, label %loop_next3, label %exit66loop_next3:67  br i1 %c4, label %loop_next4, label %exit68loop_next4:69  br i1 %c5, label %loop_latch, label %exit70loop_latch:71  store volatile i32 0, ptr %addr72  %test_loop = icmp slt i32 %iv, 5073  br i1 %test_loop, label %loop, label %exit74exit:75  ret void76}77