diff options
Diffstat (limited to 'llvm/test/Transforms/SimpleLoopUnswitch/exponential-nontrivial-unswitch-nested.ll')
-rw-r--r-- | llvm/test/Transforms/SimpleLoopUnswitch/exponential-nontrivial-unswitch-nested.ll | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/llvm/test/Transforms/SimpleLoopUnswitch/exponential-nontrivial-unswitch-nested.ll b/llvm/test/Transforms/SimpleLoopUnswitch/exponential-nontrivial-unswitch-nested.ll index 28f7261261c..d2ca06357cf 100644 --- a/llvm/test/Transforms/SimpleLoopUnswitch/exponential-nontrivial-unswitch-nested.ll +++ b/llvm/test/Transforms/SimpleLoopUnswitch/exponential-nontrivial-unswitch-nested.ll @@ -10,6 +10,13 @@ ; RUN: -unswitch-num-initial-unscaled-candidates=0 -unswitch-siblings-toplevel-div=16 \ ; RUN: -passes='loop(unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | FileCheck %s --check-prefixes=LOOP1 ; +; RUN: opt < %s -enable-unswitch-cost-multiplier=true \ +; RUN: -unswitch-num-initial-unscaled-candidates=0 -unswitch-siblings-toplevel-div=1 \ +; RUN: -passes='loop-mssa(unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | FileCheck %s --check-prefixes=LOOP1 +; +; RUN: opt < %s -enable-unswitch-cost-multiplier=true \ +; RUN: -unswitch-num-initial-unscaled-candidates=0 -unswitch-siblings-toplevel-div=16 \ +; RUN: -passes='loop-mssa(unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | FileCheck %s --check-prefixes=LOOP1 ; ; When we relax the candidates part of a multiplier formula ; (unscaled candidates == 4) we start getting some unswitches, @@ -20,6 +27,11 @@ ; RUN: -passes='loop(unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | \ ; RUN: sort -b -k 1 | FileCheck %s --check-prefixes=LOOP-UNSCALE4-DIV1 ; +; RUN: opt < %s -enable-unswitch-cost-multiplier=true \ +; RUN: -unswitch-num-initial-unscaled-candidates=4 -unswitch-siblings-toplevel-div=1 \ +; RUN: -passes='loop-mssa(unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | \ +; RUN: sort -b -k 1 | FileCheck %s --check-prefixes=LOOP-UNSCALE4-DIV1 +; ; NB: sort -b is essential here and below, otherwise blanks might lead to different ; order depending on locale. ; @@ -28,6 +40,10 @@ ; RUN: -passes='loop(unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | \ ; RUN: sort -b -k 1 | FileCheck %s --check-prefixes=LOOP-UNSCALE4-DIV2 ; +; RUN: opt < %s -enable-unswitch-cost-multiplier=true \ +; RUN: -unswitch-num-initial-unscaled-candidates=4 -unswitch-siblings-toplevel-div=2 \ +; RUN: -passes='loop-mssa(unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | \ +; RUN: sort -b -k 1 | FileCheck %s --check-prefixes=LOOP-UNSCALE4-DIV2 ; ; Get ; 2^(num conds) == 2^5 = 32 @@ -37,6 +53,10 @@ ; RUN: -passes='loop(unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | \ ; RUN: sort -b -k 1 | FileCheck %s --check-prefixes=LOOP32 ; +; RUN: opt < %s -enable-unswitch-cost-multiplier=false \ +; RUN: -passes='loop-mssa(unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | \ +; RUN: sort -b -k 1 | FileCheck %s --check-prefixes=LOOP32 +; ; Single loop nest, not unswitched ; LOOP1: Loop at depth 1 containing: ; LOOP1: Loop at depth 2 containing: |