Test Failure: Transforms/InstCombine/fneg.ll

Test source: git

Log:

Source: <stdin>

----------------------------------------
define float @fneg_fneg(float %a) {
%0:
  %f = fneg float %a
  %r = fneg float %f
  ret float %r
}
=>
define float @fneg_fneg(float %a) {
%0:
  ret float %a
}
Transformation seems to be correct!


----------------------------------------
define float @fmul_fsub(float %x) {
%0:
  %m = fmul float %x, 42.000000
  %r = fsub float -0.000000, %m
  ret float %r
}
=>
define float @fmul_fsub(float %x) {
%0:
  %r = fmul float %x, -42.000000
  ret float %r
}
Transformation seems to be correct!


----------------------------------------
define float @fmul_fneg(float %x) {
%0:
  %m = fmul float %x, 42.000000
  %r = fneg float %m
  ret float %r
}
=>
define float @fmul_fneg(float %x) {
%0:
  %r = fmul float %x, -42.000000
  ret float %r
}
Transformation seems to be correct!


----------------------------------------
define float @fmul_fsub_fmf(float %x) {
%0:
  %m = fmul float %x, 42.000000
  %r = fsub nsz reassoc float -0.000000, %m
  ret float %r
}
=>
define float @fmul_fsub_fmf(float %x) {
%0:
  %r = fmul nsz reassoc float %x, -42.000000
  ret float %r
}
Transformation seems to be correct!


----------------------------------------
define float @fmul_fneg_fmf(float %x) {
%0:
  %m = fmul float %x, 42.000000
  %r = fneg nsz reassoc float %m
  ret float %r
}
=>
define float @fmul_fneg_fmf(float %x) {
%0:
  %r = fmul nsz reassoc float %x, -42.000000
  ret float %r
}
Transformation seems to be correct!


----------------------------------------
define float @fmul_fsub_extra_use(float %x) {
%0:
  %m = fmul float %x, 42.000000
  %r = fsub float -0.000000, %m
  call void @use(float %m)
  ret float %r
}
=>
define float @fmul_fsub_extra_use(float %x) {
%0:
  %m = fmul float %x, 42.000000
  %r = fneg float %m
  call void @use(float %m)
  ret float %r
}
Transformation seems to be correct!


----------------------------------------
define float @fmul_fneg_extra_use(float %x) {
%0:
  %m = fmul float %x, 42.000000
  %r = fneg float %m
  call void @use(float %m)
  ret float %r
}
=>
define float @fmul_fneg_extra_use(float %x) {
%0:
  %m = fmul float %x, 42.000000
  %r = fneg float %m
  call void @use(float %m)
  ret float %r
}
Transformation seems to be correct! (syntactically equal)


----------------------------------------
define <4 x double> @fmul_fsub_vec(<4 x double> %x) {
%0:
  %m = fmul <4 x double> %x, { 42.000000, nan, inf, undef }
  %r = fsub <4 x double> { -0.000000, -0.000000, -0.000000, -0.000000 }, %m
  ret <4 x double> %r
}
=>
define <4 x double> @fmul_fsub_vec(<4 x double> %x) {
%0:
  %r = fmul <4 x double> %x, { -42.000000, -nan, -inf, undef }
  ret <4 x double> %r
}
Transformation doesn't verify!
ERROR: Timeout


----------------------------------------
define <4 x double> @fmul_fneg_vec(<4 x double> %x) {
%0:
  %m = fmul <4 x double> %x, { 42.000000, nan, inf, undef }
  %r = fneg <4 x double> %m
  ret <4 x double> %r
}
=>
define <4 x double> @fmul_fneg_vec(<4 x double> %x) {
%0:
  %r = fmul <4 x double> %x, { -42.000000, -nan, -inf, undef }
  ret <4 x double> %r
}
Transformation doesn't verify!
ERROR: Timeout


----------------------------------------
define float @fdiv_op1_constant_fsub(float %x) {
%0:
  %d = fdiv float %x, -42.000000
  %r = fsub float -0.000000, %d
  ret float %r
}
=>
define float @fdiv_op1_constant_fsub(float %x) {
%0:
  %r = fdiv float %x, 42.000000
  ret float %r
}
Transformation seems to be correct!


----------------------------------------
define float @fdiv_op1_constant_fneg(float %x) {
%0:
  %d = fdiv float %x, -42.000000
  %r = fneg float %d
  ret float %r
}
=>
define float @fdiv_op1_constant_fneg(float %x) {
%0:
  %r = fdiv float %x, 42.000000
  ret float %r
}
Transformation seems to be correct!


