Skip to content

Commit 58c35e9

Browse files
committed
[AIE2] NFC: Use new .td bang operators to define _split instructions
This reduces the amount of clutter, and is somewhat target-agnostic.
1 parent de6abb4 commit 58c35e9

File tree

5 files changed

+81
-176
lines changed

5 files changed

+81
-176
lines changed

llvm/lib/Target/AIE/AIE2GenFixupInstrInfo.td

Lines changed: 0 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -446,30 +446,6 @@ let hasSideEffects = false, mayLoad = true, mayStore = false in {
446446
"vldb.3d.128", "$dst, [$ptr], $mod">,
447447
AIE2_ag_no_imm__ag_pstm_3d;
448448

449-
// Define _split instructions for VLDs
450-
let Constraints = "$ptr_out = $ptr" in {
451-
class LD_2D_split_instr<RegisterClass regclass> : SplitPseudo<
452-
(outs regclass:$dst, eP:$ptr_out, eDC:$count_out),
453-
(ins eP:$ptr, eM:$mod, eDN:$dim_size, eDJ:$dim_stride, eDC:$dim_count)> {}
454-
def VLDA_2D_dmw_lda_w_split : LD_2D_split_instr<mWa>;
455-
def VLDA_2D_dmw_lda_am_split : LD_2D_split_instr<mAMm>;
456-
def VLDA_2D_CONV_FP32_BF16_split : LD_2D_split_instr<mBMs>;
457-
def VLDB_2D_split : LD_2D_split_instr<mWa>;
458-
def VLDB_2D_128_split : LD_2D_split_instr<mWa>;
459-
def LDA_2D_dmv_lda_q_split : LD_2D_split_instr<mQQa>;
460-
461-
class LD_3D_split_instr<RegisterClass regclass> : SplitPseudo<
462-
(outs regclass:$dst, eP:$ptr_out, eDC:$count_lo_out, eDC:$count_hi_out),
463-
(ins eP:$ptr, eM:$mod1, eDN:$dim_size1, eDJ:$dim_stride1, eDC:$dim_count1,
464-
eM:$mod2, eDN:$dim_size2, eDJ:$dim_stride2, eDC:$dim_count2)> {}
465-
def VLDA_3D_dmw_lda_w_split : LD_3D_split_instr<mWa>;
466-
def VLDA_3D_dmw_lda_am_split : LD_3D_split_instr<mAMm>;
467-
def VLDA_3D_CONV_FP32_BF16_split : LD_3D_split_instr<mBMs>;
468-
def VLDB_3D_split : LD_3D_split_instr<mWa>;
469-
def VLDB_3D_128_split : LD_3D_split_instr<mWa>;
470-
def LDA_3D_dmv_lda_q_split : LD_3D_split_instr<mQQa>;
471-
} // Constraints = "$ptr_out = $ptr"
472-
473449
} // hasSideEffects = false, mayLoad = true, mayStore = false
474450

