Commit 047be171 authored by Tobias Grosser's avatar Tobias Grosser
Browse files

adapt cloog codegen testcases to isl

parent c3960e42
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
; RUN: opt %loadPolly %defaultOpts -polly-codegen-isl %s
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"
target triple = "x86_64-unknown-linux-gnu"

define void @init_array() nounwind {
entry:
  br label %for.cond

for.cond:                                         ; preds = %for.cond1, %entry
  %indvar1 = phi i64 [ %indvar.next2, %for.cond1 ], [ 0, %entry ] ; <i64> [#uses=1]
  br i1 false, label %for.cond1, label %for.end32

for.cond1:                                        ; preds = %for.cond
  %indvar.next2 = add i64 %indvar1, 1             ; <i64> [#uses=1]
  br label %for.cond

for.end32:                                        ; preds = %for.cond
  ret void
}
+43 −0
Original line number Diff line number Diff line
; RUN: opt %loadPolly %defaultOpts -polly-codegen-isl %s
; RUN: opt %loadPolly %defaultOpts -polly-detect -analyze  < %s | not FileCheck %s

target 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:32:32"
target triple = "i386-portbld-freebsd8.0"

define void @MAIN__() nounwind {
entry:
  br i1 undef, label %bb6.preheader, label %bb3

bb3:                                              ; preds = %bb3, %entry
  br i1 undef, label %bb6.preheader, label %bb3

bb6.preheader:                                    ; preds = %bb3, %entry
  br i1 undef, label %bb11, label %bb9.preheader

bb9.preheader:                                    ; preds = %bb6.preheader
  br label %bb11

bb11:                                             ; preds = %bb9.preheader, %bb6.preheader
  br label %bb15

bb15:                                             ; preds = %bb15, %bb11
  br i1 undef, label %bb26.loopexit, label %bb15

bb26.loopexit:                                    ; preds = %bb15
  br i1 undef, label %bb31, label %bb29.preheader

bb29.preheader:                                   ; preds = %bb26.loopexit
  br label %bb29

bb29:                                             ; preds = %bb29, %bb29.preheader
  %indvar47 = phi i32 [ 0, %bb29.preheader ], [ %indvar.next48, %bb29 ] ; <i32> [#uses=1]
  %indvar.next48 = add i32 %indvar47, 1           ; <i32> [#uses=2]
  %exitcond50 = icmp eq i32 %indvar.next48, undef ; <i1> [#uses=1]
  br i1 %exitcond50, label %bb31, label %bb29

bb31:                                             ; preds = %bb29, %bb26.loopexit
  %errtot.3 = phi float [ undef, %bb26.loopexit ], [ undef, %bb29 ] ; <float> [#uses=0]
  ret void
}

; CHECK: SCOP:
+27 −0
Original line number Diff line number Diff line
; RUN: opt %loadPolly %defaultOpts -polly-codegen-isl %s
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"
target triple = "x86_64-unknown-linux-gnu"

define void @clause_SetSplitField(i32 %Length) nounwind inlinehint {
entry:
  br i1 undef, label %bb1, label %bb6

bb1:                                              ; preds = %entry
  unreachable

bb6:                                              ; preds = %entry
  %tmp = zext i32 %Length to i64                  ; <i64> [#uses=1]
  br label %bb8

bb7:                                              ; preds = %bb8
  %indvar.next = add i64 %indvar, 1               ; <i64> [#uses=1]
  br label %bb8

bb8:                                              ; preds = %bb7, %bb6
  %indvar = phi i64 [ %indvar.next, %bb7 ], [ 0, %bb6 ] ; <i64> [#uses=2]
  %exitcond = icmp ne i64 %indvar, %tmp           ; <i1> [#uses=1]
  br i1 %exitcond, label %bb7, label %return

return:                                           ; preds = %bb8
  ret void
}
+115 −0
Original line number Diff line number Diff line
; RUN: opt %loadPolly %defaultOpts -polly-codegen-isl %s
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"
target triple = "x86_64-unknown-linux-gnu"

@win193 = external global [4 x [36 x double]], align 32 ; <[4 x [36 x double]]*> [#uses=3]
@sb_sample = external global [2 x [2 x [18 x [32 x double]]]], align 32 ; <[2 x [2 x [18 x [32 x double]]]]*> [#uses=2]

define void @mdct_sub48() nounwind {
entry:
  br i1 undef, label %bb, label %bb54

bb:                                               ; preds = %entry
  br label %bb54

bb3:                                              ; preds = %bb50
  br label %bb8

bb4:                                              ; preds = %bb8
  br label %bb8

bb8:                                              ; preds = %bb4, %bb3
  br i1 undef, label %bb4, label %bb9

bb9:                                              ; preds = %bb8
  br label %bb48

bb25:                                             ; preds = %bb48
  br i1 false, label %bb26, label %bb27

bb26:                                             ; preds = %bb48, %bb25
  br label %bb37

bb27:                                             ; preds = %bb25
  br i1 undef, label %bb32, label %bb35

bb32:                                             ; preds = %bb27
  br label %bb37

bb34:                                             ; preds = %bb35
  %0 = getelementptr inbounds [36 x double]* undef, i64 0, i64 0 ; <double*> [#uses=0]
  %1 = getelementptr inbounds [18 x [32 x double]]* undef, i64 0, i64 0 ; <[32 x double]*> [#uses=1]
  %2 = getelementptr inbounds [32 x double]* %1, i64 0, i64 0 ; <double*> [#uses=0]
  %3 = getelementptr inbounds [36 x double]* undef, i64 0, i64 0 ; <double*> [#uses=0]
  %4 = sub nsw i32 17, %k.4                       ; <i32> [#uses=1]
  %5 = getelementptr inbounds [2 x [2 x [18 x [32 x double]]]]* @sb_sample, i64 0, i64 0 ; <[2 x [18 x [32 x double]]]*> [#uses=1]
  %6 = getelementptr inbounds [2 x [18 x [32 x double]]]* %5, i64 0, i64 0 ; <[18 x [32 x double]]*> [#uses=1]
  %7 = sext i32 %4 to i64                         ; <i64> [#uses=1]
  %8 = getelementptr inbounds [18 x [32 x double]]* %6, i64 0, i64 %7 ; <[32 x double]*> [#uses=1]
  %9 = getelementptr inbounds [32 x double]* %8, i64 0, i64 0 ; <double*> [#uses=1]
  %10 = load double* %9, align 8                  ; <double> [#uses=0]
  %11 = fsub double 0.000000e+00, undef           ; <double> [#uses=1]
  %12 = getelementptr inbounds double* getelementptr inbounds ([4 x [36 x double]]* @win193, i64 0, i64 2, i64 4), i64 0 ; <double*> [#uses=1]
  store double %11, double* %12, align 8
  %13 = add nsw i32 %k.4, 9                       ; <i32> [#uses=1]
  %14 = add nsw i32 %k.4, 18                      ; <i32> [#uses=1]
  %15 = getelementptr inbounds [4 x [36 x double]]* @win193, i64 0, i64 0 ; <[36 x double]*> [#uses=1]
  %16 = sext i32 %14 to i64                       ; <i64> [#uses=1]
  %17 = getelementptr inbounds [36 x double]* %15, i64 0, i64 %16 ; <double*> [#uses=1]
  %18 = load double* %17, align 8                 ; <double> [#uses=0]
  %19 = sext i32 %k.4 to i64                      ; <i64> [#uses=1]
  %20 = getelementptr inbounds [18 x [32 x double]]* undef, i64 0, i64 %19 ; <[32 x double]*> [#uses=1]
  %21 = sext i32 %band.2 to i64                   ; <i64> [#uses=1]
  %22 = getelementptr inbounds [32 x double]* %20, i64 0, i64 %21 ; <double*> [#uses=1]
  %23 = load double* %22, align 8                 ; <double> [#uses=0]
  %24 = sext i32 %39 to i64                       ; <i64> [#uses=1]
  %25 = getelementptr inbounds [4 x [36 x double]]* @win193, i64 0, i64 %24 ; <[36 x double]*> [#uses=1]
  %26 = getelementptr inbounds [36 x double]* %25, i64 0, i64 0 ; <double*> [#uses=1]
  %27 = load double* %26, align 8                 ; <double> [#uses=0]
  %28 = sub nsw i32 17, %k.4                      ; <i32> [#uses=1]
  %29 = getelementptr inbounds [2 x [2 x [18 x [32 x double]]]]* @sb_sample, i64 0, i64 0 ; <[2 x [18 x [32 x double]]]*> [#uses=1]
  %30 = getelementptr inbounds [2 x [18 x [32 x double]]]* %29, i64 0, i64 0 ; <[18 x [32 x double]]*> [#uses=1]
  %31 = sext i32 %28 to i64                       ; <i64> [#uses=1]
  %32 = getelementptr inbounds [18 x [32 x double]]* %30, i64 0, i64 %31 ; <[32 x double]*> [#uses=1]
  %33 = getelementptr inbounds [32 x double]* %32, i64 0, i64 0 ; <double*> [#uses=1]
  %34 = load double* %33, align 8                 ; <double> [#uses=0]
  %35 = sext i32 %13 to i64                       ; <i64> [#uses=1]
  %36 = getelementptr inbounds double* getelementptr inbounds ([4 x [36 x double]]* @win193, i64 0, i64 2, i64 4), i64 %35 ; <double*> [#uses=1]
  store double 0.000000e+00, double* %36, align 8
  %37 = sub nsw i32 %k.4, 1                       ; <i32> [#uses=1]
  br label %bb35

bb35:                                             ; preds = %bb34, %bb27
  %k.4 = phi i32 [ %37, %bb34 ], [ 8, %bb27 ]     ; <i32> [#uses=6]
  br i1 undef, label %bb34, label %bb36

bb36:                                             ; preds = %bb35
  unreachable

bb37:                                             ; preds = %bb32, %bb26
  %38 = add nsw i32 %band.2, 1                    ; <i32> [#uses=1]
  br label %bb48

bb48:                                             ; preds = %bb37, %bb9
  %band.2 = phi i32 [ %38, %bb37 ], [ 0, %bb9 ]   ; <i32> [#uses=2]
  %39 = load i32* null, align 8                   ; <i32> [#uses=1]
  br i1 undef, label %bb26, label %bb25

bb50:                                             ; preds = %bb54
  br i1 undef, label %bb3, label %bb51

bb51:                                             ; preds = %bb50
  br i1 undef, label %bb52, label %bb53

bb52:                                             ; preds = %bb51
  unreachable

bb53:                                             ; preds = %bb51
  br label %bb54

bb54:                                             ; preds = %bb53, %bb, %entry
  br i1 undef, label %bb50, label %return

return:                                           ; preds = %bb54
  ret void
}
+28 −0
Original line number Diff line number Diff line
; RUN: opt %loadPolly %defaultOpts -polly-codegen-isl %s
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"
target triple = "x86_64-pc-linux-gnu"

define void @init_array() nounwind {
bb:
  br label %bb1

bb1:                                              ; preds = %bb4, %bb
  br i1 undef, label %bb2, label %bb5

bb2:                                              ; preds = %bb3, %bb1
  %indvar = phi i64 [ %indvar.next, %bb3 ], [ 0, %bb1 ] ; <i64> [#uses=1]
  %tmp3 = trunc i64 undef to i32                  ; <i32> [#uses=1]
  br i1 false, label %bb3, label %bb4

bb3:                                              ; preds = %bb2
  %tmp = srem i32 %tmp3, 1024                     ; <i32> [#uses=0]
  store double undef, double* undef
  %indvar.next = add i64 %indvar, 1               ; <i64> [#uses=1]
  br label %bb2

bb4:                                              ; preds = %bb2
  br label %bb1

bb5:                                              ; preds = %bb1
  ret void
}
Loading