%a =添加< 6 x i3> ,
我想写一个类型合法化的传递。
for (auto &block : function) {
std::vector<BinaryOperator *> binInstsToErase;
for (auto &inst : block) {
BinaryOperator * binaryOpInst = dyn_cast<BinaryOperator>(&inst);
Value * vector1 = inst.getOperand(0);
Value * vector2 = inst.getOperand(1);
目前,vector1和vector2的长度为18位(numofElem(6)* elementsize(3))。首先,我想从&lt; 6 x i3&gt;扩展vector1和vector2。到&lt; 8 x i3&gt;,这意味着元素的数量是合法的。但是,我不知道该怎么做。
答案 0 :(得分:0)
首先使用ConstantDataVector::get(LLVMContext &Context, ArrayRef< uint8_t > Elts)
创建新的向量。您可以使用std::vector
作为Elts
。然后你可以push_back
将值导入向量或提取并将元素插入到新向量中
见http://llvm.org/doxygen/classllvm_1_1ConstantDataVector.html