475451
// 3.3 VLD.UNPACK – Vector Loads with unpacking
@@ -518,16 +494,11 @@ let hasSideEffects = false, mayLoad = true, mayStore = false, hasCompleteDecoder
518494
AIE2_ag_no_imm__ag_pstm_2d;
519495
def VLDB_2D_UNPACK_S16_S8 : VLDB_2D_dmw_ldb_unpack</*sgn*/1, /*sz*/1, "vldb.2d.unpack.s16.s8">,
520496
AIE2_ag_no_imm__ag_pstm_2d;
521-
def VLDB_2D_UNPACK_S8_S4_split : LD_2D_split_instr<mXs>;
522-
def VLDB_2D_UNPACK_S16_S8_split : LD_2D_split_instr<mXs>;
523497
let Uses = [crUnpackSign] in {
524498
def VLDB_2D_UNPACK_D8_D4 : VLDB_2D_dmw_ldb_unpack</*sgn*/0, /*sz*/0, "vldb.2d.unpack.d8.d4">,
525499
AIE2_ag_no_imm__ag_pstm_2d;
526500
def VLDB_2D_UNPACK_D16_D8 : VLDB_2D_dmw_ldb_unpack</*sgn*/0, /*sz*/1, "vldb.2d.unpack.d16.d8">,
527501
AIE2_ag_no_imm__ag_pstm_2d;
528-
def VLDB_2D_UNPACK_D8_D4_split : LD_2D_split_instr<mXs>;
529-
def VLDB_2D_UNPACK_D16_D8_split : LD_2D_split_instr<mXs>;
530-
531502
}
532503
}
533504
let Itinerary = II_VLDB_UNPACK_3D, Constraints = "$ptr_out = $ptr" in
@@ -538,15 +509,11 @@ let hasSideEffects = false, mayLoad = true, mayStore = false, hasCompleteDecoder
538509
AIE2_ag_no_imm__ag_pstm_3d;
539510
def VLDB_3D_UNPACK_S16_S8 : VLDB_3D_dmw_ldb_unpack</*sgn*/1, /*sz*/1, "vldb.3d.unpack.s16.s8">,
540511
AIE2_ag_no_imm__ag_pstm_3d;
541-
def VLDB_3D_UNPACK_S8_S4_split : LD_3D_split_instr<mXs>;
542-
def VLDB_3D_UNPACK_S16_S8_split : LD_3D_split_instr<mXs>;
543512
let Uses = [crUnpackSign] in {
544513
def VLDB_3D_UNPACK_D8_D4 : VLDB_3D_dmw_ldb_unpack</*sgn*/0, /*sz*/0, "vldb.3d.unpack.d8.d4">,
545514
AIE2_ag_no_imm__ag_pstm_3d;
546515
def VLDB_3D_UNPACK_D16_D8 : VLDB_3D_dmw_ldb_unpack</*sgn*/0, /*sz*/1, "vldb.3d.unpack.d16.d8">,
547516
AIE2_ag_no_imm__ag_pstm_3d;
548-
def VLDB_3D_UNPACK_D8_D4_split : LD_3D_split_instr<mXs>;
549-
def VLDB_3D_UNPACK_D16_D8_split : LD_3D_split_instr<mXs>;
550517
}
551518
}
552519

@@ -707,27 +674,6 @@ let hasSideEffects = false, mayLoad = false, mayStore = true in {
707674
"st.3d", "$src, [$ptr], $mod">,
708675
AIE2_ag_all__ag_pstm_3d;
709676

710-
// Define _split instructions for VSTs
711-
let Constraints = "$ptr_out = $ptr" in {
712-
class ST_2D_split_instr<RegisterClass regclass> : SplitPseudo<
713-
(outs eP:$ptr_out, eDC:$count_out),
714-
(ins regclass:$dst, eP:$ptr,
715-
eM:$mod, eDN:$dim_size, eDJ:$dim_stride, eDC:$dim_count)> {}
716-
def VST_2D_dmw_sts_w_split : ST_2D_split_instr<mWs>;
717-
def VST_2D_128_split : ST_2D_split_instr<mWs>;
718-
def ST_2D_dmv_sts_q_split : ST_2D_split_instr<mQQa>;
719-
def VST_2D_dmw_sts_am_split : ST_2D_split_instr<mAMs>;
720-
721-
class ST_3D_split_instr<RegisterClass regclass> : SplitPseudo<
722-
(outs eP:$ptr_out, eDC:$count_lo_out, eDC:$count_hi_out),
723-
(ins regclass:$dst, eP:$ptr,
724-
eM:$mod1, eDN:$dim_size1, eDJ:$dim_stride1, eDC:$dim_count1,
725-
eM:$mod2, eDN:$dim_size2, eDJ:$dim_stride2, eDC:$dim_count2)> {}
726-
def VST_3D_dmw_sts_w_split : ST_3D_split_instr<mWs>;
727-
def VST_3D_128_split : ST_3D_split_instr<mWs>;
728-
def ST_3D_dmv_sts_q_split : ST_3D_split_instr<mQQa>;
729-
def VST_3D_dmw_sts_am_split : ST_3D_split_instr<mAMs>;
730-
} // Constraints = "$ptr_out = $ptr"
731677
} // let hasSideEffects = false, mayLoad = false, mayStore = true
732678

