Fixed OpShuffleVector

This commit is contained in:
2022-05-27 10:38:42 +02:00
parent 58441c79aa
commit f842ba6480

View File

@@ -914,11 +914,11 @@ public:
auto v2 = OP_VALUE(3);
auto v1_len = llvm::dyn_cast<llvm::VectorType>(v1->getType())->getElementCount().getFixedValue();
for (int i = 4; i < insn->num_operands; i++) {
auto idx = OP_WORD(i);
auto didx = idx - 4;
auto el = idx > v1_len
auto didx = i - 4;
auto el = idx < v1_len
? builder->CreateExtractElement(v1, idx)
: builder->CreateExtractElement(v2, idx-v1_len);
builder->CreateInsertElement(result, el, didx);