From 1c4b42d00f8cad70582e9afc6d1dbdab8253e2ab Mon Sep 17 00:00:00 2001 From: Andrew Trick Date: Fri, 18 Mar 2011 16:50:32 +0000 Subject: Avoid creating canonical induction variables for non-native types. For example, on 32-bit architecture, don't promote all uses of the IV to 64-bits just because one use is a 64-bit cast. Alternate implementation of the patch by Arnaud de Grandmaison. llvm-svn: 127884 --- llvm/test/Transforms/LoopStrengthReduce/invariant_value_first.ll | 3 ++- llvm/test/Transforms/LoopStrengthReduce/invariant_value_first_arg.ll | 3 ++- llvm/test/Transforms/LoopStrengthReduce/ops_after_indvar.ll | 4 +++- llvm/test/Transforms/LoopStrengthReduce/var_stride_used_by_compare.ll | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) (limited to 'llvm/test/Transforms/LoopStrengthReduce') diff --git a/llvm/test/Transforms/LoopStrengthReduce/invariant_value_first.ll b/llvm/test/Transforms/LoopStrengthReduce/invariant_value_first.ll index 4094e9c7e4d..986a55a3f6c 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/invariant_value_first.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/invariant_value_first.ll @@ -1,7 +1,8 @@ ; Check that the index of 'P[outer]' is pulled out of the loop. -; RUN: opt < %s -loop-reduce -S -default-data-layout="e-p:32:32:32" | \ +; RUN: opt < %s -loop-reduce -S | \ ; RUN: not grep {getelementptr.*%outer.*%INDVAR} +target datalayout = "e-p:32:32:32-n:8:16:32" declare i1 @pred() declare i32 @foo() diff --git a/llvm/test/Transforms/LoopStrengthReduce/invariant_value_first_arg.ll b/llvm/test/Transforms/LoopStrengthReduce/invariant_value_first_arg.ll index e2aed78c32e..1d43961c356 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/invariant_value_first_arg.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/invariant_value_first_arg.ll @@ -1,7 +1,8 @@ ; Check that the index of 'P[outer]' is pulled out of the loop. -; RUN: opt < %s -loop-reduce -S -default-data-layout="e-p:32:32:32" | \ +; RUN: opt < %s -loop-reduce -S | \ ; RUN: not grep {getelementptr.*%outer.*%INDVAR} +target datalayout = "e-p:32:32:32-n:32" declare i1 @pred() define void @test([10000 x i32]* %P, i32 %outer) { diff --git a/llvm/test/Transforms/LoopStrengthReduce/ops_after_indvar.ll b/llvm/test/Transforms/LoopStrengthReduce/ops_after_indvar.ll index 410d88f672b..00bd068d0b8 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/ops_after_indvar.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/ops_after_indvar.ll @@ -1,7 +1,9 @@ ; Check that this test makes INDVAR and related stuff dead, because P[indvar] ; gets reduced, making INDVAR dead. -; RUN: opt < %s -loop-reduce -S -default-data-layout="e-p:32:32:32" | not grep INDVAR +; RUN: opt < %s -loop-reduce -S | not grep INDVAR + +target datalayout = "e-p:32:32:32-n:32" declare i1 @pred() diff --git a/llvm/test/Transforms/LoopStrengthReduce/var_stride_used_by_compare.ll b/llvm/test/Transforms/LoopStrengthReduce/var_stride_used_by_compare.ll index 0a9fab0d5ea..7547d836292 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/var_stride_used_by_compare.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/var_stride_used_by_compare.ll @@ -9,7 +9,7 @@ ; mul uint %i, 3 -target datalayout = "e-p:32:32" +target datalayout = "e-p:32:32-n:32" target triple = "i686-apple-darwin8" @flags2 = external global [8193 x i8], align 32 ; <[8193 x i8]*> [#uses=1] -- cgit v1.2.3