Test source: git
Comments: LLVM PR49080
Source: <stdin> -- 1. ModuleToFunctionPassAdaptor -- 1. PassManager<Function> : Skipping NOP -- 2. InstCombinePass ---------------------------------------- define i8 @test1() { %0: %x = fptoui float 255.000000 to i8 ret i8 %x } Transformation seems to be correct! (syntactically equal) -- 3. InstCombinePass ---------------------------------------- define i8 @test1() { %0: %x = fptoui float 255.000000 to i8 ret i8 %x } => define i8 @test1() { %0: ret i8 255 } Transformation seems to be correct! -- 4. PassManager<Function> : Skipping NOP -- 5. PassManager<Function> : Skipping NOP -- 6. InstCombinePass ---------------------------------------- define i8 @test2() { %0: %x = fptosi float -1.000000 to i8 ret i8 %x } Transformation seems to be correct! (syntactically equal) -- 7. InstCombinePass ---------------------------------------- define i8 @test2() { %0: %x = fptosi float -1.000000 to i8 ret i8 %x } => define i8 @test2() { %0: ret i8 255 } Transformation seems to be correct! -- 8. PassManager<Function> : Skipping NOP -- 9. PassManager<Function> : Skipping NOP -- 10. InstCombinePass ---------------------------------------- define half @test3(float %a) { %0: %b = fabs float %a %c = fptrunc float %b to half ret half %c } Transformation seems to be correct! (syntactically equal) -- 11. InstCombinePass ---------------------------------------- define half @test3(float %a) { %0: %b = fabs float %a %c = fptrunc float %b to half ret half %c } => define half @test3(float %a) { %0: %1 = fptrunc float %a to half %c = fabs half %1 ret half %c } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 12. PassManager<Function> : Skipping NOP -- 13. PassManager<Function> : Skipping NOP -- 14. InstCombinePass ---------------------------------------- define half @fneg_fptrunc(float %a) { %0: %b = fsub float -0.000000, %a %c = fptrunc float %b to half ret half %c } Transformation seems to be correct! (syntactically equal) -- 15. InstCombinePass ---------------------------------------- define half @fneg_fptrunc(float %a) { %0: %b = fsub float -0.000000, %a %c = fptrunc float %b to half ret half %c } => define half @fneg_fptrunc(float %a) { %0: %1 = fptrunc float %a to half %c = fneg half %1 ret half %c } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 16. PassManager<Function> : Skipping NOP -- 17. PassManager<Function> : Skipping NOP -- 18. InstCombinePass ---------------------------------------- define half @unary_fneg_fptrunc(float %a) { %0: %b = fneg float %a %c = fptrunc float %b to half ret half %c } Transformation seems to be correct! (syntactically equal) -- 19. InstCombinePass ---------------------------------------- define half @unary_fneg_fptrunc(float %a) { %0: %b = fneg float %a %c = fptrunc float %b to half ret half %c } => define half @unary_fneg_fptrunc(float %a) { %0: %1 = fptrunc float %a to half %c = fneg half %1 ret half %c } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 20. PassManager<Function> : Skipping NOP -- 21. PassManager<Function> : Skipping NOP -- 22. InstCombinePass ---------------------------------------- define <2 x half> @fneg_fptrunc_vec_undef(<2 x float> %a) { %0: %b = fsub <2 x float> { -0.000000, undef }, %a %c = fptrunc <2 x float> %b to <2 x half> ret <2 x half> %c } Transformation seems to be correct! (syntactically equal) -- 23. InstCombinePass ---------------------------------------- define <2 x half> @fneg_fptrunc_vec_undef(<2 x float> %a) { %0: %b = fsub <2 x float> { -0.000000, undef }, %a %c = fptrunc <2 x float> %b to <2 x half> ret <2 x half> %c } => define <2 x half> @fneg_fptrunc_vec_undef(<2 x float> %a) { %0: %1 = fptrunc <2 x float> %a to <2 x half> %c = fneg <2 x half> %1 ret <2 x half> %c } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 24. PassManager<Function> : Skipping NOP -- 25. PassManager<Function> : Skipping NOP -- 26. InstCombinePass ---------------------------------------- define <2 x half> @unary_fneg_fptrunc_vec(<2 x float> %a) { %0: %b = fneg <2 x float> %a %c = fptrunc <2 x float> %b to <2 x half> ret <2 x half> %c } Transformation seems to be correct! (syntactically equal) -- 27. InstCombinePass ---------------------------------------- define <2 x half> @unary_fneg_fptrunc_vec(<2 x float> %a) { %0: %b = fneg <2 x float> %a %c = fptrunc <2 x float> %b to <2 x half> ret <2 x half> %c } => define <2 x half> @unary_fneg_fptrunc_vec(<2 x float> %a) { %0: %1 = fptrunc <2 x float> %a to <2 x half> %c = fneg <2 x half> %1 ret <2 x half> %c } Transformation doesn't verify! (not unsound) ERROR: Timeout -- 28. PassManager<Function> : Skipping NOP -- 29. PassManager<Function> : Skipping NOP -- 30. InstCombinePass ---------------------------------------- define half @test4-fast(float %a) { %0: %b = fsub fast float -0.000000, %a %c = fptrunc float %b to half ret half %c } Transformation seems to be correct! (syntactically equal) -- 31. InstCombinePass ---------------------------------------- define half @test4-fast(float %a) { %0: %b = fsub fast float -0.000000, %a %c = fptrunc float %b to half ret half %c } => define half @test4-fast(float %a) { %0: %1 = fptrunc float %a to half %c = fneg fast half %1 ret half %c } Transformation doesn't verify! (unsound) ERROR: Target is more poisonous than source Example: float %a = #xc77ff000 (-65520) Source: float %b = #x7f800000 (+oo) half %c = #x7c00 (+oo) Target: half %1 = #xfc00 (-oo) half %c = poison Source value: #x7c00 (+oo) Target value: poison Pass: InstCombinePass Command line: '/home/nlopes/llvm/build/bin/opt' '-load=/home/nlopes/alive2/build/tv/tv.so' '-load-pass-plugin=/home/nlopes/alive2/build/tv/tv.so' '-tv-exit-on-error' '-passes=instcombine' '-S' '-tv-smt-to=20000' '-tv-report-dir=/home/nlopes/alive2/build/logs' '-tv-smt-stats' Wrote bitcode to: "/home/nlopes/alive2/build/logs/in_0qJKkS4W_A0e2.bc" ------------------- SMT STATS ------------------- Num queries: 35 Num invalid: 0 Num skips: 0 Num trivial: 33 (48.5%) Num timeout: 5 (14.3%) Num errors: 0 (0.0%) Num SAT: 25 (71.4%) Num UNSAT: 5 (14.3%) Alive2: Transform doesn't verify; aborting!
+ : 'RUN: at line 3' + /home/nlopes/alive2/build/opt-alive.sh -passes=instcombine -S + /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/InstCombine/fpcast.ll FileCheck error: '<stdin>' is empty. FileCheck command line: /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/InstCombine/fpcast.ll