Я пытаюсь использовать функцию LLVMBuildShuffleVector, которая запрашивает:
LLVMBuildShuffleVector (LLVMBuilderRef, LLVMValueRef V1, LLVMValueRef V2, LLVMValueRef Mask, const char *Name)
У меня есть эти два LLVMValueRef:
LLVMValueRef value1 = getChildren().get(0).getLlvmValueRef();
LLVMValueRef value2 = getChildren().get(1).getLlvmValueRef();
С ними я создаю маску, которая также является LLVMValueRef,где maskElemArray - это массив с элементами маски:
LLVMValueRef mask = LLVMConstVector(new PointerPointer(maskElemArray), maskElemArray.length);
Теперь мне нужно вызвать LLVMBuildShuffleVector:
LLVMValueRef shuffleV = LLVMBuildShuffleVector(builderRef, value1, value2, mask, "shuffleV");
Проблема в том, что я получаю эту ошибку:
Invalid shufflevector operands!
%shuffleV = shufflevector [8 x i8] %a3, [4 x i8] %b4, <11 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 8, i32 9, i32 10, i32 11>
LLVM ERROR: Broken module found, compilation aborted!
В чем причина этого?Что мне не хватает?Есть подсказки, как это решить?Спасибо за вашу помощь!