41 Inst_MUBUF__BUFFER_LOAD_FORMAT_X
42 ::Inst_MUBUF__BUFFER_LOAD_FORMAT_X(
InFmt_MUBUF *iFmt)
73 Inst_MUBUF__BUFFER_LOAD_FORMAT_XY
74 ::Inst_MUBUF__BUFFER_LOAD_FORMAT_XY(
InFmt_MUBUF *iFmt)
105 Inst_MUBUF__BUFFER_LOAD_FORMAT_XYZ
106 ::Inst_MUBUF__BUFFER_LOAD_FORMAT_XYZ(
InFmt_MUBUF *iFmt)
137 Inst_MUBUF__BUFFER_LOAD_FORMAT_XYZW
138 ::Inst_MUBUF__BUFFER_LOAD_FORMAT_XYZW(
InFmt_MUBUF *iFmt)
169 Inst_MUBUF__BUFFER_STORE_FORMAT_X
170 ::Inst_MUBUF__BUFFER_STORE_FORMAT_X(
InFmt_MUBUF *iFmt)
201 Inst_MUBUF__BUFFER_STORE_FORMAT_XY
202 ::Inst_MUBUF__BUFFER_STORE_FORMAT_XY(
InFmt_MUBUF *iFmt)
233 Inst_MUBUF__BUFFER_STORE_FORMAT_XYZ
234 ::Inst_MUBUF__BUFFER_STORE_FORMAT_XYZ(
InFmt_MUBUF *iFmt)
265 Inst_MUBUF__BUFFER_STORE_FORMAT_XYZW
266 ::Inst_MUBUF__BUFFER_STORE_FORMAT_XYZW(
InFmt_MUBUF *iFmt)
267 :
Inst_MUBUF(iFmt,
"buffer_store_format_xyzw")
274 Inst_MUBUF__BUFFER_STORE_FORMAT_XYZW
275 ::~Inst_MUBUF__BUFFER_STORE_FORMAT_XYZW()
298 Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_X
299 ::Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_X(
InFmt_MUBUF *iFmt)
300 :
Inst_MUBUF(iFmt,
"buffer_load_format_d16_x")
307 Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_X
308 ::~Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_X()
331 Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XY
332 ::Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XY(
InFmt_MUBUF *iFmt)
333 :
Inst_MUBUF(iFmt,
"buffer_load_format_d16_xy")
340 Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XY
341 ::~Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XY()
366 Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZ
367 ::Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZ(
InFmt_MUBUF *iFmt)
368 :
Inst_MUBUF(iFmt,
"buffer_load_format_d16_xyz")
375 Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZ
376 ::~Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZ()
401 Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZW
402 ::Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZW(
InFmt_MUBUF *iFmt)
403 :
Inst_MUBUF(iFmt,
"buffer_load_format_d16_xyzw")
410 Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZW
411 ::~Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZW()
436 Inst_MUBUF__BUFFER_STORE_FORMAT_D16_X
437 ::Inst_MUBUF__BUFFER_STORE_FORMAT_D16_X(
InFmt_MUBUF *iFmt)
438 :
Inst_MUBUF(iFmt,
"buffer_store_format_d16_x")
443 Inst_MUBUF__BUFFER_STORE_FORMAT_D16_X
444 ::~Inst_MUBUF__BUFFER_STORE_FORMAT_D16_X()
469 Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XY
470 ::Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XY(
InFmt_MUBUF *iFmt)
471 :
Inst_MUBUF(iFmt,
"buffer_store_format_d16_xy")
478 Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XY
479 ::~Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XY()
504 Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XYZ
505 ::Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XYZ(
InFmt_MUBUF *iFmt)
506 :
Inst_MUBUF(iFmt,
"buffer_store_format_d16_xyz")
513 Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XYZ
514 ::~Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XYZ()
539 Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XYZW
540 ::Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XYZW(
InFmt_MUBUF *iFmt)
541 :
Inst_MUBUF(iFmt,
"buffer_store_format_d16_xyzw")
548 Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XYZW
549 ::~Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XYZW()
574 Inst_MUBUF__BUFFER_LOAD_UBYTE
598 if (gpuDynInst->exec_mask.none()) {
605 gpuDynInst->latency.init(gpuDynInst->computeUnit());
606 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
621 addr0, addr1, rsrcDesc,
offset, inst_offset);
626 addr0, addr1, rsrcDesc,
offset, inst_offset);
631 addr1, addr0, rsrcDesc,
offset, inst_offset);
637 addr1, addr0, rsrcDesc,
offset, inst_offset);
640 gpuDynInst->computeUnit()->globalMemoryPipe.issueRequest(gpuDynInst);
655 if (gpuDynInst->exec_mask[lane]) {
658 gpuDynInst->d_data))[lane]);
670 Inst_MUBUF__BUFFER_LOAD_SBYTE
702 Inst_MUBUF__BUFFER_LOAD_USHORT
703 ::Inst_MUBUF__BUFFER_LOAD_USHORT(
InFmt_MUBUF *iFmt)
726 if (gpuDynInst->exec_mask.none()) {
733 gpuDynInst->latency.init(gpuDynInst->computeUnit());
734 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
749 addr0, addr1, rsrcDesc,
offset, inst_offset);
754 addr0, addr1, rsrcDesc,
offset, inst_offset);
759 addr1, addr0, rsrcDesc,
offset, inst_offset);
765 addr1, addr0, rsrcDesc,
offset, inst_offset);
768 gpuDynInst->computeUnit()->globalMemoryPipe.issueRequest(gpuDynInst);
783 if (gpuDynInst->exec_mask[lane]) {
786 gpuDynInst->d_data))[lane]);
798 Inst_MUBUF__BUFFER_LOAD_SSHORT
799 ::Inst_MUBUF__BUFFER_LOAD_SSHORT(
InFmt_MUBUF *iFmt)
830 Inst_MUBUF__BUFFER_LOAD_SHORT_D16
831 ::Inst_MUBUF__BUFFER_LOAD_SHORT_D16(
InFmt_MUBUF *iFmt)
838 warn(
"BUFFER.LDS not implemented!");
856 if (gpuDynInst->exec_mask.none()) {
863 gpuDynInst->latency.init(gpuDynInst->computeUnit());
864 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
883 addr0, addr1, rsrcDesc,
offset, inst_offset);
888 addr0, addr1, rsrcDesc,
offset, inst_offset);
893 addr1, addr0, rsrcDesc,
offset, inst_offset);
899 addr1, addr0, rsrcDesc,
offset, inst_offset);
902 gpuDynInst->computeUnit()->globalMemoryPipe.issueRequest(gpuDynInst);
917 if (gpuDynInst->exec_mask[lane]) {
920 gpuDynInst->d_data))[lane];
932 Inst_MUBUF__BUFFER_LOAD_SHORT_D16_HI
933 ::Inst_MUBUF__BUFFER_LOAD_SHORT_D16_HI(
InFmt_MUBUF *iFmt)
934 :
Inst_MUBUF(iFmt,
"buffer_load_short_d16_hi")
940 warn(
"BUFFER.LDS not implemented!");
959 if (gpuDynInst->exec_mask.none()) {
966 gpuDynInst->latency.init(gpuDynInst->computeUnit());
967 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
986 addr0, addr1, rsrcDesc,
offset, inst_offset);
991 addr0, addr1, rsrcDesc,
offset, inst_offset);
996 addr1, addr0, rsrcDesc,
offset, inst_offset);
1002 addr1, addr0, rsrcDesc,
offset, inst_offset);
1005 gpuDynInst->computeUnit()->globalMemoryPipe.issueRequest(gpuDynInst);
1020 if (gpuDynInst->exec_mask[lane]) {
1023 gpuDynInst->d_data))[lane];
1035 Inst_MUBUF__BUFFER_LOAD_DWORD
1036 ::Inst_MUBUF__BUFFER_LOAD_DWORD(
InFmt_MUBUF *iFmt)
1057 Wavefront *wf = gpuDynInst->wavefront();
1059 if (gpuDynInst->exec_mask.none()) {
1066 gpuDynInst->latency.init(gpuDynInst->computeUnit());
1067 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
1086 addr0, addr1, rsrcDesc,
offset, inst_offset);
1091 addr0, addr1, rsrcDesc,
offset, inst_offset);
1096 addr1, addr0, rsrcDesc,
offset, inst_offset);
1102 addr1, addr0, rsrcDesc,
offset, inst_offset);
1105 gpuDynInst->computeUnit()->globalMemoryPipe.issueRequest(gpuDynInst);
1120 if (gpuDynInst->exec_mask[lane]) {
1123 gpuDynInst->d_data))[lane];
1134 Inst_MUBUF__BUFFER_LOAD_DWORDX2
1135 ::Inst_MUBUF__BUFFER_LOAD_DWORDX2(
InFmt_MUBUF *iFmt)
1156 Wavefront *wf = gpuDynInst->wavefront();
1158 if (gpuDynInst->exec_mask.none()) {
1165 gpuDynInst->latency.init(gpuDynInst->computeUnit());
1166 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
1181 addr0, addr1, rsrcDesc,
offset, inst_offset);
1186 addr0, addr1, rsrcDesc,
offset, inst_offset);
1191 addr1, addr0, rsrcDesc,
offset, inst_offset);
1197 addr1, addr0, rsrcDesc,
offset, inst_offset);
1200 gpuDynInst->computeUnit()->globalMemoryPipe.issueRequest(gpuDynInst);
1216 if (gpuDynInst->exec_mask[lane]) {
1218 vdst0[lane] = (
reinterpret_cast<VecElemU32*
>(
1219 gpuDynInst->d_data))[lane * 2];
1220 vdst1[lane] = (
reinterpret_cast<VecElemU32*
>(
1221 gpuDynInst->d_data))[lane * 2 + 1];
1234 Inst_MUBUF__BUFFER_LOAD_DWORDX3
1235 ::Inst_MUBUF__BUFFER_LOAD_DWORDX3(
InFmt_MUBUF *iFmt)
1256 Wavefront *wf = gpuDynInst->wavefront();
1258 if (gpuDynInst->exec_mask.none()) {
1265 gpuDynInst->latency.init(gpuDynInst->computeUnit());
1266 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
1281 addr0, addr1, rsrcDesc,
offset, inst_offset);
1286 addr0, addr1, rsrcDesc,
offset, inst_offset);
1291 addr1, addr0, rsrcDesc,
offset, inst_offset);
1297 addr1, addr0, rsrcDesc,
offset, inst_offset);
1300 gpuDynInst->computeUnit()->globalMemoryPipe.issueRequest(gpuDynInst);
1317 if (gpuDynInst->exec_mask[lane]) {
1319 vdst0[lane] = (
reinterpret_cast<VecElemU32*
>(
1320 gpuDynInst->d_data))[lane * 3];
1321 vdst1[lane] = (
reinterpret_cast<VecElemU32*
>(
1322 gpuDynInst->d_data))[lane * 3 + 1];
1323 vdst2[lane] = (
reinterpret_cast<VecElemU32*
>(
1324 gpuDynInst->d_data))[lane * 3 + 2];
1339 Inst_MUBUF__BUFFER_LOAD_DWORDX4
1340 ::Inst_MUBUF__BUFFER_LOAD_DWORDX4(
InFmt_MUBUF *iFmt)
1361 Wavefront *wf = gpuDynInst->wavefront();
1363 if (gpuDynInst->exec_mask.none()) {
1370 gpuDynInst->latency.init(gpuDynInst->computeUnit());
1371 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
1386 addr0, addr1, rsrcDesc,
offset, inst_offset);
1391 addr0, addr1, rsrcDesc,
offset, inst_offset);
1396 addr1, addr0, rsrcDesc,
offset, inst_offset);
1402 addr1, addr0, rsrcDesc,
offset, inst_offset);
1405 gpuDynInst->computeUnit()->globalMemoryPipe.issueRequest(gpuDynInst);
1423 if (gpuDynInst->exec_mask[lane]) {
1425 vdst0[lane] = (
reinterpret_cast<VecElemU32*
>(
1426 gpuDynInst->d_data))[lane * 4];
1427 vdst1[lane] = (
reinterpret_cast<VecElemU32*
>(
1428 gpuDynInst->d_data))[lane * 4 + 1];
1429 vdst2[lane] = (
reinterpret_cast<VecElemU32*
>(
1430 gpuDynInst->d_data))[lane * 4 + 2];
1431 vdst3[lane] = (
reinterpret_cast<VecElemU32*
>(
1432 gpuDynInst->d_data))[lane * 4 + 3];
1449 Inst_MUBUF__BUFFER_STORE_BYTE
1450 ::Inst_MUBUF__BUFFER_STORE_BYTE(
InFmt_MUBUF *iFmt)
1471 Wavefront *wf = gpuDynInst->wavefront();
1473 if (gpuDynInst->exec_mask.none()) {
1482 gpuDynInst->latency.init(gpuDynInst->computeUnit());
1483 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
1500 addr0, addr1, rsrcDesc,
offset, inst_offset);
1505 addr0, addr1, rsrcDesc,
offset, inst_offset);
1510 addr1, addr0, rsrcDesc,
offset, inst_offset);
1516 addr1, addr0, rsrcDesc,
offset, inst_offset);
1519 gpuDynInst->computeUnit()->globalMemoryPipe.issueRequest(gpuDynInst);
1522 if (gpuDynInst->exec_mask[lane]) {
1523 (
reinterpret_cast<VecElemI8*
>(gpuDynInst->d_data))[lane]
1541 Inst_MUBUF__BUFFER_STORE_SHORT
1542 ::Inst_MUBUF__BUFFER_STORE_SHORT(
InFmt_MUBUF *iFmt)
1563 Wavefront *wf = gpuDynInst->wavefront();
1565 if (gpuDynInst->exec_mask.none()) {
1574 gpuDynInst->latency.init(gpuDynInst->computeUnit());
1575 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
1592 addr0, addr1, rsrcDesc,
offset, inst_offset);
1597 addr0, addr1, rsrcDesc,
offset, inst_offset);
1602 addr1, addr0, rsrcDesc,
offset, inst_offset);
1608 addr1, addr0, rsrcDesc,
offset, inst_offset);
1611 gpuDynInst->computeUnit()->globalMemoryPipe.issueRequest(gpuDynInst);
1614 if (gpuDynInst->exec_mask[lane]) {
1615 (
reinterpret_cast<VecElemI16*
>(gpuDynInst->d_data))[lane]
1655 Wavefront *wf = gpuDynInst->wavefront();
1657 if (gpuDynInst->exec_mask.none()) {
1666 gpuDynInst->latency.init(gpuDynInst->computeUnit());
1667 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
1684 addr0, addr1, rsrcDesc,
offset, inst_offset);
1689 addr0, addr1, rsrcDesc,
offset, inst_offset);
1694 addr1, addr0, rsrcDesc,
offset, inst_offset);
1700 addr1, addr0, rsrcDesc,
offset, inst_offset);
1703 gpuDynInst->computeUnit()->globalMemoryPipe.issueRequest(gpuDynInst);
1706 if (gpuDynInst->exec_mask[lane]) {
1707 (
reinterpret_cast<VecElemU32*
>(gpuDynInst->d_data))[lane]
1725 Inst_MUBUF__BUFFER_STORE_DWORDX2
1726 ::Inst_MUBUF__BUFFER_STORE_DWORDX2(
InFmt_MUBUF *iFmt)
1747 Wavefront *wf = gpuDynInst->wavefront();
1749 if (gpuDynInst->exec_mask.none()) {
1758 gpuDynInst->latency.init(gpuDynInst->computeUnit());
1759 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
1778 addr0, addr1, rsrcDesc,
offset, inst_offset);
1783 addr0, addr1, rsrcDesc,
offset, inst_offset);
1788 addr1, addr0, rsrcDesc,
offset, inst_offset);
1794 addr1, addr0, rsrcDesc,
offset, inst_offset);
1797 gpuDynInst->computeUnit()->globalMemoryPipe.issueRequest(gpuDynInst);
1800 if (gpuDynInst->exec_mask[lane]) {
1801 (
reinterpret_cast<VecElemU32*
>(gpuDynInst->d_data))[lane * 2]
1803 (
reinterpret_cast<VecElemU32*
>(gpuDynInst->d_data))[lane*2 + 1]
1821 Inst_MUBUF__BUFFER_STORE_DWORDX3
1822 ::Inst_MUBUF__BUFFER_STORE_DWORDX3(
InFmt_MUBUF *iFmt)
1843 Wavefront *wf = gpuDynInst->wavefront();
1845 if (gpuDynInst->exec_mask.none()) {
1854 gpuDynInst->latency.init(gpuDynInst->computeUnit());
1855 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
1876 addr0, addr1, rsrcDesc,
offset, inst_offset);
1881 addr0, addr1, rsrcDesc,
offset, inst_offset);
1886 addr1, addr0, rsrcDesc,
offset, inst_offset);
1892 addr1, addr0, rsrcDesc,
offset, inst_offset);
1895 gpuDynInst->computeUnit()->globalMemoryPipe.issueRequest(gpuDynInst);
1898 if (gpuDynInst->exec_mask[lane]) {
1899 (
reinterpret_cast<VecElemU32*
>(gpuDynInst->d_data))[lane * 3]
1901 (
reinterpret_cast<VecElemU32*
>(gpuDynInst->d_data))[lane*3 + 1]
1903 (
reinterpret_cast<VecElemU32*
>(gpuDynInst->d_data))[lane*3 + 2]
1921 Inst_MUBUF__BUFFER_STORE_DWORDX4
1922 ::Inst_MUBUF__BUFFER_STORE_DWORDX4(
InFmt_MUBUF *iFmt)
1943 Wavefront *wf = gpuDynInst->wavefront();
1945 if (gpuDynInst->exec_mask.none()) {
1954 gpuDynInst->latency.init(gpuDynInst->computeUnit());
1955 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
1978 addr0, addr1, rsrcDesc,
offset, inst_offset);
1983 addr0, addr1, rsrcDesc,
offset, inst_offset);
1988 addr1, addr0, rsrcDesc,
offset, inst_offset);
1994 addr1, addr0, rsrcDesc,
offset, inst_offset);
1997 gpuDynInst->computeUnit()->globalMemoryPipe.issueRequest(gpuDynInst);
2000 if (gpuDynInst->exec_mask[lane]) {
2001 (
reinterpret_cast<VecElemU32*
>(gpuDynInst->d_data))[lane * 4]
2003 (
reinterpret_cast<VecElemU32*
>(gpuDynInst->d_data))[lane*4 + 1]
2005 (
reinterpret_cast<VecElemU32*
>(gpuDynInst->d_data))[lane*4 + 2]
2007 (
reinterpret_cast<VecElemU32*
>(gpuDynInst->d_data))[lane*4 + 3]
2025 Inst_MUBUF__BUFFER_STORE_LDS_DWORD
2026 ::Inst_MUBUF__BUFFER_STORE_LDS_DWORD(
InFmt_MUBUF *iFmt)
2051 setFlag(GPUStaticInst::MemSync);
2066 Wavefront *wf = gpuDynInst->wavefront();
2068 if (gpuDynInst->exec_mask.none()) {
2075 gpuDynInst->latency.init(gpuDynInst->computeUnit());
2076 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
2078 if (gpuDynInst->executedAs() == enums::SC_GLOBAL) {
2079 gpuDynInst->computeUnit()->globalMemoryPipe.
2080 issueRequest(gpuDynInst);
2082 fatal(
"Unsupported scope for flat instruction.\n");
2101 Inst_MUBUF__BUFFER_WBINVL1_VOL
2102 ::Inst_MUBUF__BUFFER_WBINVL1_VOL(
InFmt_MUBUF*iFmt)
2110 setFlag(GPUStaticInst::MemSync);
2126 Wavefront *wf = gpuDynInst->wavefront();
2128 if (gpuDynInst->exec_mask.none()) {
2135 gpuDynInst->latency.init(gpuDynInst->computeUnit());
2136 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
2138 if (gpuDynInst->executedAs() == enums::SC_GLOBAL) {
2139 gpuDynInst->computeUnit()->globalMemoryPipe.
2140 issueRequest(gpuDynInst);
2142 fatal(
"Unsupported scope for flat instruction.\n");
2156 Inst_MUBUF__BUFFER_ATOMIC_SWAP
2157 ::Inst_MUBUF__BUFFER_ATOMIC_SWAP(
InFmt_MUBUF *iFmt)
2186 Inst_MUBUF__BUFFER_ATOMIC_CMPSWAP
2187 ::Inst_MUBUF__BUFFER_ATOMIC_CMPSWAP(
InFmt_MUBUF *iFmt)
2214 Wavefront *wf = gpuDynInst->wavefront();
2216 if (gpuDynInst->exec_mask.none()) {
2223 gpuDynInst->latency.init(gpuDynInst->computeUnit());
2224 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
2243 addr0, addr1, rsrcDesc,
offset, inst_offset);
2248 addr0, addr1, rsrcDesc,
offset, inst_offset);
2253 addr1, addr0, rsrcDesc,
offset, inst_offset);
2259 addr1, addr0, rsrcDesc,
offset, inst_offset);
2263 if (gpuDynInst->exec_mask[lane]) {
2264 (
reinterpret_cast<VecElemU32*
>(gpuDynInst->x_data))[lane]
2266 (
reinterpret_cast<VecElemU32*
>(gpuDynInst->a_data))[lane]
2271 gpuDynInst->computeUnit()->globalMemoryPipe.issueRequest(gpuDynInst);
2287 if (gpuDynInst->exec_mask[lane]) {
2289 gpuDynInst->d_data))[lane];
2298 Inst_MUBUF__BUFFER_ATOMIC_ADD
2299 ::Inst_MUBUF__BUFFER_ATOMIC_ADD(
InFmt_MUBUF *iFmt)
2328 Inst_MUBUF__BUFFER_ATOMIC_SUB
2329 ::Inst_MUBUF__BUFFER_ATOMIC_SUB(
InFmt_MUBUF *iFmt)
2358 Inst_MUBUF__BUFFER_ATOMIC_SMIN
2359 ::Inst_MUBUF__BUFFER_ATOMIC_SMIN(
InFmt_MUBUF *iFmt)
2388 Inst_MUBUF__BUFFER_ATOMIC_UMIN
2389 ::Inst_MUBUF__BUFFER_ATOMIC_UMIN(
InFmt_MUBUF *iFmt)
2418 Inst_MUBUF__BUFFER_ATOMIC_SMAX
2419 ::Inst_MUBUF__BUFFER_ATOMIC_SMAX(
InFmt_MUBUF *iFmt)
2448 Inst_MUBUF__BUFFER_ATOMIC_UMAX
2449 ::Inst_MUBUF__BUFFER_ATOMIC_UMAX(
InFmt_MUBUF *iFmt)
2478 Inst_MUBUF__BUFFER_ATOMIC_AND
2479 ::Inst_MUBUF__BUFFER_ATOMIC_AND(
InFmt_MUBUF *iFmt)
2508 Inst_MUBUF__BUFFER_ATOMIC_OR
2538 Inst_MUBUF__BUFFER_ATOMIC_XOR
2539 ::Inst_MUBUF__BUFFER_ATOMIC_XOR(
InFmt_MUBUF *iFmt)
2568 Inst_MUBUF__BUFFER_ATOMIC_INC
2569 ::Inst_MUBUF__BUFFER_ATOMIC_INC(
InFmt_MUBUF *iFmt)
2598 Inst_MUBUF__BUFFER_ATOMIC_DEC
2599 ::Inst_MUBUF__BUFFER_ATOMIC_DEC(
InFmt_MUBUF *iFmt)
2628 Inst_MUBUF__BUFFER_ATOMIC_SWAP_X2
2629 ::Inst_MUBUF__BUFFER_ATOMIC_SWAP_X2(
InFmt_MUBUF *iFmt)
2658 Inst_MUBUF__BUFFER_ATOMIC_CMPSWAP_X2
2659 ::Inst_MUBUF__BUFFER_ATOMIC_CMPSWAP_X2(
InFmt_MUBUF *iFmt)
2660 :
Inst_MUBUF(iFmt,
"buffer_atomic_cmpswap_x2")
2672 Inst_MUBUF__BUFFER_ATOMIC_CMPSWAP_X2
2673 ::~Inst_MUBUF__BUFFER_ATOMIC_CMPSWAP_X2()
2691 Inst_MUBUF__BUFFER_ATOMIC_ADD_X2
2692 ::Inst_MUBUF__BUFFER_ATOMIC_ADD_X2(
InFmt_MUBUF *iFmt)
2721 Inst_MUBUF__BUFFER_ATOMIC_SUB_X2
2722 ::Inst_MUBUF__BUFFER_ATOMIC_SUB_X2(
InFmt_MUBUF *iFmt)
2751 Inst_MUBUF__BUFFER_ATOMIC_SMIN_X2
2752 ::Inst_MUBUF__BUFFER_ATOMIC_SMIN_X2(
InFmt_MUBUF *iFmt)
2781 Inst_MUBUF__BUFFER_ATOMIC_UMIN_X2
2782 ::Inst_MUBUF__BUFFER_ATOMIC_UMIN_X2(
InFmt_MUBUF *iFmt)
2811 Inst_MUBUF__BUFFER_ATOMIC_SMAX_X2
2812 ::Inst_MUBUF__BUFFER_ATOMIC_SMAX_X2(
InFmt_MUBUF *iFmt)
2841 Inst_MUBUF__BUFFER_ATOMIC_UMAX_X2
2842 ::Inst_MUBUF__BUFFER_ATOMIC_UMAX_X2(
InFmt_MUBUF *iFmt)
2871 Inst_MUBUF__BUFFER_ATOMIC_AND_X2
2872 ::Inst_MUBUF__BUFFER_ATOMIC_AND_X2(
InFmt_MUBUF *iFmt)
2901 Inst_MUBUF__BUFFER_ATOMIC_OR_X2
2902 ::Inst_MUBUF__BUFFER_ATOMIC_OR_X2(
InFmt_MUBUF *iFmt)
2929 Inst_MUBUF__BUFFER_ATOMIC_XOR_X2
2930 ::Inst_MUBUF__BUFFER_ATOMIC_XOR_X2(
InFmt_MUBUF *iFmt)
2959 Inst_MUBUF__BUFFER_ATOMIC_INC_X2
2960 ::Inst_MUBUF__BUFFER_ATOMIC_INC_X2(
InFmt_MUBUF *iFmt)
2989 Inst_MUBUF__BUFFER_ATOMIC_DEC_X2
2990 ::Inst_MUBUF__BUFFER_ATOMIC_DEC_X2(
InFmt_MUBUF *iFmt)
~Inst_MUBUF__BUFFER_ATOMIC_ADD_X2()
void execute(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_ATOMIC_ADD()
~Inst_MUBUF__BUFFER_ATOMIC_AND_X2()
void execute(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_ATOMIC_AND()
void execute(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
void completeAcc(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_ATOMIC_CMPSWAP()
void execute(GPUDynInstPtr) override
void initiateAcc(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_ATOMIC_DEC_X2()
void execute(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_ATOMIC_DEC()
void execute(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_ATOMIC_INC_X2()
void execute(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_ATOMIC_INC()
~Inst_MUBUF__BUFFER_ATOMIC_OR_X2()
void execute(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_ATOMIC_OR()
void execute(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_ATOMIC_SMAX_X2()
~Inst_MUBUF__BUFFER_ATOMIC_SMAX()
void execute(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_ATOMIC_SMIN_X2()
void execute(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_ATOMIC_SMIN()
void execute(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_ATOMIC_SUB_X2()
void execute(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_ATOMIC_SUB()
void execute(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_ATOMIC_SWAP_X2()
~Inst_MUBUF__BUFFER_ATOMIC_SWAP()
void execute(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_ATOMIC_UMAX_X2()
void execute(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_ATOMIC_UMAX()
void execute(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_ATOMIC_UMIN_X2()
void execute(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_ATOMIC_UMIN()
void execute(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_ATOMIC_XOR_X2()
void execute(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_ATOMIC_XOR()
void completeAcc(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_LOAD_DWORDX2()
void initiateAcc(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
void completeAcc(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_LOAD_DWORDX3()
void execute(GPUDynInstPtr) override
void initiateAcc(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_LOAD_DWORDX4()
void initiateAcc(GPUDynInstPtr) override
void completeAcc(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
void initiateAcc(GPUDynInstPtr) override
void completeAcc(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_LOAD_DWORD()
void initiateAcc(GPUDynInstPtr) override
void completeAcc(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_LOAD_SBYTE()
void initiateAcc(GPUDynInstPtr) override
void completeAcc(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_LOAD_SHORT_D16_HI()
void execute(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_LOAD_SHORT_D16()
void execute(GPUDynInstPtr) override
void initiateAcc(GPUDynInstPtr) override
void completeAcc(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_LOAD_SSHORT()
void execute(GPUDynInstPtr) override
void initiateAcc(GPUDynInstPtr) override
void completeAcc(GPUDynInstPtr) override
void completeAcc(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_LOAD_UBYTE()
void execute(GPUDynInstPtr) override
void initiateAcc(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
void completeAcc(GPUDynInstPtr) override
void initiateAcc(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_LOAD_USHORT()
~Inst_MUBUF__BUFFER_STORE_BYTE()
void execute(GPUDynInstPtr) override
void completeAcc(GPUDynInstPtr) override
void initiateAcc(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_STORE_DWORDX2()
void initiateAcc(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
void completeAcc(GPUDynInstPtr) override
void completeAcc(GPUDynInstPtr) override
void initiateAcc(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_STORE_DWORDX3()
void execute(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_STORE_DWORDX4()
void completeAcc(GPUDynInstPtr) override
void initiateAcc(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
void completeAcc(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_STORE_DWORD()
void initiateAcc(GPUDynInstPtr) override
Inst_MUBUF__BUFFER_STORE_DWORD(InFmt_MUBUF *)
~Inst_MUBUF__BUFFER_STORE_LDS_DWORD()
void execute(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_STORE_SHORT()
void completeAcc(GPUDynInstPtr) override
void initiateAcc(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
void execute(GPUDynInstPtr) override
void completeAcc(GPUDynInstPtr) override
void initiateAcc(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_WBINVL1_VOL()
void initiateAcc(GPUDynInstPtr) override
~Inst_MUBUF__BUFFER_WBINVL1()
void execute(GPUDynInstPtr) override
Inst_MUBUF__BUFFER_WBINVL1(InFmt_MUBUF *)
void completeAcc(GPUDynInstPtr) override
void initMemWrite(GPUDynInstPtr gpuDynInst)
void injectGlobalMemFence(GPUDynInstPtr gpuDynInst)
void calcAddr(GPUDynInstPtr gpuDynInst, VOFF v_off, VIDX v_idx, SRSRC s_rsrc_desc, SOFF s_offset, int inst_offset)
MUBUF insructions calculate their addresses as follows:
void initMemRead(GPUDynInstPtr gpuDynInst)
void initAtomicAccess(GPUDynInstPtr gpuDynInst)
Inst_MUBUF(InFmt_MUBUF *, const std::string &opcode)
void read() override
read from and write to the underlying register(s) that this operand is referring to.
void panicUnimplemented() const
void read() override
read from the vrf.
void write() override
write to the vrf.
void untrackExpInst(GPUDynInstPtr gpu_dyn_inst)
void decVMemInstsIssued()
void untrackVMemInst(GPUDynInstPtr gpu_dyn_inst)
constexpr void replaceBits(T &val, unsigned first, unsigned last, B bit_val)
A convenience function to replace bits first to last of val with bit_val in place.
#define fatal(...)
This implements a cprintf based fatal() function.
classes that represnt vector/scalar operands in VEGA ISA.
VecOperand< VecElemU32, false > VecOperandU32
ScalarOperand< ScalarRegU32, true > ConstScalarOperandU32
VecOperand< VecElemU32, true > ConstVecOperandU32
VecOperand< VecElemI8, true, 1 > ConstVecOperandI8
ScalarOperand< ScalarRegU32, true, 4 > ConstScalarOperandU128
const int NumVecElemPerVecReg(64)
VecOperand< VecElemI16, true, 1 > ConstVecOperandI16
Copyright (c) 2024 Arm Limited All rights reserved.
std::shared_ptr< GPUDynInst > GPUDynInstPtr