source: icGREP/icgrep-devel/llvm-3.8.0.src/test/Analysis/ScalarEvolution/sext-inreg.ll @ 5027

Last change on this file since 5027 was 5027, checked in by cameron, 3 years ago

Upgrade to llvm 3.8

File size: 1.2 KB
Line 
1; RUN: opt < %s -analyze -scalar-evolution > %t
2; RUN: grep "sext i57 {0,+,199}<%bb> to i64" %t | count 1
3; RUN: grep "sext i59 {0,+,199}<%bb> to i64" %t | count 1
4
5target 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"
6target triple = "i386-apple-darwin9.6"
7
8define i64 @foo(i64* nocapture %x, i64 %n) nounwind {
9entry:
10        %t0 = icmp sgt i64 %n, 0                ; <i1> [#uses=1]
11        br i1 %t0, label %bb, label %return
12
13bb:             ; preds = %bb, %entry
14        %i.01 = phi i64 [ 0, %entry ], [ %indvar.next, %bb ]            ; <i32> [#uses=2]
15        %t1 = shl i64 %i.01, 7          ; <i32> [#uses=1]
16        %t2 = ashr i64 %t1, 7           ; <i32> [#uses=1]
17        %s1 = shl i64 %i.01, 5          ; <i32> [#uses=1]
18        %s2 = ashr i64 %s1, 5           ; <i32> [#uses=1]
19        %t3 = getelementptr i64, i64* %x, i64 %i.01             ; <i64*> [#uses=1]
20        store i64 0, i64* %t3, align 1
21        %indvar.next = add i64 %i.01, 199               ; <i32> [#uses=2]
22        %exitcond = icmp eq i64 %indvar.next, %n                ; <i1> [#uses=1]
23        br i1 %exitcond, label %return, label %bb
24
25return:         ; preds = %bb, %entry
26        %p = phi i64 [ 0, %entry ], [ %t2, %bb ]
27        %q = phi i64 [ 0, %entry ], [ %s2, %bb ]
28        %v = xor i64 %p, %q
29        ret i64 %v
30}
Note: See TracBrowser for help on using the repository browser.