@@ -290,13 +290,13 @@ static VectorValue emulatedVectorLoad(OpBuilder &rewriter, Location loc,
290
290
int64_t numContainerElemsToLoad,
291
291
Type emulatedElemTy,
292
292
Type containerElemTy) {
293
- auto scale = containerElemTy.getIntOrFloatBitWidth () /
293
+ auto emulatedPerContainerElem = containerElemTy.getIntOrFloatBitWidth () /
294
294
emulatedElemTy.getIntOrFloatBitWidth ();
295
295
auto newLoad = rewriter.create <vector::LoadOp>(
296
296
loc, VectorType::get (numContainerElemsToLoad, containerElemTy), base,
297
297
getValueOrCreateConstantIndexOp (rewriter, loc, linearizedIndices));
298
298
return rewriter.create <vector::BitCastOp>(
299
- loc, VectorType::get (numContainerElemsToLoad * scale , emulatedElemTy),
299
+ loc, VectorType::get (numContainerElemsToLoad * emulatedPerContainerElem , emulatedElemTy),
300
300
newLoad);
301
301
}
302
302
@@ -388,10 +388,10 @@ static Value extractSliceIntoByte(ConversionPatternRewriter &rewriter,
388
388
" sliceNumElements * vector element size must be less than or equal to 8" );
389
389
assert (8 % vectorElementType.getIntOrFloatBitWidth () == 0 &&
390
390
" vector element must be a valid sub-byte type" );
391
- auto scale = 8 / vectorElementType.getIntOrFloatBitWidth ();
391
+ auto emulatedPerContainerElem = 8 / vectorElementType.getIntOrFloatBitWidth ();
392
392
auto emptyByteVector = rewriter.create <arith::ConstantOp>(
393
- loc, VectorType::get ({scale }, vectorElementType),
394
- rewriter.getZeroAttr (VectorType::get ({scale }, vectorElementType)));
393
+ loc, VectorType::get ({emulatedPerContainerElem }, vectorElementType),
394
+ rewriter.getZeroAttr (VectorType::get ({emulatedPerContainerElem }, vectorElementType)));
395
395
auto extracted = staticallyExtractSubvector (rewriter, loc, vector,
396
396
extractOffset, sliceNumElements);
397
397
return staticallyInsertSubvector (rewriter, loc, extracted, emptyByteVector,
@@ -656,9 +656,9 @@ struct ConvertVectorMaskedStore final
656
656
" (bit-wise misalignment)" );
657
657
}
658
658
659
- int scale = containerBits / emulatedBits;
659
+ int emulatedPerContainerElem = containerBits / emulatedBits;
660
660
int origElements = op.getValueToStore ().getType ().getNumElements ();
661
- if (origElements % scale != 0 )
661
+ if (origElements % emulatedPerContainerElem != 0 )
662
662
return failure ();
663
663
664
664
auto stridedMetadata =
@@ -708,11 +708,11 @@ struct ConvertVectorMaskedStore final
708
708
// FIXME: Make an example based on the comment above work (see #115460 for
709
709
// reproducer).
710
710
FailureOr<Operation *> newMask =
711
- getCompressedMaskOp (rewriter, loc, op.getMask (), origElements, scale );
711
+ getCompressedMaskOp (rewriter, loc, op.getMask (), origElements, emulatedPerContainerElem );
712
712
if (failed (newMask))
713
713
return failure ();
714
714
715
- auto numElements = (origElements + scale - 1 ) / scale ;
715
+ auto numElements = (origElements + emulatedPerContainerElem - 1 ) / emulatedPerContainerElem ;
716
716
auto newType = VectorType::get (numElements, containerElemTy);
717
717
auto passThru = rewriter.create <arith::ConstantOp>(
718
718
loc, newType, rewriter.getZeroAttr (newType));
@@ -721,7 +721,7 @@ struct ConvertVectorMaskedStore final
721
721
loc, newType, adaptor.getBase (), linearizedIndices,
722
722
newMask.value ()->getResult (0 ), passThru);
723
723
724
- auto newBitCastType = VectorType::get (numElements * scale , emulatedElemTy);
724
+ auto newBitCastType = VectorType::get (numElements * emulatedPerContainerElem , emulatedElemTy);
725
725
Value valueToStore =
726
726
rewriter.create <vector::BitCastOp>(loc, newBitCastType, newLoad);
727
727
valueToStore = rewriter.create <arith::SelectOp>(
@@ -765,7 +765,7 @@ struct ConvertVectorLoad final : OpConversionPattern<vector::LoadOp> {
765
765
op, " impossible to pack emulated elements into container elements "
766
766
" (bit-wise misalignment)" );
767
767
}
768
- int scale = containerBits / emulatedBits;
768
+ int emulatedPerContainerElem = containerBits / emulatedBits;
769
769
770
770
// Adjust the number of elements to load when emulating narrow types,
771
771
// and then cast back to the original type with vector.bitcast op.
@@ -797,7 +797,7 @@ struct ConvertVectorLoad final : OpConversionPattern<vector::LoadOp> {
797
797
// compile time as they must be constants.
798
798
799
799
auto origElements = op.getVectorType ().getNumElements ();
800
- bool isAlignedEmulation = origElements % scale == 0 ;
800
+ bool isAlignedEmulation = origElements % emulatedPerContainerElem == 0 ;
801
801
802
802
auto stridedMetadata =
803
803
rewriter.create <memref::ExtractStridedMetadataOp>(loc, op.getBase ());
@@ -818,9 +818,9 @@ struct ConvertVectorLoad final : OpConversionPattern<vector::LoadOp> {
818
818
: getConstantIntValue (linearizedInfo.intraDataOffset );
819
819
820
820
// Always load enough elements which can cover the original elements.
821
- int64_t maxintraDataOffset = foldedIntraVectorOffset.value_or (scale - 1 );
821
+ int64_t maxintraDataOffset = foldedIntraVectorOffset.value_or (emulatedPerContainerElem - 1 );
822
822
auto numElements =
823
- llvm::divideCeil (maxintraDataOffset + origElements, scale );
823
+ llvm::divideCeil (maxintraDataOffset + origElements, emulatedPerContainerElem );
824
824
Value result =
825
825
emulatedVectorLoad (rewriter, loc, adaptor.getBase (), linearizedIndices,
826
826
numElements, emulatedElemTy, containerElemTy);
@@ -870,7 +870,7 @@ struct ConvertVectorMaskedLoad final
870
870
op, " impossible to pack emulated elements into container elements "
871
871
" (bit-wise misalignment)" );
872
872
}
873
- int scale = containerBits / emulatedBits;
873
+ int emulatedPerContainerElem = containerBits / emulatedBits;
874
874
875
875
// Adjust the number of elements to load when emulating narrow types,
876
876
// and then cast back to the original type with vector.bitcast op.
@@ -916,7 +916,7 @@ struct ConvertVectorMaskedLoad final
916
916
// subvector at the proper offset after bit-casting.
917
917
auto origType = op.getVectorType ();
918
918
auto origElements = origType.getNumElements ();
919
- bool isAlignedEmulation = origElements % scale == 0 ;
919
+ bool isAlignedEmulation = origElements % emulatedPerContainerElem == 0 ;
920
920
921
921
auto stridedMetadata =
922
922
rewriter.create <memref::ExtractStridedMetadataOp>(loc, op.getBase ());
@@ -935,18 +935,18 @@ struct ConvertVectorMaskedLoad final
935
935
? 0
936
936
: getConstantIntValue (linearizedInfo.intraDataOffset );
937
937
938
- int64_t maxIntraDataOffset = foldedIntraVectorOffset.value_or (scale - 1 );
938
+ int64_t maxIntraDataOffset = foldedIntraVectorOffset.value_or (emulatedPerContainerElem - 1 );
939
939
FailureOr<Operation *> newMask = getCompressedMaskOp (
940
- rewriter, loc, op.getMask (), origElements, scale , maxIntraDataOffset);
940
+ rewriter, loc, op.getMask (), origElements, emulatedPerContainerElem , maxIntraDataOffset);
941
941
if (failed (newMask))
942
942
return failure ();
943
943
944
944
Value passthru = op.getPassThru ();
945
945
946
946
auto numElements =
947
- llvm::divideCeil (maxIntraDataOffset + origElements, scale );
947
+ llvm::divideCeil (maxIntraDataOffset + origElements, emulatedPerContainerElem );
948
948
auto loadType = VectorType::get (numElements, containerElemTy);
949
- auto newBitcastType = VectorType::get (numElements * scale , emulatedElemTy);
949
+ auto newBitcastType = VectorType::get (numElements * emulatedPerContainerElem , emulatedElemTy);
950
950
951
951
auto emptyVector = rewriter.create <arith::ConstantOp>(
952
952
loc, newBitcastType, rewriter.getZeroAttr (newBitcastType));
@@ -974,7 +974,7 @@ struct ConvertVectorMaskedLoad final
974
974
975
975
Value mask = op.getMask ();
976
976
auto newSelectMaskType =
977
- VectorType::get (numElements * scale , rewriter.getI1Type ());
977
+ VectorType::get (numElements * emulatedPerContainerElem , rewriter.getI1Type ());
978
978
// TODO: try to fold if op's mask is constant
979
979
auto emptyMask = rewriter.create <arith::ConstantOp>(
980
980
loc, newSelectMaskType, rewriter.getZeroAttr (newSelectMaskType));
@@ -1033,11 +1033,11 @@ struct ConvertVectorTransferRead final
1033
1033
op, " impossible to pack emulated elements into container elements "
1034
1034
" (bit-wise misalignment)" );
1035
1035
}
1036
- int scale = containerBits / emulatedBits;
1036
+ int emulatedPerContainerElem = containerBits / emulatedBits;
1037
1037
1038
1038
auto origElements = op.getVectorType ().getNumElements ();
1039
1039
1040
- bool isAlignedEmulation = origElements % scale == 0 ;
1040
+ bool isAlignedEmulation = origElements % emulatedPerContainerElem == 0 ;
1041
1041
1042
1042
auto newPadding = rewriter.create <arith::ExtUIOp>(loc, containerElemTy,
1043
1043
adaptor.getPadding ());
@@ -1060,17 +1060,17 @@ struct ConvertVectorTransferRead final
1060
1060
? 0
1061
1061
: getConstantIntValue (linearizedInfo.intraDataOffset );
1062
1062
1063
- int64_t maxIntraDataOffset = foldedIntraVectorOffset.value_or (scale - 1 );
1063
+ int64_t maxIntraDataOffset = foldedIntraVectorOffset.value_or (emulatedPerContainerElem - 1 );
1064
1064
auto numElements =
1065
- llvm::divideCeil (maxIntraDataOffset + origElements, scale );
1065
+ llvm::divideCeil (maxIntraDataOffset + origElements, emulatedPerContainerElem );
1066
1066
1067
1067
auto newRead = rewriter.create <vector::TransferReadOp>(
1068
1068
loc, VectorType::get (numElements, containerElemTy), adaptor.getSource (),
1069
1069
getValueOrCreateConstantIndexOp (rewriter, loc, linearizedIndices),
1070
1070
newPadding);
1071
1071
1072
1072
auto bitCast = rewriter.create <vector::BitCastOp>(
1073
- loc, VectorType::get (numElements * scale , emulatedElemTy), newRead);
1073
+ loc, VectorType::get (numElements * emulatedPerContainerElem , emulatedElemTy), newRead);
1074
1074
1075
1075
Value result = bitCast->getResult (0 );
1076
1076
if (!foldedIntraVectorOffset) {
0 commit comments