Test source: git
Source: <stdin> -- 1. ModuleToFunctionPassAdaptor -- 1. PassManager<Function> : Skipping NOP -- 2. InstCombinePass ---------------------------------------- define ptr @bitcast_opaque_to_opaque(ptr %a) { #0: ret ptr %a } Transformation seems to be correct! (syntactically equal) -- 3. InstCombinePass ---------------------------------------- define ptr @bitcast_opaque_to_opaque(ptr %a) { #0: ret ptr %a } Transformation seems to be correct! (syntactically equal) -- 4. PassManager<Function> : Skipping NOP -- 5. PassManager<Function> : Skipping NOP -- 6. InstCombinePass ---------------------------------------- define ptr @bitcast_typed_to_opaque(ptr %a) { #0: ret ptr %a } Transformation seems to be correct! (syntactically equal) -- 7. InstCombinePass ---------------------------------------- define ptr @bitcast_typed_to_opaque(ptr %a) { #0: ret ptr %a } Transformation seems to be correct! (syntactically equal) -- 8. PassManager<Function> : Skipping NOP -- 9. PassManager<Function> : Skipping NOP -- 10. InstCombinePass ---------------------------------------- define ptr @bitcast_opaque_to_typed(ptr %a) { #0: ret ptr %a } Transformation seems to be correct! (syntactically equal) -- 11. InstCombinePass ---------------------------------------- define ptr @bitcast_opaque_to_typed(ptr %a) { #0: ret ptr %a } Transformation seems to be correct! (syntactically equal) -- 12. PassManager<Function> : Skipping NOP -- 13. PassManager<Function> : Skipping NOP -- 14. InstCombinePass ---------------------------------------- @g = global 1 bytes, align 1 define ptr @bitcast_typed_to_opaque_constexpr() { #0: ret ptr @g } Transformation seems to be correct! (syntactically equal) -- 15. InstCombinePass ---------------------------------------- @g = global 1 bytes, align 1 define ptr @bitcast_typed_to_opaque_constexpr() { #0: ret ptr @g } Transformation seems to be correct! (syntactically equal) -- 16. PassManager<Function> : Skipping NOP -- 17. PassManager<Function> : Skipping NOP -- 18. InstCombinePass -- 19. InstCombinePass -- 20. PassManager<Function> : Skipping NOP -- 21. PassManager<Function> : Skipping NOP -- 22. InstCombinePass -- 23. InstCombinePass -- 24. PassManager<Function> : Skipping NOP -- 25. PassManager<Function> : Skipping NOP -- 26. InstCombinePass -- 27. InstCombinePass -- 28. PassManager<Function> : Skipping NOP -- 29. PassManager<Function> : Skipping NOP -- 30. InstCombinePass -- 31. InstCombinePass -- 32. PassManager<Function> : Skipping NOP -- 33. PassManager<Function> : Skipping NOP -- 34. InstCombinePass -- 35. InstCombinePass -- 36. PassManager<Function> : Skipping NOP -- 37. PassManager<Function> : Skipping NOP -- 38. InstCombinePass ---------------------------------------- define ptr @gep_constexpr_1(ptr %a) { #0: %__constexpr_0 = gep ptr null, 2 x i32 3 ret ptr %__constexpr_0 } Transformation seems to be correct! (syntactically equal) -- 39. InstCombinePass ---------------------------------------- define ptr @gep_constexpr_1(ptr %a) { #0: %__constexpr_0 = gep ptr null, 2 x i32 3 ret ptr %__constexpr_0 } => define ptr @gep_constexpr_1(ptr %a) { #0: %__constexpr_0 = int2ptr i64 6 to ptr ret ptr %__constexpr_0 } Transformation doesn't verify! (unsound) ERROR: Value mismatch Example: ptr %a = poison Source: ptr %__constexpr_0 = pointer(non-local, block_id=0, offset=6) / Address=#x0000000000000006 SOURCE MEMORY STATE =================== NON-LOCAL BLOCKS: Block 0 > size: 0 align: 1 alloc type: 0 alive: false address: 0 Block 1 > size: 1 align: 9223372036854775808 alloc type: 0 alive: true address: 9223372036854775808 Target: ptr %__constexpr_0 = phy-ptr(addr=6) / Address=#x0000000000000006 Source value: pointer(non-local, block_id=0, offset=6) / Address=#x0000000000000006 Target value: phy-ptr(addr=6) / Address=#x0000000000000006 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' '-S' '-passes=instcombine' '-tv-smt-to=20000' '-tv-report-dir=/home/nlopes/alive2/build/logs' '-tv-smt-stats' Wrote bitcode to: "/home/nlopes/alive2/build/logs/in_9pFBZ22y_4TM3.bc" ------------------- SMT STATS ------------------- Num queries: 9 Num invalid: 0 Num skips: 0 Num trivial: 8 (47.1%) Num timeout: 0 (0.0%) Num errors: 0 (0.0%) Num SAT: 9 (100.0%) Num UNSAT: 0 (0.0%) Alive2: Transform doesn't verify; aborting!
RUN: at line 2: /home/nlopes/alive2/build/opt-alive.sh -S -passes=instcombine < /bitbucket/nlopes/llvm/llvm/test/Transforms/InstCombine/opaque-ptr.ll | /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/InstCombine/opaque-ptr.ll + /home/nlopes/alive2/build/opt-alive.sh -S -passes=instcombine + /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/InstCombine/opaque-ptr.ll FileCheck error: '<stdin>' is empty. FileCheck command line: /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/InstCombine/opaque-ptr.ll