Skip to content

Commit 122d5ea

Browse files
committed
Fixups
1 parent decbae4 commit 122d5ea

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

llvm/lib/Target/AArch64/AArch64InstrInfo.td

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -247,11 +247,6 @@ def HasSMEF16F16orSMEF8F16
247247
def HasNEONandIsStreamingSafe
248248
: Predicate<"Subtarget->hasNEON()">,
249249
AssemblerPredicateWithAll<(any_of FeatureNEON), "neon">;
250-
// A subset of NEON instructions legal in Streaming SVE mode with +sme2p2.
251-
// TODO: Change to check for hasSME2p2() once FEAT_SME2p2 is implemented.
252-
def HasNEONandIsSME2p2StreamingSafe
253-
: Predicate<"Subtarget->isNeonAvailable()">,
254-
AssemblerPredicateWithAll<(any_of FeatureNEON), "neon">;
255250
def HasRCPC : Predicate<"Subtarget->hasRCPC()">,
256251
AssemblerPredicateWithAll<(all_of FeatureRCPC), "rcpc">;
257252
def HasAltNZCV : Predicate<"Subtarget->hasAlternativeNZCV()">,
@@ -6242,7 +6237,8 @@ def : Pat<(v2f64 (AArch64frsqrts (v2f64 FPR128:$Rn), (v2f64 FPR128:$Rm))),
62426237
// Some float -> int -> float conversion patterns for which we want to keep the
62436238
// int values in FP registers using the corresponding NEON instructions to
62446239
// avoid more costly int <-> fp register transfers.
6245-
let Predicates = [HasNEONandIsSME2p2StreamingSafe] in {
6240+
// TODO: Allow these in streaming[-compatible] functions with +sme2p2.
6241+
let Predicates = [HasNEON] in {
62466242
def : Pat<(f64 (any_sint_to_fp (i64 (any_fp_to_sint f64:$Rn)))),
62476243
(SCVTFv1i64 (i64 (FCVTZSv1i64 f64:$Rn)))>;
62486244
def : Pat<(f32 (any_sint_to_fp (i32 (any_fp_to_sint f32:$Rn)))),
@@ -6252,7 +6248,7 @@ def : Pat<(f64 (any_uint_to_fp (i64 (any_fp_to_uint f64:$Rn)))),
62526248
def : Pat<(f32 (any_uint_to_fp (i32 (any_fp_to_uint f32:$Rn)))),
62536249
(UCVTFv1i32 (i32 (FCVTZUv1i32 f32:$Rn)))>;
62546250

6255-
let Predicates = [HasNEONandIsSME2p2StreamingSafe, HasFullFP16] in {
6251+
let Predicates = [HasNEON, HasFullFP16] in {
62566252
def : Pat<(f16 (any_sint_to_fp (i32 (any_fp_to_sint f16:$Rn)))),
62576253
(SCVTFv1i16 (f16 (FCVTZSv1f16 f16:$Rn)))>;
62586254
def : Pat<(f16 (any_uint_to_fp (i32 (any_fp_to_uint f16:$Rn)))),
@@ -6275,7 +6271,7 @@ def : Pat<(f64 (uint_to_fp (i64 (vector_extract (v2i64 FPR128:$Rn), (i64 0))))),
62756271

62766272
// fp16: integer extraction from vector must be at least 32-bits to be legal.
62776273
// Actual extraction result is then an in-reg sign-extension of lower 16-bits.
6278-
let Predicates = [HasNEONandIsSME2p2StreamingSafe, HasFullFP16] in {
6274+
let Predicates = [HasNEON, HasFullFP16] in {
62796275
def : Pat<(f16 (sint_to_fp (i32 (sext_inreg (i32 (vector_extract
62806276
(v8i16 FPR128:$Rn), (i64 0))), i16)))),
62816277
(SCVTFv1i16 (f16 (EXTRACT_SUBREG (v8i16 FPR128:$Rn), hsub)))>;
@@ -6372,7 +6368,7 @@ def : Pat <(f64 (uint_to_fp (i32
63726368
(LDURSi GPR64sp:$Rn, simm9:$offset), ssub))>;
63736369
// 64-bits -> double are handled in target specific dag combine:
63746370
// performIntToFpCombine.
6375-
} // let Predicates = [HasNEONandIsSME2p2StreamingSafe]
6371+
} // let Predicates = [HasNEON]
63766372

63776373
//===----------------------------------------------------------------------===//
63786374
// Advanced SIMD three different-sized vector instructions.

0 commit comments

Comments
 (0)