Index: test/GPGPU/crash.ll =================================================================== --- /dev/null +++ test/GPGPU/crash.ll @@ -0,0 +1,45 @@ +; RUN: opt %loadPolly -polly-codegen-ppcg -polly-invariant-load-hoisting \ +; RUN: -disable-output < %s | \ +; RUN: FileCheck -check-prefix=KERNEL %s + +; REQUIRES: pollyacc + +target datalayout = "e-p:64:64:64-S128-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f16:16:16-f32:32:32-f64:64:64-f128:128:128-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" + +; Function Attrs: noinline nounwind uwtable +define void @__radiation_rg_MOD_coe_so([0 x double]* noalias %pduh2oc, [0 x double]* noalias %pduh2of, [0 x double]* noalias %pduco2, [0 x double]* noalias %pduo3, [0 x double]* noalias %palogp, [0 x double]* noalias %palogt, [0 x double]* noalias %podsc, [0 x double]* noalias %podsf, [0 x double]* noalias %podac, [0 x double]* noalias %podaf, [0 x double]* noalias %pbsfc, [0 x double]* noalias %pbsff, [0 x double]* noalias %pusfc, [0 x double]* noalias %pusff, [0 x double]* noalias %psmu0, [0 x double]* noalias %pqsmu0, i32* noalias %ki3, i32* noalias %kspec, i32* noalias %kh2o, i32* noalias %kco2, i32* noalias %ko3, i32* noalias %ki1sd, i32* noalias %ki1ed, i32* noalias %ki3sd, i32* noalias %ki3ed, i32* noalias %ki1sc, i32* noalias %ki1ec, i32* noalias %ldebug, i32* noalias %jindex, [0 x double]* noalias %pa1c, [0 x double]* noalias %pa1f, [0 x double]* noalias %pa2c, [0 x double]* noalias %pa2f, [0 x double]* noalias %pa3c, [0 x double]* noalias %pa3f, [0 x double]* noalias %pa4c, [0 x double]* noalias %pa4f, [0 x double]* noalias %pa5c, [0 x double]* noalias %pa5f) #0 { +entry: + br label %entry.split + +entry.split: ; preds = %entry + %0 = load i32, i32* %ki1sd, align 4 + %1 = sext i32 %0 to i64 + %2 = load i32, i32* %ki1ec, align 4 + %3 = icmp sgt i32 %2, -1 + br i1 %3, label %"3.preheader", label %return + +"3.preheader": ; preds = %entry.split + br label %"3" + +"3": ; preds = %"3.preheader", %"3" + %4 = phi i32 [ %11, %"3" ], [ 0, %"3.preheader" ] + %5 = load i32, i32* %kh2o, align 4 + %6 = icmp eq i32 %5, 0 + %. = select i1 %6, double 2.000000e+01, double 2.200000e+02 + %7 = sext i32 %4 to i64 + %8 = sub nsw i64 %7, %1 + %9 = getelementptr [0 x double], [0 x double]* %pa3f, i64 0, i64 %8 + store double %., double* %9, align 8 + %10 = icmp eq i32 %4, %2 + %11 = add i32 %4, 1 + br i1 %10, label %return.loopexit, label %"3" + +return.loopexit: ; preds = %"3" + br label %return + +return: ; preds = %return.loopexit, %entry.split + ret void +} + +attributes #0 = { noinline nounwind uwtable }