Test source: git
Source: <stdin> -- 1. ModuleToFunctionPassAdaptor -- 1. PassManager<Function> : Skipping NOP -- 2. InstSimplifyPass ---------------------------------------- define ptr @ptrmask_simplify_poison_mask(ptr %p) { #0: %r = ptrmask ptr %p, i64 poison ret ptr %r } Transformation seems to be correct! (syntactically equal) -- 3. InstSimplifyPass ---------------------------------------- define ptr @ptrmask_simplify_poison_mask(ptr %p) { #0: %r = ptrmask ptr %p, i64 poison ret ptr %r } => define ptr @ptrmask_simplify_poison_mask(ptr %p) { #0: ret ptr poison } Transformation seems to be correct! -- 4. PassManager<Function> : Skipping NOP -- 5. PassManager<Function> : Skipping NOP -- 6. InstSimplifyPass -- 7. InstSimplifyPass -- 8. PassManager<Function> : Skipping NOP -- 9. PassManager<Function> : Skipping NOP -- 10. InstSimplifyPass -- 11. InstSimplifyPass -- 12. PassManager<Function> : Skipping NOP -- 13. PassManager<Function> : Skipping NOP -- 14. InstSimplifyPass ---------------------------------------- define <2 x ptr> @ptrmask_simplify_undef_and_ones_vec(<2 x ptr> %p) { #0: %r = ptrmask <2 x ptr> %p, <2 x i64> { undef, -1 } ret <2 x ptr> %r } Transformation seems to be correct! (syntactically equal) -- 15. InstSimplifyPass ---------------------------------------- define <2 x ptr> @ptrmask_simplify_undef_and_ones_vec(<2 x ptr> %p) { #0: %r = ptrmask <2 x ptr> %p, <2 x i64> { undef, -1 } ret <2 x ptr> %r } Transformation seems to be correct! (syntactically equal) -- 16. PassManager<Function> : Skipping NOP -- 17. PassManager<Function> : Skipping NOP -- 18. InstSimplifyPass ---------------------------------------- define <2 x ptr> @ptrmask_simplify_poison_and_ones_vec(<2 x ptr> %p) { #0: %r = ptrmask <2 x ptr> %p, <2 x i64> { poison, -1 } ret <2 x ptr> %r } Transformation seems to be correct! (syntactically equal) -- 19. InstSimplifyPass ---------------------------------------- define <2 x ptr> @ptrmask_simplify_poison_and_ones_vec(<2 x ptr> %p) { #0: %r = ptrmask <2 x ptr> %p, <2 x i64> { poison, -1 } ret <2 x ptr> %r } => define <2 x ptr> @ptrmask_simplify_poison_and_ones_vec(<2 x ptr> %p) { #0: ret <2 x ptr> %p } Transformation doesn't verify! (unsound) ERROR: Value mismatch Example: <2 x ptr> %p = < poison, undef > Source: <2 x ptr> %r = < poison, null [based on undef value] > SOURCE MEMORY STATE =================== NON-LOCAL BLOCKS: Block 0 > size: 0 align: 1 alloc type: 0 alive: false address: 0 Block 1 > size: 7 align: 4 alloc type: 0 alive: true address: 4 Block 2 > size: 1 align: 1 alloc type: 0 alive: true address: 2 Target: Source value: < poison, null > Target value: < poison, pointer(non-local, block_id=0, offset=-4530003736851643128) > Pass: InstSimplifyPass 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=instsimplify' '-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_AvQoRXPw_Tm7Z.bc" ------------------- SMT STATS ------------------- Num queries: 20 Num invalid: 0 Num skips: 0 Num trivial: 13 (39.4%) Num timeout: 0 (0.0%) Num errors: 0 (0.0%) Num SAT: 15 (75.0%) Num UNSAT: 5 (25.0%) Alive2: Transform doesn't verify; aborting!
RUN: at line 2: /home/nlopes/alive2/build/opt-alive.sh < /bitbucket/nlopes/llvm/llvm/test/Transforms/InstSimplify/ptrmask.ll -passes=instsimplify -S | /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/InstSimplify/ptrmask.ll + /home/nlopes/alive2/build/opt-alive.sh -passes=instsimplify -S + /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/InstSimplify/ptrmask.ll FileCheck error: '<stdin>' is empty. FileCheck command line: /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/InstSimplify/ptrmask.ll