Test Failure: Transforms/InstSimplify/fcmp-select.ll

Test source: git

Log:

Source: <stdin>

----------------------------------------
define double @oeq(double %x) {
%0:
  %cmp = fcmp oeq double %x, 42.000000
  %cond = select i1 %cmp, double %x, double 42.000000
  ret double %cond
}
=>
define double @oeq(double %x) {
%0:
  ret double 42.000000
}
Transformation seems to be correct!


----------------------------------------
define float @oeq_swapped(float %x) {
%0:
  %cmp = fcmp oeq float %x, 42.000000
  %cond = select i1 %cmp, float 42.000000, float %x
  ret float %cond
}
=>
define float @oeq_swapped(float %x) {
%0:
  ret float %x
}
Transformation seems to be correct!


----------------------------------------
define double @une(double %x) {
%0:
  %cmp = fcmp une double %x, 42.000000
  %cond = select i1 %cmp, double %x, double 42.000000
  ret double %cond
}
=>
define double @une(double %x) {
%0:
  ret double %x
}
Transformation seems to be correct!


----------------------------------------
define double @une_swapped(double %x) {
%0:
  %cmp = fcmp une double %x, 42.000000
  %cond = select i1 %cmp, double 42.000000, double %x
  ret double %cond
}
=>
define double @une_swapped(double %x) {
%0:
  ret double 42.000000
}
Transformation seems to be correct!


----------------------------------------
define double @oeq_zero(double %x) {
%0:
  %cmp = fcmp oeq double %x, 0.000000
  %cond = select i1 %cmp, double %x, double 0.000000
  ret double %cond
}
=>
define double @oeq_zero(double %x) {
%0:
  %cmp = fcmp oeq double %x, 0.000000
  %cond = select i1 %cmp, double %x, double 0.000000
  ret double %cond
}
Transformation seems to be correct!


----------------------------------------
define float @oeq_zero_swapped(float %x) {
%0:
  %cmp = fcmp oeq float %x, 0.000000
  %cond = select i1 %cmp, float 0.000000, float %x
  ret float %cond
}
=>
define float @oeq_zero_swapped(float %x) {
%0:
  %cmp = fcmp oeq float %x, 0.000000
  %cond = select i1 %cmp, float 0.000000, float %x
  ret float %cond
}
Transformation seems to be correct!


----------------------------------------
define double @une_zero(double %x) {
%0:
  %cmp = fcmp une double %x, 0.000000
  %cond = select i1 %cmp, double %x, double -0.000000
  ret double %cond
}
=>
define double @une_zero(double %x) {
%0:
  %cmp = fcmp une double %x, 0.000000
  %cond = select i1 %cmp, double %x, double -0.000000
  ret double %cond
}
Transformation seems to be correct!


----------------------------------------
define double @une_zero_swapped(double %x) {
%0:
  %cmp = fcmp une double %x, 0.000000
  %cond = select i1 %cmp, double -0.000000, double %x
  ret double %cond
}
=>
define double @une_zero_swapped(double %x) {
%0:
  %cmp = fcmp une double %x, 0.000000
  %cond = select i1 %cmp, double -0.000000, double %x
  ret double %cond
}
Transformation seems to be correct!


----------------------------------------
define double @oeq_zero_nsz(double %x) {
%0:
  %cmp = fcmp oeq double %x, 0.000000
  %cond = select i1 %cmp, double %x, double 0.000000
  ret double %cond
}
=>
define double @oeq_zero_nsz(double %x) {
%0:
  ret double 0.000000
}
Transformation doesn't verify!
ERROR: Value mismatch

Example:
double %x = #x8000000000000000 (-0.0)

Source:
i1 %cmp = #x1 (1)
double %cond = #x8000000000000000 (-0.0)

Target:
Source value: #x8000000000000000 (-0.0)
Target value: #x0000000000000000 (+0.0)


------------------- SMT STATS -------------------
Num queries: 18
Num invalid: 0
Num skips:   0
Num trivial: 26 (59.1%)
Num timeout: 0 (0.0%)
Num errors:  0 (0.0%)
Num SAT:     10 (55.6%)
Num UNSAT:   8 (44.4%)

stderr:

+ : 'RUN: at line 2'
+ /home/nlopes/alive2/scripts/opt-alive.sh -instsimplify -S
+ /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/InstSimplify/fcmp-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/InstSimplify/fcmp-select.ll

 

<-- Back