Test source: git
Source: <stdin> ---------------------------------------- define i1 @test5(i1 %C) { %0: %V = select i1 %C, i1 0, i1 1 ret i1 %V } => define i1 @test5(i1 %C) { %0: %not.C = xor i1 %C, 1 ret i1 %not.C } Transformation seems to be correct! ---------------------------------------- define i32 @test6(i1 %C) { %0: %V = select i1 %C, i32 1, i32 0 ret i32 %V } => define i32 @test6(i1 %C) { %0: %V = zext i1 %C to i32 ret i32 %V } Transformation seems to be correct! ---------------------------------------- define i1 @trueval_is_true(i1 %C, i1 %X) { %0: %R = select i1 %C, i1 1, i1 %X ret i1 %R } => define i1 @trueval_is_true(i1 %C, i1 %X) { %0: %R = or i1 %C, %X ret i1 %R } Transformation doesn't verify! ERROR: Target is more poisonous than source Example: i1 %C = #x1 (1) i1 %X = poison Source: i1 %R = #x1 (1) Target: i1 %R = poison Source value: #x1 (1) Target value: poison ------------------- SMT STATS ------------------- Num queries: 6 Num invalid: 0 Num skips: 0 Num trivial: 10 (62.5%) Num timeout: 0 (0.0%) Num errors: 0 (0.0%) Num SAT: 4 (66.7%) Num UNSAT: 2 (33.3%)
+ : 'RUN: at line 2' + /home/nlopes/alive2/scripts/opt-alive.sh -instcombine -S + /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/InstCombine/select.ll Alive2: Transform doesn't verify; aborting! FileCheck error: '<stdin>' is empty. FileCheck command line: /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/InstCombine/select.ll