Test source: git
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!
+ : '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