================ @@ -1465,9 +1465,22 @@ bool AMDGPUCallLowering::lowerCall(MachineIRBuilder &MIRBuilder, CallLoweringInfo &Info) const { if (Function *F = Info.CB->getCalledFunction()) if (F->isIntrinsic()) { - assert(F->getIntrinsicID() == Intrinsic::amdgcn_cs_chain && - "Unexpected intrinsic"); - return lowerChainCall(MIRBuilder, Info); + switch (F->getIntrinsicID()) { + case Intrinsic::amdgcn_cs_chain: + return lowerChainCall(MIRBuilder, Info); + case Intrinsic::amdgcn_call_whole_wave: + Info.CallConv = CallingConv::AMDGPU_Gfx_WholeWave; + + // Get the callee from the original instruction, so it doesn't look like + // this is an indirect call. + Info.Callee = MachineOperand::CreateGA( + static_cast<GlobalValue *>(Info.CB->getOperand(0)), /*Offset=*/0); ---------------- arsenm wrote:
Don't use static_cast for IR classes https://github.com/llvm/llvm-project/pull/145859 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits