brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.9 KiB · 0b7d0bd Raw
219 lines · plain
1; RUN: opt < %s -disable-output -passes=indvars2 3; Do not timeout (and do not crash).4;5; This test case used to take around 10 minutes to run (well, that of course6; depends on which kind of build that is used and on which kind of server the7; test is executed). There is a less reduced version of this test case in8; PR51869 that takes much longer time to execute (I've not seen that one9; terminate within reasonable time). Maybe this test case is reduced a bit too10; much if being considered as a regression tests that would timeout without11; the fix. It can at least be used to show compile time explosion that12; happened when using isKnownPredicate inside ScalarEvolution::isImpliedCond.13 14@v_228 = external dso_local global i32, align 115 16; Function Attrs: nounwind17define dso_local i16 @main(ptr %0, ptr %1, ptr %2, ptr %3, ptr %4, ptr %5, ptr %6, ptr %7, ptr %8, ptr %9, ptr %10, i1 %11) #0 {18  br i1 %11, label %27, label %1319 2013:                                               ; preds = %1221  %14 = load i32, ptr @v_228, align 122  %15 = trunc i32 %14 to i1623  %16 = mul i16 %15, 224  %17 = sub i16 10, %1625  %18 = icmp ult i16 10, %1626  %19 = icmp ult i16 %17, 127  %20 = or i1 %18, %1928  br i1 %20, label %139, label %2129 3021:                                               ; preds = %1331  %22 = add i16 %16, 132  %23 = sub i16 10, %2233  %24 = icmp ult i16 10, %2234  %25 = icmp ult i16 %23, 135  %26 = or i1 %24, %2536  br i1 %26, label %139, label %2737 3827:                                               ; preds = %21, %1239  %28 = load i16, ptr %1, align 140  br label %2941 4229:                                               ; preds = %29, %2743  %30 = phi i16 [ %28, %27 ], [ %31, %29 ]44  %31 = add i16 %30, 145  %32 = icmp slt i16 %31, 2846  br i1 %32, label %29, label %3347 4833:                                               ; preds = %2949  %34 = load i16, ptr %2, align 150  br label %3551 5235:                                               ; preds = %43, %3353  %36 = phi i16 [ %34, %33 ], [ %44, %43 ]54  %37 = sext i16 %36 to i3255  %38 = mul i32 %37, 256  %39 = sub i32 56, %3857  %40 = icmp ult i32 56, %3858  %41 = icmp ult i32 %39, 259  %42 = or i1 %40, %4160  br i1 %42, label %139, label %4361 6243:                                               ; preds = %3563  %44 = add i16 %36, 164  %45 = icmp slt i16 %44, 2865  br i1 %45, label %35, label %4666 6746:                                               ; preds = %4368  %47 = load i16, ptr %3, align 169  br label %4870 7148:                                               ; preds = %55, %4672  %49 = phi i16 [ %47, %46 ], [ %56, %55 ]73  %50 = mul i16 %49, 474  %51 = sub i16 28, %5075  %52 = icmp ult i16 28, %5076  %53 = icmp ult i16 %51, 477  %54 = or i1 %52, %5378  br i1 %54, label %139, label %5579 8055:                                               ; preds = %4881  %56 = add i16 %49, 182  %57 = icmp slt i16 %56, 783  br i1 %57, label %48, label %5884 8558:                                               ; preds = %5586  %59 = load i16, ptr %4, align 187  br label %6088 8960:                                               ; preds = %67, %5890  %61 = phi i16 [ %59, %58 ], [ %68, %67 ]91  %62 = sext i16 %61 to i3292  %63 = sub i32 1, %6293  %64 = icmp ult i32 1, %6294  %65 = icmp ult i32 %63, 195  %66 = or i1 %64, %6596  br i1 %66, label %139, label %6797 9867:                                               ; preds = %6099  %68 = add i16 %61, 1100  %69 = icmp slt i16 %68, 1101  br i1 %69, label %60, label %70102 10370:                                               ; preds = %67104  %71 = load i16, ptr %5, align 1105  br label %72106 10772:                                               ; preds = %79, %70108  %73 = phi i16 [ %71, %70 ], [ %80, %79 ]109  %74 = sext i16 %73 to i32110  %75 = sub i32 1, %74111  %76 = icmp ult i32 1, %74112  %77 = icmp ult i32 %75, 1113  %78 = or i1 %76, %77114  br i1 %78, label %139, label %79115 11679:                                               ; preds = %72117  %80 = add i16 %73, 1118  %81 = icmp slt i16 %80, 1119  br i1 %81, label %72, label %82120 12182:                                               ; preds = %79122  %83 = load i16, ptr %6, align 1123  br label %84124 12584:                                               ; preds = %91, %82126  %85 = phi i16 [ %83, %82 ], [ %92, %91 ]127  %86 = sext i16 %85 to i32128  %87 = sub i32 1, %86129  %88 = icmp ult i32 1, %86130  %89 = icmp ult i32 %87, 1131  %90 = or i1 %88, %89132  br i1 %90, label %139, label %91133 13491:                                               ; preds = %84135  %92 = add i16 %85, 1136  %93 = icmp slt i16 %92, 1137  br i1 %93, label %84, label %94138 13994:                                               ; preds = %91140  %95 = load i16, ptr %7, align 1141  br label %96142 14396:                                               ; preds = %103, %94144  %97 = phi i16 [ %95, %94 ], [ %104, %103 ]145  %98 = sext i16 %97 to i32146  %99 = sub i32 1, %98147  %100 = icmp ult i32 1, %98148  %101 = icmp ult i32 %99, 1149  %102 = or i1 %100, %101150  br i1 %102, label %139, label %103151 152103:                                              ; preds = %96153  %104 = add i16 %97, 1154  %105 = icmp slt i16 %104, 1155  br i1 %105, label %96, label %106156 157106:                                              ; preds = %103158  %107 = load i16, ptr %8, align 1159  br label %108160 161108:                                              ; preds = %115, %106162  %109 = phi i16 [ %107, %106 ], [ %116, %115 ]163  %110 = mul i16 %109, 4164  %111 = sub i16 24, %110165  %112 = icmp ult i16 24, %110166  %113 = icmp ult i16 %111, 4167  %114 = or i1 %112, %113168  br i1 %114, label %139, label %115169 170115:                                              ; preds = %108171  %116 = add i16 %109, 1172  %117 = icmp slt i16 %116, 6173  br i1 %117, label %108, label %118174 175118:                                              ; preds = %115176  %119 = load i16, ptr %9, align 1177  br label %120178 179120:                                              ; preds = %128, %118180  %121 = phi i16 [ %119, %118 ], [ %129, %128 ]181  %122 = sext i16 %121 to i32182  %123 = mul i32 %122, 2183  %124 = sub i32 4, %123184  %125 = icmp ult i32 4, %123185  %126 = icmp ult i32 %124, 2186  %127 = or i1 %125, %126187  br i1 %127, label %139, label %128188 189128:                                              ; preds = %120190  %129 = add i16 %121, 1191  %130 = icmp slt i16 %129, 2192  br i1 %130, label %120, label %131193 194131:                                              ; preds = %128195  %132 = load i16, ptr %10, align 1196  br label %133197 198133:                                              ; preds = %133, %131199  %134 = phi i16 [ %132, %131 ], [ %135, %133 ]200  %135 = add i16 %134, 1201  %136 = icmp slt i16 %135, 6202  br i1 %136, label %133, label %137203 204137:                                              ; preds = %133205  %138 = load i16, ptr %0, align 1206  ret i16 %138207 208139:                                              ; preds = %120, %108, %96, %84, %72, %60, %48, %35, %21, %13209  call void @llvm.trap() #2210  unreachable211}212 213; Function Attrs: cold noreturn nounwind214declare void @llvm.trap() #1215 216attributes #0 = { nounwind }217attributes #1 = { cold noreturn nounwind }218attributes #2 = { noreturn nounwind }219