Lines Matching full:extract
35 GExtractVectorElement *Extract = cast<GExtractVectorElement>(&MI); in matchExtractVectorElement() local
37 Register Dst = Extract->getReg(0); in matchExtractVectorElement()
38 Register Vector = Extract->getVectorReg(); in matchExtractVectorElement()
39 Register Index = Extract->getIndexReg(); in matchExtractVectorElement()
53 // * insert/extract vector element in matchExtractVectorElement()
54 // * insert/extract subvector in matchExtractVectorElement()
83 // For fixed-length vectors, it's invalid to extract out-of-range elements. in matchExtractVectorElement()
94 GExtractVectorElement *Extract = cast<GExtractVectorElement>(Root); in matchExtractVectorElementWithDifferentIndices() local
100 // %value(s32), %idx2(s64) %extract:_(s32) = G_EXTRACT_VECTOR_ELT %insert(<2 in matchExtractVectorElementWithDifferentIndices()
106 // %value(s32), %idx2(s64) %extract:_(s32) = G_EXTRACT_VECTOR_ELT %bv(<2 x in matchExtractVectorElementWithDifferentIndices()
111 Register Index = Extract->getIndexReg(); in matchExtractVectorElementWithDifferentIndices()
123 Register Vector = Extract->getVectorReg(); in matchExtractVectorElementWithDifferentIndices()
130 Register Dst = Extract->getReg(0); in matchExtractVectorElementWithDifferentIndices()
151 GExtractVectorElement *Extract = cast<GExtractVectorElement>(Root); in matchExtractVectorElementWithBuildVector() local
156 // %extract:_(s32) = G_EXTRACT_VECTOR_ELT %bv(<2 x s32>), %zero(s64) in matchExtractVectorElementWithBuildVector()
160 // %extract:_(32) = COPY %arg1(s32) in matchExtractVectorElementWithBuildVector()
165 // %extract:_(s32) = G_EXTRACT_VECTOR_ELT %bv(<2 x s32>), %opaque(s64) in matchExtractVectorElementWithBuildVector()
170 // %extract:_(s32) = G_EXTRACT_VECTOR_ELT %bv(<2 x s32>), %opaque(s64) in matchExtractVectorElementWithBuildVector()
173 Register Vector = Extract->getVectorReg(); in matchExtractVectorElementWithBuildVector()
188 Register Index = Extract->getIndexReg(); in matchExtractVectorElementWithBuildVector()
190 // If the Index is constant, then we can extract the element from the given in matchExtractVectorElementWithBuildVector()
200 Register Dst = Extract->getReg(0); in matchExtractVectorElementWithBuildVector()
212 GExtractVectorElement *Extract = cast<GExtractVectorElement>(Root); in matchExtractVectorElementWithBuildVectorTrunc() local
217 // %extract:_(s32) = G_EXTRACT_VECTOR_ELT %bv(<2 x s32>), %zero(s64) in matchExtractVectorElementWithBuildVectorTrunc()
221 // %extract:_(32) = G_TRUNC %arg1(s64) in matchExtractVectorElementWithBuildVectorTrunc()
226 // %extract:_(s32) = G_EXTRACT_VECTOR_ELT %bv(<2 x s32>), %opaque(s64) in matchExtractVectorElementWithBuildVectorTrunc()
231 // %extract:_(s32) = G_EXTRACT_VECTOR_ELT %bv(<2 x s32>), %opaque(s64) in matchExtractVectorElementWithBuildVectorTrunc()
234 Register Vector = Extract->getVectorReg(); in matchExtractVectorElementWithBuildVectorTrunc()
249 Register Index = Extract->getIndexReg(); in matchExtractVectorElementWithBuildVectorTrunc()
251 // If the Index is constant, then we can extract the element from the given in matchExtractVectorElementWithBuildVectorTrunc()
261 Register Dst = Extract->getReg(0); in matchExtractVectorElementWithBuildVectorTrunc()
278 GExtractVectorElement *Extract = in matchExtractVectorElementWithShuffleVector() local
285 // %extract:_(s32) = G_EXTRACT_VECTOR_ELT %sv(<4 x s32>), %zero(s64) in matchExtractVectorElementWithShuffleVector()
290 // %extract:_(s32) = G_EXTRACT_VECTOR_ELT %arg1(<4 x s32>), %zero1(s64) in matchExtractVectorElementWithShuffleVector()
298 // %extract:_(s32) = G_EXTRACT_VECTOR_ELT %sv(<4 x s32>), %three(s64) in matchExtractVectorElementWithShuffleVector()
302 // %extract:_(s32) = G_IMPLICIT_DEF in matchExtractVectorElementWithShuffleVector()
310 // %extract:_(s32) = G_EXTRACT_VECTOR_ELT %sv(<4 x s32>), %opaque(s64) in matchExtractVectorElementWithShuffleVector()
316 // %extract:_(s32) = G_EXTRACT_VECTOR_ELT %sv(<4 x s32>), %opaque(s64) in matchExtractVectorElementWithShuffleVector()
321 getIConstantVRegValWithLookThrough(Extract->getIndexReg(), MRI); in matchExtractVectorElementWithShuffleVector()
326 cast<GShuffleVector>(getDefIgnoringCopies(Extract->getVectorReg(), MRI)); in matchExtractVectorElementWithShuffleVector()
334 // At the IR level a <1 x ty> shuffle vector is valid, but we want to extract in matchExtractVectorElementWithShuffleVector()
336 assert(Src1Type.isVector() && "expected to extract from a vector"); in matchExtractVectorElementWithShuffleVector()
340 Register Dst = Extract->getReg(0); in matchExtractVectorElementWithShuffleVector()
364 LLT IdxTy = MRI.getType(Extract->getIndexReg()); in matchExtractVectorElementWithShuffleVector()