733679
// 3.21 LD.TM - Scalar Load from Tile Memory Map
@@ -1960,9 +1906,6 @@ let mayLoad = true in {
19601906
}
19611907
}
19621908

1963-
class VLD_UPS_2D_split_instr<RegisterClass regclass> : SplitPseudo<
1964-
(outs regclass:$dst, eP:$ptr_out, eDC:$count_out),
1965-
(ins mSs:$shft, eP:$ptr, eM:$mod, eDN:$dim_size, eDJ:$dim_stride, eDC:$dim_count)> {}
19661909
let Itinerary = II_VLDA_2D_UPS in
19671910
let Constraints = "$ptr_out = $ptr" in
19681911
let Defs = [srUPS_of] in {
@@ -1979,10 +1922,6 @@ let mayLoad = true in {
19791922
let DecoderMethod = "DecodeVLDA_2D_UPS_CMInstruction" in
19801923
def VLDA_2D_UPS_S64_D16 : AIE2_dmw_lda_ups_w2c_inst_lda < (outs mCMs:$dst, eP:$ptr_out, eDC:$count_out) , (ins mSs:$shft, eP:$ptr, eD:$mod),
19811924
"vlda.2d.ups.s64.d16", "$dst, $shft, [$ptr], $mod">, AIE2_ag_nospill__ag_pstm_2d, mv_ups_base<1, 0>;
1982-
def VLDA_2D_UPS_S32_D16_split : VLD_UPS_2D_split_instr<mBMs>;
1983-
def VLDA_2D_UPS_S64_D32_split : VLD_UPS_2D_split_instr<mBMs>;
1984-
def VLDA_2D_UPS_S32_D8_split : VLD_UPS_2D_split_instr<mCMs>;
1985-
def VLDA_2D_UPS_S64_D16_split : VLD_UPS_2D_split_instr<mCMs>;
19861925
}
19871926
let Uses = [crSat] in {
19881927
let DecoderMethod = "DecodeVLDA_2D_UPS_BMInstruction" in
@@ -1997,18 +1936,9 @@ let mayLoad = true in {
19971936
let DecoderMethod = "DecodeVLDA_2D_UPS_CMInstruction" in
19981937
def VLDA_2D_UPS_S64_S16 : AIE2_dmw_lda_ups_w2c_inst_lda < (outs mCMs:$dst, eP:$ptr_out, eDC:$count_out) , (ins mSs:$shft, eP:$ptr, eD:$mod),
19991938
"vlda.2d.ups.s64.s16", "$dst, $shft, [$ptr], $mod">, AIE2_ag_nospill__ag_pstm_2d, mv_ups_base<1, 1>;
2000-
def VLDA_2D_UPS_S32_S16_split : VLD_UPS_2D_split_instr<mBMs>;
2001-
def VLDA_2D_UPS_S64_S32_split : VLD_UPS_2D_split_instr<mBMs>;
2002-
def VLDA_2D_UPS_S32_S8_split : VLD_UPS_2D_split_instr<mCMs>;
2003-
def VLDA_2D_UPS_S64_S16_split : VLD_UPS_2D_split_instr<mCMs>;
20041939
}
20051940
}
20061941

2007-
class VLD_UPS_3D_split_instr<RegisterClass regclass> : SplitPseudo<
2008-
(outs regclass:$dst, eP:$ptr_out, eDC:$count_lo_out, eDC:$count_hi_out),
2009-
(ins mSs:$shft, eP:$ptr,
2010-
eM:$mod1, eDN:$dim_size1, eDJ:$dim_stride1, eDC:$dim_count1,
2011-
eM:$mod2, eDN:$dim_size2, eDJ:$dim_stride2, eDC:$dim_count2)> {}
20121942
let Itinerary = II_VLDA_3D_UPS in
20131943
let Constraints = "$ptr_out = $ptr" in
20141944
let Defs = [srUPS_of] in {
@@ -2037,10 +1967,6 @@ let mayLoad = true in {
20371967
(ins mSs:$shft, eP:$ptr, eDS:$mod),
20381968
"vlda.3d.ups.s64.d16", "$dst, $shft, [$ptr], $mod">,
20391969
AIE2_ag_nospill__ag_pstm_3d, mv_ups_base<1, 0>;
2040-
def VLDA_3D_UPS_S32_D16_split : VLD_UPS_3D_split_instr<mBMs>;
2041-
def VLDA_3D_UPS_S64_D32_split : VLD_UPS_3D_split_instr<mBMs>;
2042-
def VLDA_3D_UPS_S32_D8_split : VLD_UPS_3D_split_instr<mCMs>;
2043-
def VLDA_3D_UPS_S64_D16_split : VLD_UPS_3D_split_instr<mCMs>;
20441970
}
20451971
let Uses = [crSat] in {
20461972
let DecoderMethod = "DecodeVLDA_3D_UPS_BMInstruction" in
@@ -2067,10 +1993,6 @@ let mayLoad = true in {
20671993
(ins mSs:$shft, eP:$ptr, eDS:$mod),
20681994
"vlda.3d.ups.s64.s16", "$dst, $shft, [$ptr], $mod">,
20691995
AIE2_ag_nospill__ag_pstm_3d, mv_ups_base<1, 1>;
2070-
def VLDA_3D_UPS_S32_S16_split : VLD_UPS_3D_split_instr<mBMs>;
2071-
def VLDA_3D_UPS_S64_S32_split : VLD_UPS_3D_split_instr<mBMs>;
2072-
def VLDA_3D_UPS_S32_S8_split : VLD_UPS_3D_split_instr<mCMs>;
2073-
def VLDA_3D_UPS_S64_S16_split : VLD_UPS_3D_split_instr<mCMs>;
20741996
}
20751997
}
20761998
} // let mayLoad = true
@@ -2204,10 +2126,6 @@ let mayStore = true in {
22042126
}
22052127
}
22062128

