@@ -8068,29 +8068,29 @@ multiclass SIMDFPIndexedTiedPatterns<string INST, SDPatternOperator OpNode> {
80688068 let Predicates = [HasNEON, HasFullFP16] in {
80698069 // Patterns for f16: DUPLANE, DUP scalar and vector_extract.
80708070 def : Pat<(v8f16 (OpNode (v8f16 V128:$Rd), (v8f16 V128:$Rn),
8071- (AArch64duplane16 (v8f16 V128 :$Rm),
8071+ (AArch64duplane16 (v8f16 V128_lo :$Rm),
80728072 VectorIndexH:$idx))),
80738073 (!cast<Instruction>(INST # "v8i16_indexed")
8074- V128:$Rd, V128:$Rn, V128 :$Rm, VectorIndexH:$idx)>;
8074+ V128:$Rd, V128:$Rn, V128_lo :$Rm, VectorIndexH:$idx)>;
80758075 def : Pat<(v8f16 (OpNode (v8f16 V128:$Rd), (v8f16 V128:$Rn),
80768076 (AArch64dup (f16 FPR16Op:$Rm)))),
80778077 (!cast<Instruction>(INST # "v8i16_indexed") V128:$Rd, V128:$Rn,
80788078 (SUBREG_TO_REG (i32 0), FPR16Op:$Rm, hsub), (i64 0))>;
80798079
80808080 def : Pat<(v4f16 (OpNode (v4f16 V64:$Rd), (v4f16 V64:$Rn),
8081- (AArch64duplane16 (v8f16 V128 :$Rm),
8082- VectorIndexS :$idx))),
8081+ (AArch64duplane16 (v8f16 V128_lo :$Rm),
8082+ VectorIndexH :$idx))),
80838083 (!cast<Instruction>(INST # "v4i16_indexed")
8084- V64:$Rd, V64:$Rn, V128 :$Rm, VectorIndexS :$idx)>;
8084+ V64:$Rd, V64:$Rn, V128_lo :$Rm, VectorIndexH :$idx)>;
80858085 def : Pat<(v4f16 (OpNode (v4f16 V64:$Rd), (v4f16 V64:$Rn),
80868086 (AArch64dup (f16 FPR16Op:$Rm)))),
80878087 (!cast<Instruction>(INST # "v4i16_indexed") V64:$Rd, V64:$Rn,
80888088 (SUBREG_TO_REG (i32 0), FPR16Op:$Rm, hsub), (i64 0))>;
80898089
80908090 def : Pat<(f16 (OpNode (f16 FPR16:$Rd), (f16 FPR16:$Rn),
8091- (vector_extract (v8f16 V128 :$Rm), VectorIndexH:$idx))),
8091+ (vector_extract (v8f16 V128_lo :$Rm), VectorIndexH:$idx))),
80928092 (!cast<Instruction>(INST # "v1i16_indexed") FPR16:$Rd, FPR16:$Rn,
8093- V128 :$Rm, VectorIndexH:$idx)>;
8093+ V128_lo :$Rm, VectorIndexH:$idx)>;
80948094 } // Predicates = [HasNEON, HasFullFP16]
80958095
80968096 // 2 variants for the .2s version: DUPLANE from 128-bit and DUP scalar.
0 commit comments