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 = undef Source: <4 x *> %ins = < undef, undef, undef, undef > <4 x *> %splat = < undef, undef, undef, undef > <4 x *> %t2 = < poison, poison, poison, poison > * %t3 = poison <4 x *> %ins2 = < poison, undef, undef, undef > SOURCE MEMORY STATE =================== NON-LOCAL BLOCKS: Block 0 > size: 0 align: 64 alloc type: 0 Block 1 > align: 4 alloc type: 0 Target: <4 x *> %1 = < undef, pointer(non-local, block_id=0, offset=-3), null, pointer(non-local, block_id=0, offset=-7) > <4 x *> %2 = < poison, poison, poison, poison > Source value: < poison, undef, undef, undef > Target value: < poison, poison, poison, poison > ------------------- SMT STATS ------------------- Num queries: 18 Num invalid: 0 Num skips: 0 Num trivial: 1 (5.3%) Num timeout: 0 (0.0%) Num errors: 0 (0.0%) Num SAT: 2 (11.1%) Num UNSAT: 16 (88.9%)
+ : 'RUN: at line 2' + /home/nlopes/alive2/scripts/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