[llvm] [Uniformity] Fixed control-div early stop (PR #139667)
Junjie Gu via llvm-commits
llvm-commits at lists.llvm.org
Tue May 13 23:01:25 PDT 2025
jgu222 wrote:
@ssahasra Given the following:
`
; RUN: opt %s -mtriple amdgcn-- -passes='print<uniformity>' -disable-output 2>&1 | FileCheck %s
define amdgpu_kernel void @cycle_inner_ipd(i32 %n, i32 %a, i32 %b) #0 {
;
; entry(6)
; / \
; E2(5)<----E1(1)
; | \ ^^
; | \ / |
; | A(4) |
; | / |
; | / |
; B(3) ----->C(2)
; |
; X(0)
;
;
;
entry:
%tid = call i32 @llvm.amdgcn.workitem.id.x()
%div.cond = icmp slt i32 %tid, 0
%uni.cond = icmp slt i32 %a, 0
%uni.cond1 = icmp slt i32 %a, 2
%uni.cond2 = icmp slt i32 %a, 10
br i1 %uni.cond, label %E2, label %E1
E1:
br label %E2
E2:
br i1 %uni.cond1, label %A, label %B
A:
br i1 %div.cond, label %E1, label %B
B:
%div.merge = phi i32 [ 0, %A ], [ %b, %E2 ]
br label %C
C:
br i1 %uni.cond2, label %E1, label %X
X:
ret void
}
'
https://github.com/llvm/llvm-project/pull/139667
More information about the llvm-commits
mailing list