llvm - lli Instruction not interpretable yet -
can explain me why lli on instruction "%broadcast.splatinsert.i = insertelement <4 x i32> undef, i32 %reverse.idx.i, i32 0"
prints "instruction not interpretable yet! ?
lli ver 3.3 full source https://www.sendspace.com/file/e9kgng
block of code:
vector.body.i: ; preds = %vector.body.i, %for.body.lr.ph.i %index.i = phi i64 [ %index.next.i, %vector.body.i ], [ 0, %for.body.lr.ph.i ] %vec.phi.i = phi <4 x i32> [ %86, %vector.body.i ], [ <i32 1, i32 1, i32 1, i32 1>, %for.body.lr.ph.i ] %vec.phi11.i = phi <4 x i32> [ %87, %vector.body.i ], [ <i32 1, i32 1, i32 1, i32 1>, %for.body.lr.ph.i ] %resize.norm.idx.i = trunc i64 %index.i i32 %reverse.idx.i = sub i32 %.x.i113, %resize.norm.idx.i %broadcast.splatinsert.i = insertelement <4 x i32> undef, i32 %reverse.idx.i, i32 0 %broadcast.splat.i = shufflevector <4 x i32> %broadcast.splatinsert.i, <4 x i32> undef, <4 x i32> zeroinitializer %induction.i = add <4 x i32> %broadcast.splat.i, <i32 0, i32 -1, i32 -2, i32 -3> %84 = load i64* %main_hidelocalconstant_variable_14 %main_hide_const_value83 = xor i64 %84, 8 %induction12.i = add <4 x i32> %broadcast.splat.i, <i32 -4, i32 -5, i32 -6, i32 -7> %85 = load i64* %main_hidelocalconstant_variable_4 %main_hide_const_value21 = xor i64 %85, %main_hide_const_value83 %86 = mul <4 x i32> %vec.phi.i, %induction.i %87 = mul <4 x i32> %vec.phi11.i, %induction12.i %index.next.i = add i64 %index.i, %main_hide_const_value21 %88 = icmp eq i64 %index.next.i, %n.vec.i br i1 %88, label %middle.block.i, label %vector.body.i
there "undef" operand see, , hence instruction can not interpreted. if bitcode output of loopvectorize pass in llvm 3.3, see might bug perhaps has been fixed in newer versions.
Comments
Post a Comment