Skip to content

Commit e72114a

Browse files
committed
Refactor code
1 parent 389eacc commit e72114a

File tree

1 file changed

+7
-10
lines changed

1 file changed

+7
-10
lines changed

mlir/lib/Conversion/VectorToSPIRV/VectorToSPIRV.cpp

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -636,22 +636,19 @@ struct VectorDeinterleaveOpConvert final
636636
Location loc = deinterleaveOp->getLoc();
637637

638638
// Deinterleave the indices.
639+
Value sourceVector = adaptor.getSource();
639640
VectorType sourceType = deinterleaveOp.getSourceVectorType();
640641
int n = sourceType.getNumElements();
641642

642643
// Output vectors of size 1 are converted to scalars by the type converter.
643644
// We cannot use `spirv::VectorShuffleOp` directly in this case, and need to
644645
// use `spirv::CompositeExtractOp`.
645646
if (n == 2) {
646-
auto elem0 =
647-
rewriter.create<spirv::CompositeExtractOp>(
648-
loc, newResultType, adaptor.getSource(),
649-
rewriter.getI32ArrayAttr({0}));
647+
auto elem0 = rewriter.create<spirv::CompositeExtractOp>(
648+
loc, newResultType, sourceVector, rewriter.getI32ArrayAttr({0}));
650649

651-
auto elem1 =
652-
rewriter.create<spirv::CompositeExtractOp>(
653-
loc, newResultType, adaptor.getSource(),
654-
rewriter.getI32ArrayAttr({1}));
650+
auto elem1 = rewriter.create<spirv::CompositeExtractOp>(
651+
loc, newResultType, sourceVector, rewriter.getI32ArrayAttr({1}));
655652

656653
rewriter.replaceOp(deinterleaveOp, {elem0, elem1});
657654
return success();
@@ -670,11 +667,11 @@ struct VectorDeinterleaveOpConvert final
670667
// Create two SPIR-V shuffles.
671668
spirv::VectorShuffleOp shuffleEven =
672669
rewriter.create<spirv::VectorShuffleOp>(
673-
loc, newResultType, adaptor.getSource(), adaptor.getSource(),
670+
loc, newResultType, sourceVector, sourceVector,
674671
rewriter.getI32ArrayAttr(indicesEven));
675672

676673
spirv::VectorShuffleOp shuffleOdd = rewriter.create<spirv::VectorShuffleOp>(
677-
loc, newResultType, adaptor.getSource(), adaptor.getSource(),
674+
loc, newResultType, sourceVector, sourceVector,
678675
rewriter.getI32ArrayAttr(indicesOdd));
679676

680677
rewriter.replaceOp(deinterleaveOp, {shuffleEven, shuffleOdd});

0 commit comments

Comments
 (0)