Test source: git
Source: <stdin> ---------------------------------------- define i64 @cttz(i64 %A) { %entry: %z = cttz i64 %A, 0 ret i64 %z } => define i64 @cttz(i64 %A) { %entry: %A.fr = freeze i64 %A %cmpz = icmp eq i64 %A.fr, 0 br i1 %cmpz, label %cond.end, label %cond.false %cond.false: %z = cttz i64 %A, 1 br label %cond.end %cond.end: %ctz = phi i64 [ 64, %entry ], [ %z, %cond.false ] ret i64 %ctz } Transformation doesn't verify! ERROR: Target is more poisonous than source Example: i64 %A = undef Source: i64 %z = #x0000000000000040 (64) [based on undef value] Target: i64 %A.fr = #x0000000000000001 (1) i1 %cmpz = #x0 (0) >> Jump to %cond.false i64 %z = poison >> Jump to %cond.end i64 %ctz = poison Source value: #x0000000000000040 (64) Target value: poison ------------------- SMT STATS ------------------- Num queries: 5 Num invalid: 0 Num skips: 0 Num trivial: 7 (58.3%) Num timeout: 0 (0.0%) Num errors: 0 (0.0%) Num SAT: 5 (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 -codegenprepare + /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/CodeGenPrepare/X86/cttz-ctlz.ll --check-prefix=SLOW FileCheck error: '<stdin>' is empty. FileCheck command line: /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/CodeGenPrepare/X86/cttz-ctlz.ll --check-prefix=SLOW
NOTE: This test would pass if undef didn't exist!