@@ -8068,29 +8068,29 @@ multiclass SIMDFPIndexedTiedPatterns<string INST, SDPatternOperator OpNode> {
8068
8068
let Predicates = [HasNEON, HasFullFP16] in {
8069
8069
// Patterns for f16: DUPLANE, DUP scalar and vector_extract.
8070
8070
def : Pat<(v8f16 (OpNode (v8f16 V128:$Rd), (v8f16 V128:$Rn),
8071
- (AArch64duplane16 (v8f16 V128 :$Rm),
8071
+ (AArch64duplane16 (v8f16 V128_lo :$Rm),
8072
8072
VectorIndexH:$idx))),
8073
8073
(!cast<Instruction>(INST # "v8i16_indexed")
8074
- V128:$Rd, V128:$Rn, V128 :$Rm, VectorIndexH:$idx)>;
8074
+ V128:$Rd, V128:$Rn, V128_lo :$Rm, VectorIndexH:$idx)>;
8075
8075
def : Pat<(v8f16 (OpNode (v8f16 V128:$Rd), (v8f16 V128:$Rn),
8076
8076
(AArch64dup (f16 FPR16Op:$Rm)))),
8077
8077
(!cast<Instruction>(INST # "v8i16_indexed") V128:$Rd, V128:$Rn,
8078
8078
(SUBREG_TO_REG (i32 0), FPR16Op:$Rm, hsub), (i64 0))>;
8079
8079
8080
8080
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))),
8083
8083
(!cast<Instruction>(INST # "v4i16_indexed")
8084
- V64:$Rd, V64:$Rn, V128 :$Rm, VectorIndexS :$idx)>;
8084
+ V64:$Rd, V64:$Rn, V128_lo :$Rm, VectorIndexH :$idx)>;
8085
8085
def : Pat<(v4f16 (OpNode (v4f16 V64:$Rd), (v4f16 V64:$Rn),
8086
8086
(AArch64dup (f16 FPR16Op:$Rm)))),
8087
8087
(!cast<Instruction>(INST # "v4i16_indexed") V64:$Rd, V64:$Rn,
8088
8088
(SUBREG_TO_REG (i32 0), FPR16Op:$Rm, hsub), (i64 0))>;
8089
8089
8090
8090
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))),
8092
8092
(!cast<Instruction>(INST # "v1i16_indexed") FPR16:$Rd, FPR16:$Rn,
8093
- V128 :$Rm, VectorIndexH:$idx)>;
8093
+ V128_lo :$Rm, VectorIndexH:$idx)>;
8094
8094
} // Predicates = [HasNEON, HasFullFP16]
8095
8095
8096
8096
// 2 variants for the .2s version: DUPLANE from 128-bit and DUP scalar.
0 commit comments