Lines Matching refs:vector_extract
3014 def : Pat<(storeop (STy (vector_extract (VecTy VecListOne128:$Vt), 0)),
3019 def : Pat<(storeop (STy (vector_extract (VecTy VecListOne128:$Vt), 0)),
3152 def : Pat<(storeop (STy (vector_extract (VTy VecListOne128:$Vt), 0)),
5013 // If there's an (AArch64dup (vector_extract ...) ...), we can use a duplane
5029 def : Pat<(ResVT (AArch64dup (ScalVT (vector_extract (Src128VT V128:$Rn),
5033 def : Pat<(ResVT (AArch64dup (ScalVT (vector_extract (Src64VT V64:$Rn),
5069 def : Pat<(sext_inreg (vector_extract (v16i8 V128:$Rn), VectorIndexB:$idx), i8),
5071 def : Pat<(sext_inreg (vector_extract (v16i8 V128:$Rn), VectorIndexB:$idx), i8),
5073 def : Pat<(sext_inreg (vector_extract (v8i16 V128:$Rn), VectorIndexH:$idx),i16),
5075 def : Pat<(sext_inreg (vector_extract (v8i16 V128:$Rn), VectorIndexH:$idx),i16),
5077 def : Pat<(sext_inreg (vector_extract (v8i16 V128:$Rn), VectorIndexH:$idx),i16),
5079 def : Pat<(sext (i32 (vector_extract (v4i32 V128:$Rn), VectorIndexS:$idx))),
5082 def : Pat<(sext_inreg (i64 (anyext (i32 (vector_extract (v16i8 V128:$Rn),
5085 def : Pat<(sext_inreg (i64 (anyext (i32 (vector_extract (v8i16 V128:$Rn),
5093 def : Pat<(and (vector_extract (v16i8 V128:$Rn), VectorIndexB:$idx),
5096 def : Pat<(and (vector_extract (v8i16 V128:$Rn), VectorIndexH:$idx),
5253 (VTScal (vector_extract (VT128 V128:$Rn), imm:$Immn)),
5258 (VTScal (vector_extract (VT64 V64:$Rn), imm:$Immn)),
5264 (VTScal (vector_extract (VT128 V128:$Rn), imm:$Immn)),
5271 (VTScal (vector_extract (VT64 V64:$Rn), imm:$Immn)),
5288 def : Pat<(vector_extract (v2f64 V128:$Rn), 0),
5290 def : Pat<(vector_extract (v4f32 V128:$Rn), 0),
5292 def : Pat<(vector_extract (v8f16 V128:$Rn), 0),
5294 def : Pat<(vector_extract (v8bf16 V128:$Rn), 0),
5298 def : Pat<(vector_extract (v2f64 V128:$Rn), VectorIndexD:$idx),
5300 def : Pat<(vector_extract (v4f32 V128:$Rn), VectorIndexS:$idx),
5302 def : Pat<(vector_extract (v8f16 V128:$Rn), VectorIndexH:$idx),
5304 def : Pat<(vector_extract (v8bf16 V128:$Rn), VectorIndexH:$idx),
5357 // If a lane instruction caught the vector_extract around opNode, we can
5376 // If none did, fallback to the explicit patterns, consuming the vector_extract.
5377 def : Pat<(i32 (vector_extract (insert_subvector undef, (v8i8 (opNode V64:$Rn)),
5382 def : Pat<(i32 (vector_extract (v16i8 (opNode V128:$Rn)), (i64 0))),
5386 def : Pat<(i32 (vector_extract (insert_subvector undef,
5391 def : Pat<(i32 (vector_extract (v8i16 (opNode V128:$Rn)), (i64 0))),
5395 def : Pat<(i32 (vector_extract (v4i32 (opNode V128:$Rn)), (i64 0))),
5407 def : Pat<(i32 (sext_inreg (i32 (vector_extract (insert_subvector undef,
5413 def : Pat<(i32 (sext_inreg (i32 (vector_extract
5419 def : Pat<(i32 (sext_inreg (i32 (vector_extract (insert_subvector undef,
5425 def : Pat<(i32 (sext_inreg (i32 (vector_extract
5438 def : Pat<(i32 (and (i32 (vector_extract (insert_subvector undef,
5444 def : Pat<(i32 (and (i32 (vector_extract (opNode (v16i8 V128:$Rn)), (i64 0))),
5450 def : Pat<(i32 (and (i32 (vector_extract (insert_subvector undef,
5456 def : Pat<(i32 (and (i32 (vector_extract (opNode (v8i16 V128:$Rn)), (i64 0))),
5819 (vector_extract (v4f32 (fneg V128:$Rm)),
5824 (vector_extract (v4f32 (insert_subvector undef,
5833 (vector_extract (v2f64 (fneg V128:$Rm)),
5898 (vector_extract (v4i32 V128:$Vm),
6454 (STy (vector_extract (VTy VecListOne128:$Vt), VecIndex:$idx)),
6471 (STy (vector_extract (VTy VecListOne64:$Vt), VecIndex:$idx)),
6487 (STy (vector_extract (VTy VecListOne64:$Vt), VecIndex:$idx)),
6493 (STy (vector_extract (VTy VecListOne64:$Vt), VecIndex:$idx)),
6513 (STy (vector_extract (VTy VecListOne128:$Vt), VecIndex:$idx)),
6518 (STy (vector_extract (VTy VecListOne128:$Vt), VecIndex:$idx)),
7480 def : Pat<(i64 (add (vector_extract (v2i64 FPR128:$Rn), (i64 0)),
7481 (vector_extract (v2i64 FPR128:$Rn), (i64 1)))),
7483 def : Pat<(f64 (fadd (vector_extract (v2f64 FPR128:$Rn), (i64 0)),
7484 (vector_extract (v2f64 FPR128:$Rn), (i64 1)))),
7486 // vector_extract on 64-bit vectors gets promoted to a 128 bit vector,
7489 def : Pat<(fadd (vector_extract (v4f32 FPR128:$Rn), (i64 0)),
7490 (vector_extract (v4f32 FPR128:$Rn), (i64 1))),
7492 def : Pat<(fadd (vector_extract (v8f16 FPR128:$Rn), (i64 0)),
7493 (vector_extract (v8f16 FPR128:$Rn), (i64 1))),