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

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -