Test Failure: Transforms/InstCombine/select.ll

Test source: git

Log:

Source: <stdin>
ERROR: Unsupported type: <vscale x 2 x i1>
ERROR: Unsupported type: <vscale x 2 x i1>
ERROR: Unsupported type: <vscale x 4 x float>
ERROR: Unsupported type: <vscale x 4 x float>
ERROR: Unsupported type: <vscale x 4 x float>
ERROR: Unsupported instruction:   %cond = invoke i1 @foo()
          to label %invoke.cont unwind label %lpad
ERROR: Unsupported instruction:   %result = invoke i32 @bar()
          to label %merge unwind label %lpad

----------------------------------------
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: 8
Num invalid: 0
Num skips:   0
Num trivial: 13 (61.9%)
Num timeout: 0 (0.0%)
Num errors:  0 (0.0%)
Num SAT:     4 (50.0%)
Num UNSAT:   4 (50.0%)
Alive2: Transform doesn't verify; aborting!

stderr:

+ : 'RUN: at line 2'
+ /home/nlopes/alive2/build/opt-alive.sh -instcombine -S
+ /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/InstCombine/select.ll

FileCheck error: '<stdin>' is empty.
FileCheck command line:  /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/InstCombine/select.ll

 

<-- Back