Llvm lli指令尚未解释

Llvm lli指令尚未解释,llvm,llvm-ir,Llvm,Llvm Ir,有人能给我解释一下为什么我要接受指令吗 %broadcast.splatinsert.i=insertelement未定义,i32%reverse.idx.i,i32 0“ 打印“尚未解释的指令!” lli版本3.3 全源 代码块: vector.body.i: ; preds = %vector.body.i, %for.body.lr.ph.i %index.i = phi i64 [ %index.next.i, %

有人能给我解释一下为什么我要接受指令吗 %broadcast.splatinsert.i=insertelement未定义,i32%reverse.idx.i,i32 0“
打印“尚未解释的指令!”

lli版本3.3 全源

代码块:

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
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]
%向量φi=φ[%86,%vector.body.i],,%for.body.lr.ph.i]
%向量phi11.i=phi[%87,%vector.body.i],,%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=插入元素未定义,i32%反向.idx.i,i32 0
%broadcast.splat.i=shufflevector%broadcast.splatinsert.i,未定义,零初始值设定项
%导入.i=添加%broadcast.splat.i,
%84=加载i64*%main\u HideLocalConstant\u variable\u 14
%main\u hide\u const\u value83=xor i64%84,8
%导入12.i=添加%broadcast.splat.i,
%85=加载i64*%main\u HideLocalConstant\u variable\u 4
%主隐藏常量值21=xor i64%85%,主隐藏常量值83
%86=多个%vec.phi.i%,诱导率.i
%87=向量phi11.i的多个百分比,%12.i
%index.next.i=addi64%index.i,%main\u hide\u const\u value21
%88=icmp eq i64%索引.next.i,%n.vec.i
br i1%88,标签%middle.block.i,标签%vector.body.i
正如您所看到的,有一个“unde”操作数,因此无法解释指令。如果此位代码是llvm 3.3中LoopVectorize pass的输出,那么我会看到它可能是一个bug,可能在较新版本中已修复