Update Polly tests to handle explicitly typed gep changes in LLVM
[polly-mirror.git] / test / Isl / Ast / OpenMP / nested_loop_both_parallel.ll
blobd8eb5f8bff194b8c04f1ce503a1df4d2ad569502
1 ; RUN: opt %loadPolly -polly-detect-unprofitable -polly-ast -polly-parallel -analyze < %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"
3 target triple = "x86_64-pc-linux-gnu"
5 ; for (i = 0; i < 1024; i++)
6 ;   for (j = 0; j < 1024; j++)
7 ;     A[i][j] = 1;
9 @A = common global [1024 x [1024 x i32]] zeroinitializer
10 define void @bar() {
11 start:
12   fence seq_cst
13   br label %loop.i
15 loop.i:
16   %i = phi i64 [ 0, %start ], [ %i.next, %loop.i.backedge ]
17   %exitcond.i = icmp ne i64 %i, 1024
18   br i1 %exitcond.i, label %loop.j, label %ret
20 loop.j:
21   %j = phi i64 [ 0, %loop.i], [ %j.next, %loop.j.backedge ]
22   %exitcond.j = icmp ne i64 %j, 1024
23   br i1 %exitcond.j, label %loop.body, label %loop.i.backedge
25 loop.body:
26   %scevgep = getelementptr [1024 x [1024 x i32] ], [1024 x [1024 x i32] ]* @A, i64 0, i64 %j, i64 %i
27   store i32 1, i32* %scevgep
28   br label %loop.j.backedge
30 loop.j.backedge:
31   %j.next = add nsw i64 %j, 1
32   br label %loop.j
34 loop.i.backedge:
35   %i.next = add nsw i64 %i, 1
36   br label %loop.i
38 ret:
39   fence seq_cst
40   ret void
43 ; Make sure we do not accidentally generate nested openmp parallel for
44 ; annotations.
46 ; CHECK:     #pragma omp parallel for
47 ; CHECK:     for (int c0 = 0; c0 <= 1023; c0 += 1)
48 ; CHECK-NOT:   #pragma omp parallel for
49 ; CHECK:       #pragma simd
50 ; CHECK-NOT:   #pragma omp parallel for
51 ; CHECK:       for (int c1 = 0; c1 <= 1023; c1 += 1)
52 ; CHECK:         Stmt_loop_body(c0, c1);