I'm about to enable the new loop predication transform by default. It has the effect of completely destroying many read only loops - which happen to be a super common idiom in our test cases. So as to preserve test coverage of other transforms, disable the new transform where it would cause sharp test coverage regressions.
(This is semantically part of the enabling commit. It's committed separate to ease revert if the actual flag flip gets reverted.)
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
-; RUN: opt -indvars -S < %s | FileCheck %s
+; RUN: opt -indvars -S -indvars-predicate-loops=0 < %s | FileCheck %s
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
-; RUN: opt -S -indvars < %s | FileCheck %s
+; RUN: opt -S -indvars -indvars-predicate-loops=0 < %s | FileCheck %s
; Tests in this file are specifically about correctly handling possibly poison
; producing flags when converting from one IV to another. In particular, there
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
-; RUN: opt < %s -indvars -S | FileCheck %s
+; RUN: opt < %s -indvars -S -indvars-predicate-loops=0 | FileCheck %s
; Provide legal integer types.
target datalayout = "n8:16:32:64"
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
-; RUN: opt < %s -indvars -S | FileCheck %s
+; RUN: opt < %s -indvars -S -indvars-predicate-loops=0 | FileCheck %s
; Make sure that indvars can perform LFTR without a canonical IV.
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
-; RUN: opt < %s -indvars -dce -S | FileCheck %s
+; RUN: opt < %s -indvars -dce -S -indvars-predicate-loops=0 | FileCheck %s
; Provide legal integer types.
target datalayout = "n8:16:32:64"
-; RUN: opt -S -indvars %s | FileCheck %s
+; RUN: opt -S -indvars -indvars-predicate-loops=0 %s | FileCheck %s
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
-; RUN: opt < %s -indvars -S | FileCheck %s
+; RUN: opt < %s -indvars -S -indvars-predicate-loops=0 | FileCheck %s
;
; Make sure that indvars isn't inserting canonical IVs.
; This is kinda hard to do until linear function test replacement is removed.
-; RUN: opt -S -indvars < %s | FileCheck %s
+; RUN: opt -S -indvars -indvars-predicate-loops=0 < %s | FileCheck %s
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.10.0"
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
-; RUN: opt -S -indvars < %s | FileCheck %s
+; RUN: opt -S -indvars -indvars-predicate-loops=0 < %s | FileCheck %s
; Check that we don't reuse %zext instead of %inc11 for LCSSA Phi node. Case
; with constants SCEV.
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
-; RUN: opt -S -indvars < %s | FileCheck %s
+; RUN: opt -S -indvars -indvars-predicate-loops=0 < %s | FileCheck %s
define i16 @constant() {
; CHECK-LABEL: @constant(
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
-; RUN: opt -indvars -S < %s | FileCheck %s
+; RUN: opt -indvars -S -indvars-predicate-loops=0 < %s | FileCheck %s
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
-; RUN: opt < %s -indvars -S | FileCheck %s
+; RUN: opt < %s -indvars -indvars-predicate-loops=0 -S | FileCheck %s
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
target triple = "i386-apple-darwin10.0"