From: Sebastian Pop Date: Mon, 3 Dec 2012 21:34:09 +0000 (+0000) Subject: adapt cloog codegen testcases to isl X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a267d9b829348044a87cbefe34dd7773b01aeef2;p=platform%2Fupstream%2Fllvm.git adapt cloog codegen testcases to isl llvm-svn: 169161 --- diff --git a/polly/test/Isl/CodeGen/20100617.ll b/polly/test/Isl/CodeGen/20100617.ll new file mode 100644 index 0000000..398e620 --- /dev/null +++ b/polly/test/Isl/CodeGen/20100617.ll @@ -0,0 +1,19 @@ +; 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 ] ; [#uses=1] + br i1 false, label %for.cond1, label %for.end32 + +for.cond1: ; preds = %for.cond + %indvar.next2 = add i64 %indvar1, 1 ; [#uses=1] + br label %for.cond + +for.end32: ; preds = %for.cond + ret void +} diff --git a/polly/test/Isl/CodeGen/20100622.ll b/polly/test/Isl/CodeGen/20100622.ll new file mode 100644 index 0000000..02c6775 --- /dev/null +++ b/polly/test/Isl/CodeGen/20100622.ll @@ -0,0 +1,43 @@ +; 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 ] ; [#uses=1] + %indvar.next48 = add i32 %indvar47, 1 ; [#uses=2] + %exitcond50 = icmp eq i32 %indvar.next48, undef ; [#uses=1] + br i1 %exitcond50, label %bb31, label %bb29 + +bb31: ; preds = %bb29, %bb26.loopexit + %errtot.3 = phi float [ undef, %bb26.loopexit ], [ undef, %bb29 ] ; [#uses=0] + ret void +} + +; CHECK: SCOP: diff --git a/polly/test/Isl/CodeGen/20100707.ll b/polly/test/Isl/CodeGen/20100707.ll new file mode 100644 index 0000000..a19d636 --- /dev/null +++ b/polly/test/Isl/CodeGen/20100707.ll @@ -0,0 +1,27 @@ +; 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 ; [#uses=1] + br label %bb8 + +bb7: ; preds = %bb8 + %indvar.next = add i64 %indvar, 1 ; [#uses=1] + br label %bb8 + +bb8: ; preds = %bb7, %bb6 + %indvar = phi i64 [ %indvar.next, %bb7 ], [ 0, %bb6 ] ; [#uses=2] + %exitcond = icmp ne i64 %indvar, %tmp ; [#uses=1] + br i1 %exitcond, label %bb7, label %return + +return: ; preds = %bb8 + ret void +} diff --git a/polly/test/Isl/CodeGen/20100707_2.ll b/polly/test/Isl/CodeGen/20100707_2.ll new file mode 100644 index 0000000..ae46eb2 --- /dev/null +++ b/polly/test/Isl/CodeGen/20100707_2.ll @@ -0,0 +1,115 @@ +; 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 ; [#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 ; [#uses=0] + %3 = getelementptr inbounds [36 x double]* undef, i64 0, i64 0 ; [#uses=0] + %4 = sub nsw i32 17, %k.4 ; [#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 ; [#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 ; [#uses=1] + %10 = load double* %9, align 8 ; [#uses=0] + %11 = fsub double 0.000000e+00, undef ; [#uses=1] + %12 = getelementptr inbounds double* getelementptr inbounds ([4 x [36 x double]]* @win193, i64 0, i64 2, i64 4), i64 0 ; [#uses=1] + store double %11, double* %12, align 8 + %13 = add nsw i32 %k.4, 9 ; [#uses=1] + %14 = add nsw i32 %k.4, 18 ; [#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 ; [#uses=1] + %17 = getelementptr inbounds [36 x double]* %15, i64 0, i64 %16 ; [#uses=1] + %18 = load double* %17, align 8 ; [#uses=0] + %19 = sext i32 %k.4 to 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 ; [#uses=1] + %22 = getelementptr inbounds [32 x double]* %20, i64 0, i64 %21 ; [#uses=1] + %23 = load double* %22, align 8 ; [#uses=0] + %24 = sext i32 %39 to 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 ; [#uses=1] + %27 = load double* %26, align 8 ; [#uses=0] + %28 = sub nsw i32 17, %k.4 ; [#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 ; [#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 ; [#uses=1] + %34 = load double* %33, align 8 ; [#uses=0] + %35 = sext i32 %13 to i64 ; [#uses=1] + %36 = getelementptr inbounds double* getelementptr inbounds ([4 x [36 x double]]* @win193, i64 0, i64 2, i64 4), i64 %35 ; [#uses=1] + store double 0.000000e+00, double* %36, align 8 + %37 = sub nsw i32 %k.4, 1 ; [#uses=1] + br label %bb35 + +bb35: ; preds = %bb34, %bb27 + %k.4 = phi i32 [ %37, %bb34 ], [ 8, %bb27 ] ; [#uses=6] + br i1 undef, label %bb34, label %bb36 + +bb36: ; preds = %bb35 + unreachable + +bb37: ; preds = %bb32, %bb26 + %38 = add nsw i32 %band.2, 1 ; [#uses=1] + br label %bb48 + +bb48: ; preds = %bb37, %bb9 + %band.2 = phi i32 [ %38, %bb37 ], [ 0, %bb9 ] ; [#uses=2] + %39 = load i32* null, align 8 ; [#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 +} diff --git a/polly/test/Isl/CodeGen/20100708_2.ll b/polly/test/Isl/CodeGen/20100708_2.ll new file mode 100644 index 0000000..01a2ad7 --- /dev/null +++ b/polly/test/Isl/CodeGen/20100708_2.ll @@ -0,0 +1,28 @@ +; 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 ] ; [#uses=1] + %tmp3 = trunc i64 undef to i32 ; [#uses=1] + br i1 false, label %bb3, label %bb4 + +bb3: ; preds = %bb2 + %tmp = srem i32 %tmp3, 1024 ; [#uses=0] + store double undef, double* undef + %indvar.next = add i64 %indvar, 1 ; [#uses=1] + br label %bb2 + +bb4: ; preds = %bb2 + br label %bb1 + +bb5: ; preds = %bb1 + ret void +} diff --git a/polly/test/Isl/CodeGen/20100713.ll b/polly/test/Isl/CodeGen/20100713.ll new file mode 100644 index 0000000..cb3cdd4 --- /dev/null +++ b/polly/test/Isl/CodeGen/20100713.ll @@ -0,0 +1,34 @@ +; 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 @fft_float(i32 %NumSamples) nounwind { + br label %bb18 + +bb18: ; preds = %bb17 + br i1 false, label %bb19, label %bb22 + +bb19: ; preds = %bb18 + %a = uitofp i32 %NumSamples to double ; [#uses=1] + br label %bb21 + +bb20: ; preds = %bb21 + %1 = load float* undef, align 4 ; [#uses=0] + %2 = fpext float undef to double ; [#uses=1] + %3 = fdiv double %2, %a ; [#uses=0] + %indvar.next = add i64 %indvar, 1 ; [#uses=1] + br label %bb21 + +bb21: ; preds = %bb20, %bb19 + %indvar = phi i64 [ %indvar.next, %bb20 ], [ 0, %bb19 ] ; [#uses=1] + br i1 false, label %bb20, label %bb22.loopexit + +bb22.loopexit: ; preds = %bb21 + br label %bb22 + +bb22: ; preds = %bb22.loopexit, %bb18 + br label %return + +return: ; preds = %bb22 + ret void +} diff --git a/polly/test/Isl/CodeGen/20100713_2.ll b/polly/test/Isl/CodeGen/20100713_2.ll new file mode 100644 index 0000000..ba81cee --- /dev/null +++ b/polly/test/Isl/CodeGen/20100713_2.ll @@ -0,0 +1,34 @@ +; 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 hidden void @luaD_callhook() nounwind { +entry: + br i1 undef, label %bb, label %return + +bb: ; preds = %entry + br i1 undef, label %bb1, label %return + +bb1: ; preds = %bb + %0 = sub nsw i64 undef, undef ; [#uses=1] + br i1 false, label %bb2, label %bb3 + +bb2: ; preds = %bb1 + br label %bb4 + +bb3: ; preds = %bb1 + br label %bb4 + +bb4: ; preds = %bb3, %bb2 + br i1 undef, label %bb5, label %bb6 + +bb5: ; preds = %bb4 + unreachable + +bb6: ; preds = %bb4 + %1 = getelementptr inbounds i8* undef, i64 %0 ; [#uses=0] + ret void + +return: ; preds = %bb, %entry + ret void +} diff --git a/polly/test/Isl/CodeGen/20100717.ll b/polly/test/Isl/CodeGen/20100717.ll new file mode 100644 index 0000000..acadbbc --- /dev/null +++ b/polly/test/Isl/CodeGen/20100717.ll @@ -0,0 +1,39 @@ +; RUN: opt %loadPolly %defaultOpts -polly-codegen-isl -disable-output %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 @matrixTranspose(double** %A) nounwind { +entry: + br label %bb4 + +bb: ; preds = %bb4 + %0 = add nsw i32 %i.0, 1 ; [#uses=1] + br label %bb2 + +bb1: ; preds = %bb2 + %1 = getelementptr inbounds double** %A, i64 0 ; [#uses=0] + %2 = getelementptr inbounds double** %A, i64 0 ; [#uses=0] + %3 = getelementptr inbounds double** %A, i64 0 ; [#uses=0] + %4 = sext i32 %j.0 to i64 ; [#uses=1] + %5 = getelementptr inbounds double** %A, i64 %4 ; [#uses=1] + %6 = load double** %5, align 8 ; [#uses=0] + %7 = add nsw i32 %j.0, 1 ; [#uses=1] + br label %bb2 + +bb2: ; preds = %bb1, %bb + %j.0 = phi i32 [ %0, %bb ], [ %7, %bb1 ] ; [#uses=3] + %8 = icmp sle i32 %j.0, 50 ; [#uses=1] + br i1 %8, label %bb1, label %bb3 + +bb3: ; preds = %bb2 + %9 = add nsw i32 %i.0, 1 ; [#uses=1] + br label %bb4 + +bb4: ; preds = %bb3, %entry + %i.0 = phi i32 [ 0, %entry ], [ %9, %bb3 ] ; [#uses=3] + %10 = icmp sle i32 %i.0, 50 ; [#uses=1] + br i1 %10, label %bb, label %return + +return: ; preds = %bb4 + ret void +} diff --git a/polly/test/Isl/CodeGen/20100718-DomInfo-2.ll b/polly/test/Isl/CodeGen/20100718-DomInfo-2.ll new file mode 100644 index 0000000..b5b1afa --- /dev/null +++ b/polly/test/Isl/CodeGen/20100718-DomInfo-2.ll @@ -0,0 +1,35 @@ +; RUN: opt %loadPolly %defaultOpts -polly-codegen-isl -verify-dom-info -disable-output < %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 @getNonAffNeighbour() nounwind { +entry: + br i1 undef, label %bb, label %bb6 + +bb: ; preds = %entry + br i1 false, label %bb1, label %bb2 + +bb1: ; preds = %bb + br label %bb16 + +bb2: ; preds = %bb + br i1 false, label %bb3, label %bb4 + +bb3: ; preds = %bb2 + br label %bb16 + +bb4: ; preds = %bb2 + br label %bb16 + +bb6: ; preds = %entry + br i1 false, label %bb7, label %bb9 + +bb7: ; preds = %bb6 + br label %bb16 + +bb9: ; preds = %bb6 + br label %bb16 + +bb16: ; preds = %bb9, %bb7, %bb4, %bb3, %bb1 + ret void +} diff --git a/polly/test/Isl/CodeGen/20100718-DomInfo.ll b/polly/test/Isl/CodeGen/20100718-DomInfo.ll new file mode 100644 index 0000000..d0daa2c --- /dev/null +++ b/polly/test/Isl/CodeGen/20100718-DomInfo.ll @@ -0,0 +1,28 @@ +; RUN: opt %loadPolly %defaultOpts -polly-codegen-isl -verify-dom-info -disable-output < %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 @intrapred_luma_16x16(i32 %predmode) nounwind { +entry: + switch i32 %predmode, label %bb81 [ + i32 0, label %bb25 + i32 1, label %bb26 + ] + +bb23: ; preds = %bb25 + %indvar.next95 = add i64 %indvar94, 1 ; [#uses=1] + br label %bb25 + +bb25: ; preds = %bb23, %entry + %indvar94 = phi i64 [ %indvar.next95, %bb23 ], [ 0, %entry ] ; [#uses=1] + br i1 false, label %bb23, label %return + +bb26: ; preds = %entry + ret void + +bb81: ; preds = %entry + ret void + +return: ; preds = %bb25 + ret void +} diff --git a/polly/test/Isl/CodeGen/20100720-MultipleConditions.ll b/polly/test/Isl/CodeGen/20100720-MultipleConditions.ll new file mode 100644 index 0000000..6424719 --- /dev/null +++ b/polly/test/Isl/CodeGen/20100720-MultipleConditions.ll @@ -0,0 +1,96 @@ +; RUN: opt %loadPolly %defaultOpts -polly-ast -analyze %s + +;int bar1(); +;int bar2(); +;int bar3(); +;int k; +;#define N 100 +;int A[N]; +; +;int main() { +; int i, j, z; +; +; __sync_synchronize(); +; for (i = 0; i < N; i++) { +; if (i < 50) +; A[i] = 8; +; if (i < 4) +; A[i] = 9; +; if (i < 3) +; A[i] = 10; +; } +; __sync_synchronize(); +; +; return A[z]; +;} + +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" + +@A = common global [100 x i32] zeroinitializer, align 16 ; <[100 x i32]*> [#uses=2] +@k = common global i32 0, align 4 ; [#uses=0] + +define i32 @main() nounwind { +;