2207-
class VST_SRS_2D_split_instr<RegisterClass regclass> : SplitPseudo<
2208-
(outs eP:$ptr_out, eDC:$count_out),
2209-
(ins eP:$ptr, eM:$mod, eDN:$dim_size, eDJ:$dim_stride, eDC:$dim_count,
2210-
regclass:$dst, mSs:$shft)> {}
22112129
let Itinerary = II_VST_2D_SRS in
22122130
let Constraints = "$ptr_out = $ptr" in
22132131
let Defs = [srSRS_of] in {
@@ -2219,8 +2137,6 @@ let mayStore = true in {
22192137
def VST_2D_SRS_D16_S64 : AIE2_dmw_sts_srs_inst_st< (outs eP:$ptr_out, eDC:$count_out),
22202138
(ins eP:$ptr, eD:$mod, mCMs:$src, mSs:$shft), "vst.2d.srs.d16.s64", "$src, $shft, [$ptr], $mod">,
22212139
AIE2_ag_nospill__ag_pstm_2d, mWdssrs<1, 0>;
2222-
def VST_2D_SRS_D8_S32_split : VST_SRS_2D_split_instr<mCMs>;
2223-
def VST_2D_SRS_D16_S64_split : VST_SRS_2D_split_instr<mCMs>;
22242140
}
22252141
let DecoderMethod = "DecodeVST_2D_SRS_BMInstruction" in
22262142
let Uses = [crSat, crRnd, crSRSSign] in {
@@ -2230,8 +2146,6 @@ let mayStore = true in {
22302146
def VST_2D_SRS_D32_S64 : AIE2_dmw_sts_srs_inst_st< (outs eP:$ptr_out, eDC:$count_out),
22312147
(ins eP:$ptr, eD:$mod, mBMs:$src, mSs:$shft), "vst.2d.srs.d32.s64", "$src, $shft, [$ptr], $mod">,
22322148
AIE2_ag_nospill__ag_pstm_2d, mWlsrsl<1, 0>;
2233-
def VST_2D_SRS_D16_S32_split : VST_SRS_2D_split_instr<mBMs>;
2234-
def VST_2D_SRS_D32_S64_split : VST_SRS_2D_split_instr<mBMs>;
22352149
}
22362150
let DecoderMethod = "DecodeVST_2D_SRS_CMInstruction" in
22372151
let Uses = [crSat, crRnd] in {
@@ -2241,8 +2155,6 @@ let mayStore = true in {
22412155
def VST_2D_SRS_S16_S64 : AIE2_dmw_sts_srs_inst_st< (outs eP:$ptr_out, eDC:$count_out),
22422156
(ins eP:$ptr, eD:$mod, mCMs:$src, mSs:$shft), "vst.2d.srs.s16.s64", "$src, $shft, [$ptr], $mod">,
22432157
AIE2_ag_nospill__ag_pstm_2d, mWdssrs<1, 1>;
2244-
def VST_2D_SRS_S8_S32_split : VST_SRS_2D_split_instr<mCMs>;
2245-
def VST_2D_SRS_S16_S64_split : VST_SRS_2D_split_instr<mCMs>;
22462158
}
22472159
let DecoderMethod = "DecodeVST_2D_SRS_BMInstruction" in
22482160
let Uses = [crSat, crRnd] in {
@@ -2252,16 +2164,9 @@ let mayStore = true in {
22522164
def VST_2D_SRS_S32_S64 : AIE2_dmw_sts_srs_inst_st< (outs eP:$ptr_out, eDC:$count_out),
22532165
(ins eP:$ptr, eD:$mod, mBMs:$src, mSs:$shft), "vst.2d.srs.s32.s64", "$src, $shft, [$ptr], $mod">,
22542166
AIE2_ag_nospill__ag_pstm_2d, mWlsrsl<1, 1>;
2255-
def VST_2D_SRS_S16_S32_split : VST_SRS_2D_split_instr<mBMs>;
2256-
def VST_2D_SRS_S32_S64_split : VST_SRS_2D_split_instr<mBMs>;
22572167
}
22582168
}
22592169

2260-
class VST_SRS_3D_split_instr<RegisterClass regclass> : SplitPseudo<
2261-
(outs eP:$ptr_out, eDC:$count_lo_out, eDC:$count_hi_out),
2262-
(ins eP:$ptr, eM:$mod1, eDN:$dim_size1, eDJ:$dim_stride1, eDC:$dim_count1,
2263-
eM:$mod2, eDN:$dim_size2, eDJ:$dim_stride2, eDC:$dim_count2,
2264-
regclass:$src, mSs:$shft)> {}
22652170
let Itinerary = II_VST_3D_SRS in
22662171
let Constraints = "$ptr_out = $ptr" in
22672172
let Defs = [srSRS_of] in {
@@ -2277,8 +2182,6 @@ let mayStore = true in {
22772182
(ins eP:$ptr, eDS:$mod, mCMs:$src, mSs:$shft),
22782183
"vst.3d.srs.d16.s64", "$src, $shft, [$ptr], $mod">,
22792184
AIE2_ag_nospill__ag_pstm_3d, mWdssrs<1, 0>;
2280-
def VST_3D_SRS_D8_S32_split : VST_SRS_3D_split_instr<mCMs>;
2281-
def VST_3D_SRS_D16_S64_split : VST_SRS_3D_split_instr<mCMs>;
22822185
}
22832186
let DecoderMethod = "DecodeVST_3D_SRS_BMInstruction" in
22842187
let Uses = [crSat, crRnd, crSRSSign] in {
@@ -2292,8 +2195,6 @@ let mayStore = true in {
22922195
(ins eP:$ptr, eDS:$mod, mBMs:$src, mSs:$shft),
22932196
"vst.3d.srs.d32.s64", "$src, $shft, [$ptr], $mod">,
22942197
AIE2_ag_nospill__ag_pstm_3d, mWlsrsl<1, 0>;
2295-
def VST_3D_SRS_D16_S32_split : VST_SRS_3D_split_instr<mBMs>;
2296-
def VST_3D_SRS_D32_S64_split : VST_SRS_3D_split_instr<mBMs>;
22972198
}
22982199
let DecoderMethod = "DecodeVST_3D_SRS_CMInstruction" in
22992200
let Uses = [crSat, crRnd] in {
@@ -2307,8 +2208,6 @@ let mayStore = true in {
23072208
(ins eP:$ptr, eDS:$mod, mCMs:$src, mSs:$shft),
23082209
"vst.3d.srs.s16.s64", "$src, $shft, [$ptr], $mod">,
23092210
AIE2_ag_nospill__ag_pstm_3d, mWdssrs<1, 1>;
2310-
def VST_3D_SRS_S8_S32_split : VST_SRS_3D_split_instr<mCMs>;
2311-
def VST_3D_SRS_S16_S64_split : VST_SRS_3D_split_instr<mCMs>;
23122211
}
23132212
let DecoderMethod = "DecodeVST_3D_SRS_BMInstruction" in
23142213
let Uses = [crSat, crRnd] in {
@@ -2322,8 +2221,6 @@ let mayStore = true in {
23222221
(ins eP:$ptr, eDS:$mod, mBMs:$src, mSs:$shft),
23232222
"vst.3d.srs.s32.s64", "$src, $shft, [$ptr], $mod">,
23242223
AIE2_ag_nospill__ag_pstm_3d, mWlsrsl<1, 1>;
2325-
def VST_3D_SRS_S16_S32_split : VST_SRS_3D_split_instr<mBMs>;
2326-
def VST_3D_SRS_S32_S64_split : VST_SRS_3D_split_instr<mBMs>;
23272224
}
23282225
}
23292226
} // let mayStore = true
@@ -2425,8 +2322,6 @@ let mayStore = true in {
24252322
def VST_CONV_2D_BF16_FP32 : AIE2_dmw_sts_srs_bf_inst_st< (outs eP:$ptr_out, eDC:$count_out),
24262323
(ins eP:$ptr, eD:$mod, mBMs:$src), "vst.2d.conv.bf16.fp32", "$src, [$ptr], $mod">,
24272324
AIE2_ag_nospill__ag_pstm_2d;
2428-
def VST_CONV_2D_BF16_FP32_split : SplitPseudo<(outs eP:$ptr_out, eDC:$count_out),
2429-
(ins eP:$ptr, eM:$mod, eDN:$dim_size, eDJ:$dim_stride, eDC:$dim_count, mBMs:$src)> {}
24302325
}
24312326

24322327
let Itinerary = II_VST_3D_CONV in
@@ -2435,9 +2330,6 @@ let mayStore = true in {
24352330
def VST_CONV_3D_BF16_FP32 : AIE2_dmw_sts_srs_bf_inst_st< (outs eP:$ptr_out, eDC:$count_lo_out, eDC:$count_hi_out),
24362331
(ins eP:$ptr, eDS:$mod, mBMs:$src), "vst.3d.conv.bf16.fp32", "$src, [$ptr], $mod">,
24372332
AIE2_ag_nospill__ag_pstm_3d;
2438-
def VST_CONV_3D_BF16_FP32_split : SplitPseudo<(outs eP:$ptr_out, eDC:$count_lo_out, eDC:$count_hi_out),
2439-
(ins eP:$ptr, eM:$mod1, eDN:$dim_size1, eDJ:$dim_stride1, eDC:$dim_count1,
2440-
eM:$mod2, eDN:$dim_size2, eDJ:$dim_stride2, eDC:$dim_count2, mBMs:$src)> {}
24412333
}
24422334
} // let Uses = [crRnd, crF2FMask]
24432335
} // let Defs = [srF2FFlags]
@@ -2514,25 +2406,17 @@ let mayStore = true in {
25142406
(ins eP:$ptr, eD:$mod, mXs:$src),
25152407
opcodestr, "$src, [$ptr], $mod">,
25162408
AIE2_ag_nospill__ag_pstm_2d, mv_pack_src<sgn, sz>;
2517-
class VST_2D_PACK_split_instr : SplitPseudo<
2518-
(outs eP:$ptr_out, eDC:$count_out),
2519-
(ins eP:$ptr, eM:$mod, eDN:$dim_size,
2520-
eDJ:$dim_stride, eDC:$dim_count, mXs:$src)> {}
25212409
let Uses = [crSat, crPackSign] in {
25222410
def VST_2D_PACK_D4_D8 :
25232411
VST_2D_PACK_ag_pstm_mv_pack_src</*sgn*/0, /*sz*/0, "vst.2d.pack.d4.d8">;
25242412
def VST_2D_PACK_D8_D16 :
25252413
VST_2D_PACK_ag_pstm_mv_pack_src</*sgn*/0, /*sz*/1, "vst.2d.pack.d8.d16">;
2526-
def VST_2D_PACK_D4_D8_split : VST_2D_PACK_split_instr<>;
2527-
def VST_2D_PACK_D8_D16_split : VST_2D_PACK_split_instr<>;
25282414
}
25292415
let Uses = [crSat] in {
25302416
def VST_2D_PACK_S4_S8 :
25312417
VST_2D_PACK_ag_pstm_mv_pack_src</*sgn*/1, /*sz*/0, "vst.2d.pack.s4.s8">;
25322418
def VST_2D_PACK_S8_S16 :
25332419
VST_2D_PACK_ag_pstm_mv_pack_src</*sgn*/1, /*sz*/1, "vst.2d.pack.s8.s16">;
2534-
def VST_2D_PACK_S4_S8_split : VST_2D_PACK_split_instr<>;
2535-
def VST_2D_PACK_S8_S16_split : VST_2D_PACK_split_instr<>;
25362420
}
25372421
}
25382422
let Itinerary = II_VST_3D_PACK, Constraints = "$ptr_out = $ptr" in
@@ -2543,25 +2427,17 @@ let mayStore = true in {
25432427
(ins eP:$ptr, eDS:$mod, mXs:$src),
25442428
opcodestr, "$src, [$ptr], $mod">,
25452429
AIE2_ag_nospill__ag_pstm_3d, mv_pack_src<sgn, sz>;
2546-
class VST_3D_PACK_split_instr : SplitPseudo<
2547-
(outs eP:$ptr_out, eDC:$count_lo_out, eDC:$count_hi_out),
2548-
(ins eP:$ptr, eM:$mod1, eDN:$dim_size1, eDJ:$dim_stride1, eDC:$dim_count1,
2549-
eM:$mod2, eDN:$dim_size2, eDJ:$dim_stride2, eDC:$dim_count2, mXs:$src)> {}
25502430
let Uses = [crSat, crPackSign] in {
25512431
def VST_3D_PACK_D4_D8 :
25522432
VST_3D_PACK_ag_pstm_mv_pack_src</*sgn*/0, /*sz*/0, "vst.3d.pack.d4.d8">;
25532433
def VST_3D_PACK_D8_D16 :
25542434
VST_3D_PACK_ag_pstm_mv_pack_src</*sgn*/0, /*sz*/1, "vst.3d.pack.d8.d16">;
2555-
def VST_3D_PACK_D4_D8_split : VST_3D_PACK_split_instr<>;
2556-
def VST_3D_PACK_D8_D16_split : VST_3D_PACK_split_instr<>;
25572435
}
25582436
let Uses = [crSat] in {
25592437
def VST_3D_PACK_S4_S8 :
25602438
VST_3D_PACK_ag_pstm_mv_pack_src</*sgn*/1, /*sz*/0, "vst.3d.pack.s4.s8">;
25612439
def VST_3D_PACK_S8_S16 :
25622440
VST_3D_PACK_ag_pstm_mv_pack_src</*sgn*/1, /*sz*/1, "vst.3d.pack.s8.s16">;
2563-
def VST_3D_PACK_S4_S8_split : VST_3D_PACK_split_instr<>;
2564-
def VST_3D_PACK_S8_S16_split : VST_3D_PACK_split_instr<>;
25652441
}
25662442
}
25672443
} // let mayStore = true

0 commit comments

Comments
 (0)