]> granicus.if.org Git - llvm/commitdiff
AMDGPU: Fix amdgpu-flat-work-group-size/amdgpu-waves-per-eu check
authorKonstantin Zhuravlyov <kzhuravl_dev@outlook.com>
Sun, 16 Jul 2017 19:38:47 +0000 (19:38 +0000)
committerKonstantin Zhuravlyov <kzhuravl_dev@outlook.com>
Sun, 16 Jul 2017 19:38:47 +0000 (19:38 +0000)
Differential Revision: https://reviews.llvm.org/D35433

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@308147 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/AMDGPU/AMDGPUSubtarget.cpp
test/CodeGen/AMDGPU/attr-amdgpu-waves-per-eu.ll

index 1bc5a52053ecb0ed92e6235cad829593428dc6db..7796176290108ea418afa4519a03954e673b13d3 100644 (file)
@@ -277,7 +277,7 @@ std::pair<unsigned, unsigned> AMDGPUSubtarget::getWavesPerEU(
   // Make sure requested values are compatible with values implied by requested
   // minimum/maximum flat work group sizes.
   if (RequestedFlatWorkGroupSize &&
-      Requested.first > MinImpliedByFlatWorkGroupSize)
+      Requested.first < MinImpliedByFlatWorkGroupSize)
     return Default;
 
   return Requested;
index b03713a8960a9311b4a69be0f22302cabee38b62..a5e97205de21378ec8f81234de901ca02776552d 100644 (file)
@@ -188,3 +188,15 @@ define amdgpu_kernel void @exactly_10() #9 {
   ret void
 }
 attributes #9 = {"amdgpu-waves-per-eu"="10,10"}
+
+; Exactly 256 workitems and exactly 2 waves.
+; CHECK-LABEL: {{^}}empty_workitems_exactly_256_waves_exactly_2:
+; CHECK: SGPRBlocks: 12
+; CHECK: VGPRBlocks: 21
+; CHECK: NumSGPRsForWavesPerEU: 102
+; CHECK: NumVGPRsForWavesPerEU: 85
+define amdgpu_kernel void @empty_workitems_exactly_256_waves_exactly_2() #10 {
+entry:
+  ret void
+}
+attributes #10 = {"amdgpu-flat-work-group-size"="256,256" "amdgpu-waves-per-eu"="2,2"}