首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >lli指令尚不可解释

lli指令尚不可解释
EN

Stack Overflow用户
提问于 2015-06-03 07:42:40
回答 1查看 37关注 0票数 0

谁能解释一下为什么指令“% instruction .splatinsert t.i= i32 <4 x i32> undef,i32 %verse.idx.i,i32 0”上的lli

打印“指令还不能解释!?

lli版本3.3全源代码https://www.sendspace.com/file/e9kgng

代码块:

代码语言:javascript
复制
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 to 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
EN

回答 1

Stack Overflow用户

发布于 2015-06-04 17:19:21

正如你所看到的,有一个"undef“操作数,因此指令不能被解释。如果这个位码是llvm 3.3中LoopVectorize pass的输出,那么我会发现它可能是一个错误,可能已经在更新的版本中修复了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30608409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档