forked from OSchip/llvm-project
				
			[SVE] Update INSERT_SUBVECTOR DAGCombine to use getVectorElementCount().
A small piece of the project to replace getVectorNumElements() with getVectorElementCount(). Differential Revision: https://reviews.llvm.org/D86894
This commit is contained in:
		
							parent
							
								
									478eb98cd2
								
							
						
					
					
						commit
						cfe2b81710
					
				|  | @ -79,6 +79,10 @@ public: | ||||||
|     return {(unsigned)llvm::NextPowerOf2(Min), Scalable}; |     return {(unsigned)llvm::NextPowerOf2(Min), Scalable}; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |   bool isKnownMultipleOf(unsigned RHS) const { | ||||||
|  |     return Min % RHS == 0; | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|   static ElementCount getFixed(unsigned Min) { return {Min, false}; } |   static ElementCount getFixed(unsigned Min) { return {Min, false}; } | ||||||
|   static ElementCount getScalable(unsigned Min) { return {Min, true}; } |   static ElementCount getScalable(unsigned Min) { return {Min, true}; } | ||||||
|   static ElementCount get(unsigned Min, bool Scalable) { |   static ElementCount get(unsigned Min, bool Scalable) { | ||||||
|  |  | ||||||
|  | @ -20620,7 +20620,7 @@ SDValue DAGCombiner::visitINSERT_SUBVECTOR(SDNode *N) { | ||||||
|       SDLoc DL(N); |       SDLoc DL(N); | ||||||
|       SDValue NewIdx; |       SDValue NewIdx; | ||||||
|       LLVMContext &Ctx = *DAG.getContext(); |       LLVMContext &Ctx = *DAG.getContext(); | ||||||
|       unsigned NumElts = VT.getVectorNumElements(); |       ElementCount NumElts = VT.getVectorElementCount(); | ||||||
|       unsigned EltSizeInBits = VT.getScalarSizeInBits(); |       unsigned EltSizeInBits = VT.getScalarSizeInBits(); | ||||||
|       if ((EltSizeInBits % N1SrcSVT.getSizeInBits()) == 0) { |       if ((EltSizeInBits % N1SrcSVT.getSizeInBits()) == 0) { | ||||||
|         unsigned Scale = EltSizeInBits / N1SrcSVT.getSizeInBits(); |         unsigned Scale = EltSizeInBits / N1SrcSVT.getSizeInBits(); | ||||||
|  | @ -20628,7 +20628,7 @@ SDValue DAGCombiner::visitINSERT_SUBVECTOR(SDNode *N) { | ||||||
|         NewIdx = DAG.getVectorIdxConstant(InsIdx * Scale, DL); |         NewIdx = DAG.getVectorIdxConstant(InsIdx * Scale, DL); | ||||||
|       } else if ((N1SrcSVT.getSizeInBits() % EltSizeInBits) == 0) { |       } else if ((N1SrcSVT.getSizeInBits() % EltSizeInBits) == 0) { | ||||||
|         unsigned Scale = N1SrcSVT.getSizeInBits() / EltSizeInBits; |         unsigned Scale = N1SrcSVT.getSizeInBits() / EltSizeInBits; | ||||||
|         if ((NumElts % Scale) == 0 && (InsIdx % Scale) == 0) { |         if (NumElts.isKnownMultipleOf(Scale) && (InsIdx % Scale) == 0) { | ||||||
|           NewVT = EVT::getVectorVT(Ctx, N1SrcSVT, NumElts / Scale); |           NewVT = EVT::getVectorVT(Ctx, N1SrcSVT, NumElts / Scale); | ||||||
|           NewIdx = DAG.getVectorIdxConstant(InsIdx / Scale, DL); |           NewIdx = DAG.getVectorIdxConstant(InsIdx / Scale, DL); | ||||||
|         } |         } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Cameron McInally
						Cameron McInally