----------------------------------------
define float @fdiv_op1_constant_fsub_fmf(float %x) {
%0:
  %d = fdiv float %x, -42.000000
  %r = fsub nnan float -0.000000, %d
  ret float %r
}
=>
define float @fdiv_op1_constant_fsub_fmf(float %x) {
%0:
  %r = fdiv nnan float %x, 42.000000
  ret float %r
}
Transformation seems to be correct!


----------------------------------------
define float @fdiv_op1_constant_fneg_fmf(float %x) {
%0:
  %d = fdiv float %x, -42.000000
  %r = fneg nnan float %d
  ret float %r
}
=>
define float @fdiv_op1_constant_fneg_fmf(float %x) {
%0:
  %r = fdiv nnan float %x, 42.000000
  ret float %r
}
Transformation seems to be correct!


----------------------------------------
define float @fdiv_op1_constant_fsub_extra_use(float %x) {
%0:
  %d = fdiv float %x, 42.000000
  %r = fsub float -0.000000, %d
  call void @use(float %d)
  ret float %r
}
=>
define float @fdiv_op1_constant_fsub_extra_use(float %x) {
%0:
  %d = fdiv float %x, 42.000000
  %r = fneg float %d
  call void @use(float %d)
  ret float %r
}
Transformation doesn't verify!
ERROR: Timeout


----------------------------------------
define float @fdiv_op1_constant_fneg_extra_use(float %x) {
%0:
  %d = fdiv float %x, 42.000000
  %r = fneg float %d
  call void @use(float %d)
  ret float %r
}
=>
define float @fdiv_op1_constant_fneg_extra_use(float %x) {
%0:
  %d = fdiv float %x, 42.000000
  %r = fneg float %d
  call void @use(float %d)
  ret float %r
}
Transformation seems to be correct! (syntactically equal)


----------------------------------------
define <4 x double> @fdiv_op1_constant_fsub_vec(<4 x double> %x) {
%0:
  %d = fdiv <4 x double> %x, { -42.000000, -nan, -inf, undef }
  %r = fsub <4 x double> { -0.000000, -0.000000, -0.000000, -0.000000 }, %d
  ret <4 x double> %r
}
=>
define <4 x double> @fdiv_op1_constant_fsub_vec(<4 x double> %x) {
%0:
  %r = fdiv <4 x double> %x, { 42.000000, nan, inf, undef }
  ret <4 x double> %r
}
Transformation doesn't verify!
ERROR: Timeout


----------------------------------------
define <4 x double> @fdiv_op1_constant_fneg_vec(<4 x double> %x) {
%0:
  %d = fdiv <4 x double> %x, { -42.000000, -nan, -inf, undef }
  %r = fneg <4 x double> %d
  ret <4 x double> %r
}
=>
define <4 x double> @fdiv_op1_constant_fneg_vec(<4 x double> %x) {
%0:
  %r = fdiv <4 x double> %x, { 42.000000, nan, inf, undef }
  ret <4 x double> %r
}
Transformation doesn't verify!
ERROR: Timeout


----------------------------------------
define float @fdiv_op0_constant_fsub(float %x) {
%0:
  %d = fdiv float 42.000000, %x
  %r = fsub float -0.000000, %d
  ret float %r
}
=>
define float @fdiv_op0_constant_fsub(float %x) {
%0:
  %r = fdiv float -42.000000, %x
  ret float %r
}
Transformation doesn't verify!
ERROR: Timeout


----------------------------------------
define float @fdiv_op0_constant_fneg(float %x) {
%0:
  %d = fdiv float 42.000000, %x
  %r = fneg float %d
  ret float %r
}
=>
define float @fdiv_op0_constant_fneg(float %x) {
%0:
  %r = fdiv float -42.000000, %x
  ret float %r
}
Transformation doesn't verify!
ERROR: Timeout


----------------------------------------
define float @fdiv_op0_constant_fsub_fmf(float %x) {
%0:
  %d = fdiv float 42.000000, %x
  %r = fsub fast float -0.000000, %d
  ret float %r
}
=>
define float @fdiv_op0_constant_fsub_fmf(float %x) {
%0:
  %r = fdiv fast float -42.000000, %x
  ret float %r
}
Transformation doesn't verify!
ERROR: Target is more poisonous than source

Example:
float %x = #xff800000 (-oo)

Source:
float %d = #x80000000 (-0.0)
float %r = NaN

Target:
float %r = poison
Source value: NaN
Target value: poison


------------------- SMT STATS -------------------
Num queries: 53
Num invalid: 0
Num skips:   0
Num trivial: 60 (53.1%)
Num timeout: 7 (13.2%)
Num errors:  0 (0.0%)
Num SAT:     20 (37.7%)
Num UNSAT:   26 (49.1%)
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/fneg.ll

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

 

<-- Back