37 #include "debug/VEGA.hh"
38 #include "debug/GPUSync.hh"
76 >= 0x100000000ULL ? 1 : 0;
663 sdst = src0.
rawData() &~ src1.rawData();
695 sdst = src0.
rawData() &~ src1.rawData();
727 sdst = src0.
rawData() |~ src1.rawData();
759 sdst = src0.
rawData() |~ src1.rawData();
1503 sdst = (tmp_dst >> 32);
1532 sext<std::numeric_limits<VecElemI64>::digits>(src0.
rawData());
1534 sext<std::numeric_limits<VecElemI64>::digits>(src1.
rawData());
1535 sdst = (
VecElemI32)((tmp_src0 * tmp_src1) >> 32);
1616 scc = (src.
rawData() == simm16) ? 1 : 0;
1643 scc = (src.
rawData() != simm16) ? 1 : 0;
1670 scc = (src.
rawData() > simm16) ? 1 : 0;
1697 scc = (src.
rawData() >= simm16) ? 1 : 0;
1724 scc = (src.
rawData() < simm16) ? 1 : 0;
1751 scc = (src.
rawData() <= simm16) ? 1 : 0;
1778 scc = (src.rawData() == simm16) ? 1 : 0;
1805 scc = (src.rawData() != simm16) ? 1 : 0;
1832 scc = (src.rawData() > simm16) ? 1 : 0;
1859 scc = (src.rawData() >= simm16) ? 1 : 0;
1886 scc = (src.rawData() < simm16) ? 1 : 0;
1913 scc = (src.rawData() <= simm16) ? 1 : 0;
2042 gpuDynInst->computeUnit()->shader->getHwReg(hwregId);
2077 gpuDynInst->computeUnit()->shader->getHwReg(hwregId);
2084 gpuDynInst->computeUnit()->shader->setHwReg(hwregId, hwreg);
2088 if (hwregId==1 && size==2
2090 warn_once(
"Be cautious that s_setreg_b32 has no real effect "
2091 "on FP modes: %s\n", gpuDynInst->disassemble());
2125 gpuDynInst->computeUnit()->shader->getHwReg(hwregId);
2131 gpuDynInst->computeUnit()->shader->setHwReg(hwregId, hwreg);
2137 warn_once(
"Be cautious that s_setreg_imm32_b32 has no real effect "
2138 "on FP modes: %s\n", gpuDynInst->disassemble());
2804 sdst = sext<std::numeric_limits<ScalarRegI8>::digits>(
2831 sdst = sext<std::numeric_limits<ScalarRegI16>::digits>(
2958 Addr pc = gpuDynInst->pc();
2983 Wavefront *wf = gpuDynInst->wavefront();
3008 Wavefront *wf = gpuDynInst->wavefront();
3009 Addr pc = gpuDynInst->pc();
3063 Wavefront *wf = gpuDynInst->wavefront();
3072 scc = wf->
execMask().any() ? 1 : 0;
3099 Wavefront *wf = gpuDynInst->wavefront();
3108 scc = wf->
execMask().any() ? 1 : 0;
3135 Wavefront *wf = gpuDynInst->wavefront();
3144 scc = wf->
execMask().any() ? 1 : 0;
3153 :
Inst_SOP1(iFmt,
"s_andn2_saveexec_b64")
3171 Wavefront *wf = gpuDynInst->wavefront();
3180 scc = wf->
execMask().any() ? 1 : 0;
3189 :
Inst_SOP1(iFmt,
"s_orn2_saveexec_b64")
3207 Wavefront *wf = gpuDynInst->wavefront();
3216 scc = wf->
execMask().any() ? 1 : 0;
3225 :
Inst_SOP1(iFmt,
"s_nand_saveexec_b64")
3243 Wavefront *wf = gpuDynInst->wavefront();
3252 scc = wf->
execMask().any() ? 1 : 0;
3279 Wavefront *wf = gpuDynInst->wavefront();
3288 scc = wf->
execMask().any() ? 1 : 0;
3297 :
Inst_SOP1(iFmt,
"s_xnor_saveexec_b64")
3315 Wavefront *wf = gpuDynInst->wavefront();
3324 scc = wf->
execMask().any() ? 1 : 0;
3561 sdst = std::abs(src.
rawData());
4209 Wavefront *wf = gpuDynInst->wavefront();
4239 DPRINTF(GPUSync,
"CU[%d] WF[%d][%d] Wave[%d] - Exiting the "
4240 "program and decrementing max barrier count for "
4241 "barrier Id%d. New max count: %d.\n", cu->
cu_id,
4246 DPRINTF(GPUExec,
"CU%d: decrease ref ctr WG[%d] to [%d]\n",
4256 DPRINTF(GPUExec,
"Doing return for CU%d: WF[%d][%d][%d]\n",
4276 DPRINTF(GPUSync,
"CU[%d] WF[%d][%d] Wave[%d] - All waves are "
4277 "now complete. Releasing barrier Id%d.\n", cu->
cu_id,
4300 if (!kernelEnd || !relNeeded) {
4320 gpuDynInst->simdId = wf->
simdId;
4321 gpuDynInst->wfSlotId = wf->
wfSlotId;
4322 gpuDynInst->wfDynId = wf->
wfDynId;
4324 DPRINTF(GPUExec,
"inject global memory fence for CU%d: "
4355 Wavefront *wf = gpuDynInst->wavefront();
4356 Addr pc = gpuDynInst->pc();
4409 Wavefront *wf = gpuDynInst->wavefront();
4410 Addr pc = gpuDynInst->pc();
4440 Wavefront *wf = gpuDynInst->wavefront();
4441 Addr pc = gpuDynInst->pc();
4472 Wavefront *wf = gpuDynInst->wavefront();
4474 Addr pc = gpuDynInst->pc();
4504 Wavefront *wf = gpuDynInst->wavefront();
4510 Addr pc = gpuDynInst->pc();
4535 Wavefront *wf = gpuDynInst->wavefront();
4538 Addr pc = gpuDynInst->pc();
4563 Wavefront *wf = gpuDynInst->wavefront();
4566 Addr pc = gpuDynInst->pc();
4594 Wavefront *wf = gpuDynInst->wavefront();
4601 DPRINTF(GPUSync,
"CU[%d] WF[%d][%d] Wave[%d] - Stalling at "
4602 "barrier Id%d. %d waves now at barrier, %d waves "
4656 gpuDynInst->wavefront()->setWaitCnts(vm_cnt, exp_cnt, lgkm_cnt);
4701 gpuDynInst->wavefront()->setSleepTime(64 * simm16);
4911 :
Inst_SOPP(iFmt,
"s_cbranch_cdbgsys_or_user")
4934 :
Inst_SOPP(iFmt,
"s_cbranch_cdbgsys_and_user")
5043 Wavefront *wf = gpuDynInst->wavefront();
5045 gpuDynInst->latency.init(gpuDynInst->computeUnit());
5046 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
5062 gpuDynInst->computeUnit()->scalarMemoryPipe
5063 .issueRequest(gpuDynInst);
5069 initMemRead<1>(gpuDynInst);
5098 Wavefront *wf = gpuDynInst->wavefront();
5100 gpuDynInst->latency.init(gpuDynInst->computeUnit());
5101 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
5117 gpuDynInst->computeUnit()->scalarMemoryPipe.
5118 issueRequest(gpuDynInst);
5124 initMemRead<2>(gpuDynInst);
5152 Wavefront *wf = gpuDynInst->wavefront();
5154 gpuDynInst->latency.init(gpuDynInst->computeUnit());
5155 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());
5171 gpuDynInst->computeUnit()->scalarMemoryPipe.
5172 issueRequest(gpuDynInst);
5178 initMemRead<4>(gpuDynInst);
5206 Wavefront *wf = gpuDynInst->wavefront();
5208 gpuDynInst->latency.init(gpuDynInst->computeUnit());
5209 gpuDynInst->latency.set(gpuDynInst->computeUnit()->clockPeriod());