| Bill Wendling | a08bb49 | 2013-08-22 00:51:19 +0000 | [diff] [blame] | 1 | ; RUN: opt < %s -analyze -scalar-evolution 2>&1 | FileCheck %s | 
| Nick Lewycky | b5688cc | 2008-07-12 07:41:32 +0000 | [diff] [blame] | 2 | ; PR2261 | 
|  | 3 |  | 
| Bill Wendling | a08bb49 | 2013-08-22 00:51:19 +0000 | [diff] [blame] | 4 | ; CHECK: Printing analysis 'Scalar Evolution Analysis' for function 'foo' | 
|  | 5 | ; CHECK-NOT: smax | 
|  | 6 |  | 
| Nick Lewycky | b5688cc | 2008-07-12 07:41:32 +0000 | [diff] [blame] | 7 | @lut = common global [256 x i8] zeroinitializer, align 32		; <[256 x i8]*> [#uses=1] | 
|  | 8 |  | 
|  | 9 | define void @foo(i32 %count, i32* %srcptr, i32* %dstptr) nounwind  { | 
|  | 10 | entry: | 
|  | 11 | icmp sgt i32 %count, 0		; <i1>:0 [#uses=1] | 
|  | 12 | br i1 %0, label %bb.nph, label %return | 
|  | 13 |  | 
|  | 14 | bb.nph:		; preds = %entry | 
|  | 15 | br label %bb | 
|  | 16 |  | 
|  | 17 | bb:		; preds = %bb1, %bb.nph | 
|  | 18 | %j.01 = phi i32 [ %8, %bb1 ], [ 0, %bb.nph ]		; <i32> [#uses=1] | 
|  | 19 | load i32* %srcptr, align 4		; <i32>:1 [#uses=2] | 
|  | 20 | and i32 %1, 255		; <i32>:2 [#uses=1] | 
|  | 21 | and i32 %1, -256		; <i32>:3 [#uses=1] | 
|  | 22 | getelementptr [256 x i8]* @lut, i32 0, i32 %2		; <i8*>:4 [#uses=1] | 
|  | 23 | load i8* %4, align 1		; <i8>:5 [#uses=1] | 
|  | 24 | zext i8 %5 to i32		; <i32>:6 [#uses=1] | 
|  | 25 | or i32 %6, %3		; <i32>:7 [#uses=1] | 
|  | 26 | store i32 %7, i32* %dstptr, align 4 | 
|  | 27 | add i32 %j.01, 1		; <i32>:8 [#uses=2] | 
|  | 28 | br label %bb1 | 
|  | 29 |  | 
|  | 30 | bb1:		; preds = %bb | 
|  | 31 | icmp slt i32 %8, %count		; <i1>:9 [#uses=1] | 
|  | 32 | br i1 %9, label %bb, label %bb1.return_crit_edge | 
|  | 33 |  | 
|  | 34 | bb1.return_crit_edge:		; preds = %bb1 | 
|  | 35 | br label %return | 
|  | 36 |  | 
|  | 37 | return:		; preds = %bb1.return_crit_edge, %entry | 
|  | 38 | ret void | 
|  | 39 | } |