在LLVM IR中,将整数存储到向量的第二个元素中

时间:2018-03-31 13:49:33

标签: llvm llvm-ir

我想现在将一个整数存储到向量的第二个元素中。向量是<2 x i64>,现在我只有它的指针<2 x i64>*。 我已经尝试了几种方法来获取指向其第二个元素的指针,但它们都失败了。 我尝试使用getelementptr,但我无法将 Ty 参数设置为i64i64*,否则会报告错误,其中包含&#34; {{1失败&#34;。如果我将其设置为NULL,我可以得到一个assert (PointeeType == cast<PointerType>(Ptr->getType()->getScalarType())->getElementType());。 然后我尝试使用<2 x i64>*首先提取向量的第二个元素。但在我得到IRBuilder.CreateExtractElement后,我不知道如何获取指针,因为我必须将商店的第二个参数设置为i64

1 个答案:

答案 0 :(得分:0)

嗯,你不能&#34;存储&#34;通常是向量的第二个元素(如果它在寄存器中会是什么 - 地址是什么?)。

使用insertelement指令(https://llvm.org/docs/LangRef.html#insertelement-instruction)将标量元素放入向量中。