在 LLVM IR 中,将整数存储到向量的第二个元素中
Posted
技术标签:
【中文标题】在 LLVM IR 中,将整数存储到向量的第二个元素中【英文标题】:In LLVM IR, store an integer into the second element of a vector 【发布时间】:2018-03-31 13:49:32 【问题描述】:我现在想将一个整数存储到向量的第二个元素中。向量是<2 x i64>
,现在我只有它的指针<2 x i64>*
。
我尝试了几种方法来获取指向其第二个元素的指针,但它们都失败了。
我尝试使用 getelementptr,但无法将 Ty 参数设置为 i64
或 i64*
,否则它会报告“assert (PointeeType == cast<PointerType>(Ptr->getType()->getScalarType())->getElementType());
failed”的错误。如果我将它设置为 NULL,我可以得到一个<2 x i64>*
。
然后我尝试使用IRBuilder.CreateExtractElement
先提取向量的第二个元素。但是拿到i64
之后,我不知道怎么获取它的指针,因为我必须将store的第二个参数设置为i64
。
【问题讨论】:
llvm.org/docs/LangRef.html#insertelement-instruction 【参考方案1】:嗯,一般来说,你不能“存储”到向量的第二个元素(如果它在寄存器中怎么办——地址是什么?)。
使用 insertelement 指令 (https://llvm.org/docs/LangRef.html#insertelement-instruction) 将标量元素放入向量中。
【讨论】:
你好,我能帮个小忙吗,你能看看这个问题吗:***.com/questions/50308253/…?以上是关于在 LLVM IR 中,将整数存储到向量的第二个元素中的主要内容,如果未能解决你的问题,请参考以下文章