Test source: git
Source: <stdin> ---------------------------------------- define void @test(i32 %start) denormal-fp-math=ieee,ieee { %entry: br label %loop %loop: %iv = phi i32 [ %start, %entry ], [ %iv.next, %backedge ] %iv.next = add i32 %iv, 4294967295 %loop.exit.cond = icmp slt i32 %iv.next, 11 br i1 %loop.exit.cond, label %exit, label %stuck %exit: %iv.next.lcssa = phi i32 [ %iv.next, %loop ] ret void %stuck: br i1 0, label %backedge, label %stuck %backedge: br label %loop } => define void @test(i32 %start) denormal-fp-math=ieee,ieee { %entry: %0 = zext i32 %start to i64 br label %loop %loop: %indvars.iv = phi i64 [ %indvars.iv.next, %backedge ], [ %0, %entry ] %indvars.iv.next = add nsw nuw i64 %indvars.iv, -1 %indvars = trunc i64 %indvars.iv.next to i32 %loop.exit.cond = icmp slt i32 %indvars, 11 br i1 %loop.exit.cond, label %exit, label %stuck.preheader %exit: %iv.next.lcssa = phi i32 [ %indvars, %loop ] ret void %stuck.preheader: br label %stuck %stuck: br i1 0, label %backedge, label %stuck %backedge: br label %loop } Transformation doesn't verify! (unsound) ERROR: Source is more defined than target Example: i32 %start = #xa0000000 (2684354560, -1610612736) Source: >> Jump to %loop i32 %iv = #xa0000000 (2684354560, -1610612736) i32 %iv.next = #x9fffffff (2684354559, -1610612737) i1 %loop.exit.cond = #x1 (1) >> Jump to %exit i32 %iv.next.lcssa = #x9fffffff (2684354559, -1610612737) Target: i64 %0 = #x00000000a0000000 (2684354560) >> Jump to %loop i64 %indvars.iv = #x00000000a0000000 (2684354560) i64 %indvars.iv.next = poison i32 %indvars = poison i1 %loop.exit.cond = poison UB triggered on br Pass: ModuleToFunctionPassAdaptor Command line: '/home/nlopes/llvm/build/bin/opt' '-load=/home/nlopes/alive2/build/tv/tv.so' '-load-pass-plugin=/home/nlopes/alive2/build/tv/tv.so' '-tv-exit-on-error' '-S' '-passes=module(tv),function(loop(indvars)),module(tv)' '-tv-smt-to=20000' '-tv-report-dir=/home/nlopes/alive2/build/logs' '-tv-smt-stats' ------------------- SMT STATS ------------------- Num queries: 4 Num invalid: 0 Num skips: 0 Num trivial: 7 (63.6%) Num timeout: 0 (0.0%) Num errors: 0 (0.0%) Num SAT: 4 (100.0%) Num UNSAT: 0 (0.0%) Alive2: Transform doesn't verify; aborting!
+ : 'RUN: at line 2' + /home/nlopes/alive2/build/opt-alive.sh -S -passes=indvars + /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/IndVarSimplify/X86/pr57187.ll FileCheck error: '<stdin>' is empty. FileCheck command line: /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/IndVarSimplify/X86/pr57187.ll