Update Polly tests to handle explicitly typed gep changes in LLVM
[polly-mirror.git] / test / ScopInfo / constant_start_integer.ll
blobca8157f8a376443fb50de59a5d88fe671a316728
1 ; RUN: opt %loadPolly -polly-detect-unprofitable -polly-scops -analyze -polly-delinearize < %s | FileCheck %s
2 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
3 target triple = "x86_64-unknown-linux-gnu"
5 ; void foo(float *input) {
6 ;   for (int j = 0; j < 8; j++) {
7 ;     //SCoP begin
8 ;     for (int i = 0; i < 63; i++) {
9 ;       float x = input[j * 64 + i + 1];
10 ;       input[j * 64 + i + 0] = x * x;
11 ;     }
12 ;   }
13 ; }
15 ; CHECK  p0: {0,+,256}<%for.cond1.preheader>
16 ; CHECK-NOT: p1
18 ; CHECK: ReadAccess
19 ; CHECK:   [p_0] -> { Stmt_for_body3[i0] -> MemRef_input[o0] : 4o0 = 4 + p_0 + 4i0 };
20 ; CHECK: MustWriteAccess
21 ; CHECK:   [p_0] -> { Stmt_for_body3[i0] -> MemRef_input[o0] : 4o0 = p_0 + 4i0 };
23 define void @foo(float* nocapture %input) {
24 entry:
25   br label %for.cond1.preheader
27 for.cond1.preheader:                              ; preds = %for.inc10, %entry
28   %j.021 = phi i64 [ 0, %entry ], [ %inc11, %for.inc10 ]
29   %mul = shl nsw i64 %j.021, 6
30   br label %for.body3
32 for.body3:                                        ; preds = %for.body3, %for.cond1.preheader
33   %i.020 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
34   %add = add nsw i64 %i.020, %mul
35   %add4 = add nsw i64 %add, 1
36   %arrayidx = getelementptr inbounds float, float* %input, i64 %add4
37   %0 = load float* %arrayidx, align 8
38   %mul5 = fmul float %0, %0
39   %arrayidx9 = getelementptr inbounds float, float* %input, i64 %add
40   store float %mul5, float* %arrayidx9, align 8
41   %inc = add nsw i64 %i.020, 1
42   %exitcond = icmp eq i64 %inc, 63
43   br i1 %exitcond, label %for.inc10, label %for.body3
45 for.inc10:                                        ; preds = %for.body3
46   %inc11 = add nsw i64 %j.021, 1
47   %exitcond22 = icmp eq i64 %inc11, 8
48   fence seq_cst
49   br i1 %exitcond22, label %for.end12, label %for.cond1.preheader
51 for.end12:                                        ; preds = %for.inc10
52   ret void