81 lines · plain
1; Test "llvm.loop.estimated_trip_count" validation2 3; DEFINE: %{RUN} = opt -passes=verify %t -disable-output 2>&1 | \4; DEFINE: FileCheck %s -allow-empty -check-prefix5 6define void @test() {7entry:8 br label %body9body:10 br i1 0, label %body, label %exit, !llvm.loop !011exit:12 ret void13}14!0 = distinct !{!0, !1}15 16; GOOD-NOT: {{.}}17 18; BAD-VALUE: Expected second operand to be an integer constant of type i32 or smaller19; BAD-VALUE-NEXT: !1 = !{!"llvm.loop.estimated_trip_count",20 21; TOO-FEW: Expected two operands22; TOO-FEW-NEXT: !1 = !{!"llvm.loop.estimated_trip_count"}23 24; TOO-MANY: Expected two operands25; TOO-MANY-NEXT: !1 = !{!"llvm.loop.estimated_trip_count", i32 5, i32 5}26 27; No value.28; RUN: cp %s %t29; RUN: chmod u+w %t30; RUN: echo '!1 = !{!"llvm.loop.estimated_trip_count"}' >> %t31; RUN: not %{RUN} TOO-FEW32 33; i16 value.34; RUN: cp %s %t35; RUN: chmod u+w %t36; RUN: echo '!1 = !{!"llvm.loop.estimated_trip_count", i16 5}' >> %t37; RUN: %{RUN} GOOD38 39; i32 arbitrary value.40; RUN: cp %s %t41; RUN: chmod u+w %t42; RUN: echo '!1 = !{!"llvm.loop.estimated_trip_count", i32 5}' >> %t43; RUN: %{RUN} GOOD44 45; i32 boundary value of 1.46; RUN: cp %s %t47; RUN: chmod u+w %t48; RUN: echo '!1 = !{!"llvm.loop.estimated_trip_count", i32 1}' >> %t49; RUN: %{RUN} GOOD50 51; i32 boundary value of 0.52; RUN: cp %s %t53; RUN: chmod u+w %t54; RUN: echo '!1 = !{!"llvm.loop.estimated_trip_count", i32 0}' >> %t55; RUN: %{RUN} GOOD56 57; i64 value.58; RUN: cp %s %t59; RUN: chmod u+w %t60; RUN: echo '!1 = !{!"llvm.loop.estimated_trip_count", i64 5}' >> %t61; RUN: not %{RUN} BAD-VALUE62 63; MDString value.64; RUN: cp %s %t65; RUN: chmod u+w %t66; RUN: echo '!1 = !{!"llvm.loop.estimated_trip_count", !"5"}' >> %t67; RUN: not %{RUN} BAD-VALUE68 69; MDNode value.70; RUN: cp %s %t71; RUN: chmod u+w %t72; RUN: echo '!1 = !{!"llvm.loop.estimated_trip_count", !2}' >> %t73; RUN: echo '!2 = !{i32 5}' >> %t74; RUN: not %{RUN} BAD-VALUE75 76; Too many values.77; RUN: cp %s %t78; RUN: chmod u+w %t79; RUN: echo '!1 = !{!"llvm.loop.estimated_trip_count", i32 5, i32 5}' >> %t80; RUN: not %{RUN} TOO-MANY81