Test source: git
Source: <stdin> ---------------------------------------- define <4 x *> @PR41270(* %x) { %0: %ins = insertelement <4 x *> undef, * %x, i32 0 %splat = shufflevector <4 x *> %ins, <4 x *> undef, 0, 0, 0, 0 %t2 = gep inbounds <4 x *> %splat, 8 x i32 0, 2 x i32 3 %t3 = extractelement <4 x *> %t2, i32 3 %ins2 = insertelement <4 x *> undef, * %t3, i32 0 ret <4 x *> %ins2 } => define <4 x *> @PR41270(* %x) { %0: %1 = insertelement <4 x *> undef, * %x, i32 0 %2 = gep inbounds <4 x *> %1, 8 x i64 0, 2 x i64 3 ret <4 x *> %2 } Transformation doesn't verify! ERROR: Target is more poisonous than source Example: * %x = poison Source: <4 x *> %ins = < poison, any, any, any > <4 x *> %splat = < poison, poison, poison, poison > <4 x *> %t2 = < poison, poison, poison, poison > * %t3 = poison <4 x *> %ins2 = < poison, any, any, any > SOURCE MEMORY STATE =================== NON-LOCAL BLOCKS: Block 0 > size: 0 align: 1 alloc type: 0 Block 1 > align: 2 alloc type: 0 Target: <4 x *> %1 = < poison, pointer(non-local, block_id=0, offset=-4), pointer(non-local, block_id=0, offset=7), pointer(non-local, block_id=0, offset=-3) > <4 x *> %2 = < poison, poison, poison, poison > Source value: < poison, any, any, any > Target value: < poison, poison, poison, poison > ------------------- SMT STATS ------------------- Num queries: 11 Num invalid: 0 Num skips: 0 Num trivial: 2 (15.4%) Num timeout: 0 (0.0%) Num errors: 0 (0.0%) Num SAT: 2 (18.2%) Num UNSAT: 9 (81.8%)
+ : '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/vec_gep_scalar_arg.ll Alive2: Transform doesn't verify; aborting! FileCheck error: '<stdin>' is empty. FileCheck command line: /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/InstCombine/vec_gep_scalar_arg.ll