@@ -749,14 +749,14 @@ def SVCMPLS_WIDE_N : SInst<"svcmple_wide[_n_{d}]", "PPdj", "UcUsUi", MergeNone,
749
749
////////////////////////////////////////////////////////////////////////////////
750
750
// While comparisons
751
751
752
- def SVWHILELE_S32 : SInst<"svwhilele_{d}[_{1}]", "Pkk", "PcPsPiPl", MergeNone, "aarch64_sve_whilele", [IsOverloadWhile , IsStreamingCompatible]>;
753
- def SVWHILELE_S64 : SInst<"svwhilele_{d}[_{1}]", "Pll", "PcPsPiPl", MergeNone, "aarch64_sve_whilele", [IsOverloadWhile , IsStreamingCompatible]>;
754
- def SVWHILELO_U32 : SInst<"svwhilelt_{d}[_{1}]", "Pmm", "PUcPUsPUiPUl", MergeNone, "aarch64_sve_whilelo", [IsOverloadWhile , IsStreamingCompatible]>;
755
- def SVWHILELO_U64 : SInst<"svwhilelt_{d}[_{1}]", "Pnn", "PUcPUsPUiPUl", MergeNone, "aarch64_sve_whilelo", [IsOverloadWhile , IsStreamingCompatible]>;
756
- def SVWHILELS_U32 : SInst<"svwhilele_{d}[_{1}]", "Pmm", "PUcPUsPUiPUl", MergeNone, "aarch64_sve_whilels", [IsOverloadWhile , IsStreamingCompatible]>;
757
- def SVWHILELS_U64 : SInst<"svwhilele_{d}[_{1}]", "Pnn", "PUcPUsPUiPUl", MergeNone, "aarch64_sve_whilels", [IsOverloadWhile , IsStreamingCompatible]>;
758
- def SVWHILELT_S32 : SInst<"svwhilelt_{d}[_{1}]", "Pkk", "PcPsPiPl", MergeNone, "aarch64_sve_whilelt", [IsOverloadWhile , IsStreamingCompatible]>;
759
- def SVWHILELT_S64 : SInst<"svwhilelt_{d}[_{1}]", "Pll", "PcPsPiPl", MergeNone, "aarch64_sve_whilelt", [IsOverloadWhile , IsStreamingCompatible]>;
752
+ def SVWHILELE_S32 : SInst<"svwhilele_{d}[_{1}]", "Pkk", "PcPsPiPl", MergeNone, "aarch64_sve_whilele", [IsOverloadWhileOrMultiVecCvt , IsStreamingCompatible]>;
753
+ def SVWHILELE_S64 : SInst<"svwhilele_{d}[_{1}]", "Pll", "PcPsPiPl", MergeNone, "aarch64_sve_whilele", [IsOverloadWhileOrMultiVecCvt , IsStreamingCompatible]>;
754
+ def SVWHILELO_U32 : SInst<"svwhilelt_{d}[_{1}]", "Pmm", "PUcPUsPUiPUl", MergeNone, "aarch64_sve_whilelo", [IsOverloadWhileOrMultiVecCvt , IsStreamingCompatible]>;
755
+ def SVWHILELO_U64 : SInst<"svwhilelt_{d}[_{1}]", "Pnn", "PUcPUsPUiPUl", MergeNone, "aarch64_sve_whilelo", [IsOverloadWhileOrMultiVecCvt , IsStreamingCompatible]>;
756
+ def SVWHILELS_U32 : SInst<"svwhilele_{d}[_{1}]", "Pmm", "PUcPUsPUiPUl", MergeNone, "aarch64_sve_whilels", [IsOverloadWhileOrMultiVecCvt , IsStreamingCompatible]>;
757
+ def SVWHILELS_U64 : SInst<"svwhilele_{d}[_{1}]", "Pnn", "PUcPUsPUiPUl", MergeNone, "aarch64_sve_whilels", [IsOverloadWhileOrMultiVecCvt , IsStreamingCompatible]>;
758
+ def SVWHILELT_S32 : SInst<"svwhilelt_{d}[_{1}]", "Pkk", "PcPsPiPl", MergeNone, "aarch64_sve_whilelt", [IsOverloadWhileOrMultiVecCvt , IsStreamingCompatible]>;
759
+ def SVWHILELT_S64 : SInst<"svwhilelt_{d}[_{1}]", "Pll", "PcPsPiPl", MergeNone, "aarch64_sve_whilelt", [IsOverloadWhileOrMultiVecCvt , IsStreamingCompatible]>;
760
760
761
761
////////////////////////////////////////////////////////////////////////////////
762
762
// Counting bit
@@ -1336,14 +1336,14 @@ let TargetGuard = "sve2p1|sme2" in {
1336
1336
////////////////////////////////////////////////////////////////////////////////
1337
1337
// SVE2 WhileGE/GT
1338
1338
let TargetGuard = "sve2" in {
1339
- def SVWHILEGE_S32 : SInst<"svwhilege_{d}[_{1}]", "Pkk", "PcPsPiPl", MergeNone, "aarch64_sve_whilege", [IsOverloadWhile , IsStreamingCompatible]>;
1340
- def SVWHILEGE_S64 : SInst<"svwhilege_{d}[_{1}]", "Pll", "PcPsPiPl", MergeNone, "aarch64_sve_whilege", [IsOverloadWhile , IsStreamingCompatible]>;
1341
- def SVWHILEGT_S32 : SInst<"svwhilegt_{d}[_{1}]", "Pkk", "PcPsPiPl", MergeNone, "aarch64_sve_whilegt", [IsOverloadWhile , IsStreamingCompatible]>;
1342
- def SVWHILEGT_S64 : SInst<"svwhilegt_{d}[_{1}]", "Pll", "PcPsPiPl", MergeNone, "aarch64_sve_whilegt", [IsOverloadWhile , IsStreamingCompatible]>;
1343
- def SVWHILEHI_U32 : SInst<"svwhilegt_{d}[_{1}]", "Pmm", "PUcPUsPUiPUl", MergeNone, "aarch64_sve_whilehi", [IsOverloadWhile , IsStreamingCompatible]>;
1344
- def SVWHILEHI_U64 : SInst<"svwhilegt_{d}[_{1}]", "Pnn", "PUcPUsPUiPUl", MergeNone, "aarch64_sve_whilehi", [IsOverloadWhile , IsStreamingCompatible]>;
1345
- def SVWHILEHS_U32 : SInst<"svwhilege_{d}[_{1}]", "Pmm", "PUcPUsPUiPUl", MergeNone, "aarch64_sve_whilehs", [IsOverloadWhile , IsStreamingCompatible]>;
1346
- def SVWHILEHS_U64 : SInst<"svwhilege_{d}[_{1}]", "Pnn", "PUcPUsPUiPUl", MergeNone, "aarch64_sve_whilehs", [IsOverloadWhile , IsStreamingCompatible]>;
1339
+ def SVWHILEGE_S32 : SInst<"svwhilege_{d}[_{1}]", "Pkk", "PcPsPiPl", MergeNone, "aarch64_sve_whilege", [IsOverloadWhileOrMultiVecCvt , IsStreamingCompatible]>;
1340
+ def SVWHILEGE_S64 : SInst<"svwhilege_{d}[_{1}]", "Pll", "PcPsPiPl", MergeNone, "aarch64_sve_whilege", [IsOverloadWhileOrMultiVecCvt , IsStreamingCompatible]>;
1341
+ def SVWHILEGT_S32 : SInst<"svwhilegt_{d}[_{1}]", "Pkk", "PcPsPiPl", MergeNone, "aarch64_sve_whilegt", [IsOverloadWhileOrMultiVecCvt , IsStreamingCompatible]>;
1342
+ def SVWHILEGT_S64 : SInst<"svwhilegt_{d}[_{1}]", "Pll", "PcPsPiPl", MergeNone, "aarch64_sve_whilegt", [IsOverloadWhileOrMultiVecCvt , IsStreamingCompatible]>;
1343
+ def SVWHILEHI_U32 : SInst<"svwhilegt_{d}[_{1}]", "Pmm", "PUcPUsPUiPUl", MergeNone, "aarch64_sve_whilehi", [IsOverloadWhileOrMultiVecCvt , IsStreamingCompatible]>;
1344
+ def SVWHILEHI_U64 : SInst<"svwhilegt_{d}[_{1}]", "Pnn", "PUcPUsPUiPUl", MergeNone, "aarch64_sve_whilehi", [IsOverloadWhileOrMultiVecCvt , IsStreamingCompatible]>;
1345
+ def SVWHILEHS_U32 : SInst<"svwhilege_{d}[_{1}]", "Pmm", "PUcPUsPUiPUl", MergeNone, "aarch64_sve_whilehs", [IsOverloadWhileOrMultiVecCvt , IsStreamingCompatible]>;
1346
+ def SVWHILEHS_U64 : SInst<"svwhilege_{d}[_{1}]", "Pnn", "PUcPUsPUiPUl", MergeNone, "aarch64_sve_whilehs", [IsOverloadWhileOrMultiVecCvt , IsStreamingCompatible]>;
1347
1347
}
1348
1348
1349
1349
let TargetGuard = "sve2p1|sme2" in {
@@ -2244,15 +2244,15 @@ let TargetGuard = "sme2" in {
2244
2244
def SVCVT_F16_X2 : SInst<"svcvt_f16[_f32_x2]", "e2", "f", MergeNone, "aarch64_sve_fcvt_x2", [IsStreaming],[]>;
2245
2245
def SVCVT_BF16_X2 : SInst<"svcvt_bf16[_f32_x2]", "$2", "f", MergeNone, "aarch64_sve_bfcvt_x2", [IsOverloadNone, IsStreaming],[]>;
2246
2246
2247
- def SVCVT_F32_U32_X2 : SInst<"svcvt_{d}[_u32_x2]", "2.d2.u", "f", MergeNone, "aarch64_sve_ucvtf_x2", [IsStreaming], []>;
2248
- def SVCVT_U32_F32_X2 : SInst<"svcvt_u32[_ {d}_x2 ]", "2.u2.d ", "f ", MergeNone, "aarch64_sve_fcvtu_x2 ", [IsStreaming], []>;
2249
- def SVCVT_F32_S32_X2 : SInst<"svcvt_{d}[_s32_x2]", "2.d2.x", "f", MergeNone, "aarch64_sve_scvtf_x2", [IsStreaming], []>;
2250
- def SVCVT_S32_F32_X2 : SInst<"svcvt_s32[_ {d}_x2 ]", "2.x2.d ", "f ", MergeNone, "aarch64_sve_fcvts_x2 ", [IsStreaming], []>;
2247
+ def SVCVT_F32_U32_X2 : SInst<"svcvt_{d}[_u32_x2]", "2.d2.u", "f", MergeNone, "aarch64_sve_ucvtf_x2", [IsStreaming, IsOverloadWhileOrMultiVecCvt ], []>;
2248
+ def SVCVT_U32_F32_X2 : SInst<"svcvt_ {d}[_f32_x2 ]", "2.d2.M ", "Ui ", MergeNone, "aarch64_sve_fcvtzu_x2 ", [IsStreaming, IsOverloadWhileOrMultiVecCvt ], []>;
2249
+ def SVCVT_F32_S32_X2 : SInst<"svcvt_{d}[_s32_x2]", "2.d2.x", "f", MergeNone, "aarch64_sve_scvtf_x2", [IsStreaming, IsOverloadWhileOrMultiVecCvt ], []>;
2250
+ def SVCVT_S32_F32_X2 : SInst<"svcvt_ {d}[_f32_x2 ]", "2.d2.M ", "i ", MergeNone, "aarch64_sve_fcvtzs_x2 ", [IsStreaming, IsOverloadWhileOrMultiVecCvt ], []>;
2251
2251
2252
- def SVCVT_F32_U32_X4 : SInst<"svcvt_{d}[_u32_x4]", "4.d4.u", "f", MergeNone, "aarch64_sve_ucvtf_x4", [IsStreaming], []>;
2253
- def SVCVT_U32_F32_X4 : SInst<"svcvt_u32[_ {d}_x4 ]", "4.u4.d ", "f ", MergeNone, "aarch64_sve_fcvtu_x4 ", [IsStreaming], []>;
2254
- def SVCVT_F32_S32_X4 : SInst<"svcvt_{d}[_s32_x4]", "4.d4.x", "f", MergeNone, "aarch64_sve_scvtf_x4", [IsStreaming], []>;
2255
- def SVCVT_S32_F32_X4 : SInst<"svcvt_s32[_ {d}_x4 ]", "4.x4.d ", "f ", MergeNone, "aarch64_sve_fcvts_x4 ", [IsStreaming], []>;
2252
+ def SVCVT_F32_U32_X4 : SInst<"svcvt_{d}[_u32_x4]", "4.d4.u", "f", MergeNone, "aarch64_sve_ucvtf_x4", [IsStreaming, IsOverloadWhileOrMultiVecCvt ], []>;
2253
+ def SVCVT_U32_F32_X4 : SInst<"svcvt_ {d}[_f32_x4 ]", "4.d4.M ", "Ui ", MergeNone, "aarch64_sve_fcvtzu_x4 ", [IsStreaming, IsOverloadWhileOrMultiVecCvt ], []>;
2254
+ def SVCVT_F32_S32_X4 : SInst<"svcvt_{d}[_s32_x4]", "4.d4.x", "f", MergeNone, "aarch64_sve_scvtf_x4", [IsStreaming, IsOverloadWhileOrMultiVecCvt ], []>;
2255
+ def SVCVT_S32_F32_X4 : SInst<"svcvt_ {d}[_f32_x4 ]", "4.d4.M ", "i ", MergeNone, "aarch64_sve_fcvtzs_x4 ", [IsStreaming, IsOverloadWhileOrMultiVecCvt ], []>;
2256
2256
}
2257
2257
2258
2258
//
0 commit comments