diff --git a/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp b/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp index 169f1369fb543..7de64bddf7884 100644 --- a/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp +++ b/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp @@ -715,7 +715,7 @@ yaml::SIMachineFunctionInfo::SIMachineFunctionInfo( ArgInfo(convertArgumentInfo(MFI.getArgInfo(), TRI)), PSInputAddr(MFI.getPSInputAddr()), PSInputEnable(MFI.getPSInputEnable()), MaxMemoryClusterDWords(MFI.getMaxMemoryClusterDWords()), - Mode(MFI.getMode()) { + Mode(MFI.getMode()), HasInitWholeWave(MFI.hasInitWholeWave()) { for (Register Reg : MFI.getSGPRSpillPhysVGPRs()) SpillPhysVGPRS.push_back(regToString(Reg, TRI)); diff --git a/llvm/test/CodeGen/MIR/AMDGPU/init-whole.wave.ll b/llvm/test/CodeGen/MIR/AMDGPU/init-whole.wave.ll new file mode 100644 index 0000000000000..f3b8deff61918 --- /dev/null +++ b/llvm/test/CodeGen/MIR/AMDGPU/init-whole.wave.ll @@ -0,0 +1,17 @@ +; RUN: llc -global-isel=0 -march=amdgcn -mcpu=gfx1100 -stop-after=finalize-isel < %s | FileCheck --check-prefix=GCN %s +; RUN: llc -global-isel=1 -march=amdgcn -mcpu=gfx1100 -stop-after=finalize-isel < %s | FileCheck --check-prefix=GCN %s + +; GCN-LABEL: name: init_wwm +; GCN: hasInitWholeWave: true +define void @init_wwm(ptr addrspace(1) inreg %p) { +entry: + %entry_exec = call i1 @llvm.amdgcn.init.whole.wave() + br i1 %entry_exec, label %bb.1, label %bb.2 + +bb.1: + store i32 1, ptr addrspace(1) %p + br label %bb.2 + +bb.2: + ret void +}