78 lines · plain
1# RUN: llc -mtriple=amdgcn-- -run-pass=print-machine-uniformity -o - %s 2>&1 | FileCheck %s2# RUN: llc -mtriple=amdgcn-- -passes='print<machine-uniformity>' -filetype=null %s 2>&1 | FileCheck %s3# CHECK-LABEL: MachineUniformityInfo for function: @hidden_loop_diverge4 5# CHECK-LABEL: BLOCK bb.06# CHECK-NOT: DIVERGENT: %{{[0-9]*}}: %{{[0-9]*}}:_(s1) = G_ICMP intpred(slt), %{{[0-9]*}}:_(s32), %{{[0-9]*}}:_7# CHECK-NOT: DIVERGENT: G_BRCOND %{{[0-9]*}}:_(s1), %bb.38# CHECK-NOT: DIVERGENT: G_BR %bb.19 10# CHECK-LABEL: BLOCK bb.111# CHECK: DIVERGENT: %{{[0-9]*}}: %{{[0-9]*}}:_(s1) = G_ICMP intpred(slt), %{{[0-9]*}}:_(s32), %{{[0-9]*}}:_12# CHECK: DIVERGENT: G_BRCOND %{{[0-9]*}}:_(s1), %bb.313# CHECK: DIVERGENT: G_BR %bb.214 15# CHECK-LABEL: BLOCK bb.216# CHECK: DIVERGENT: %{{[0-9]*}}: %{{[0-9]*}}:_(s1) = G_ICMP intpred(sgt), %{{[0-9]*}}:_(s32), %{{[0-9]*}}:_17# CHECK: DIVERGENT: G_BRCOND %{{[0-9]*}}:_(s1), %bb.418# CHECK: DIVERGENT: G_BR %bb.119 20# CHECK-LABEL: BLOCK bb.321# CHECK: DIVERGENT: %{{[0-9]*}}: %{{[0-9]*}}:_(s32) = G_PHI %{{[0-9]*}}:_(s32), %bb.0, %{{[0-9]*}}:_(s32), %bb.122# CHECK-NOT: DIVERGENT: G_BRCOND %{{[0-9]*}}:_(s1), %bb.423# CHECK-NOT: DIVERGENT: G_BR %bb.524 25# CHECK-LABEL: BLOCK bb.426# CHECK-NOT: DIVERGENT: %{{[0-9]*}}: %{{[0-9]*}}:_(s32) = G_PHI %{{[0-9]*}}:_(s32), %bb.3, %{{[0-9]*}}:_(s32), %bb.227 28# CHECK-LABEL: BLOCK bb.529# CHECK-NOT: DIVERGENT: %{{[0-9]*}}: %{{[0-9]*}}:_(s32) = G_PHI %{{[0-9]*}}:_(s32), %bb.3, %{{[0-9]*}}:_(s32), %bb.430 31---32name: hidden_loop_diverge33tracksRegLiveness: true34body: |35 bb.0:36 successors: %bb.3, %bb.137 liveins: $sgpr4_sgpr538 39 %0:_(s32) = G_IMPLICIT_DEF40 %20:_(s32) = G_IMPLICIT_DEF41 %21:_(s32) = G_CONSTANT i32 4242 %22:_(s32) = G_IMPLICIT_DEF43 %1:_(s32) = G_CONSTANT i32 044 %2:_(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.workitem.id.x)45 %3:_(s1) = G_ICMP intpred(slt), %0(s32), %146 G_BRCOND %3(s1), %bb.3 ; Uniform branch47 G_BR %bb.148 bb.1:49 successors: %bb.3, %bb.250 51 %4:_(s32) = G_PHI %1(s32), %bb.0, %7(s32), %bb.252 %5:_(s1) = G_ICMP intpred(slt), %1(s32), %2(s32)53 G_BRCOND %5(s1), %bb.3 ; Divergent exit54 G_BR %bb.255 bb.2:56 successors: %bb.4, %bb.157 58 %6:_(s32) = G_CONSTANT i32 159 %7:_(s32) = G_ADD %6(s32), %4(s32)60 %8:_(s1) = G_ICMP intpred(sgt), %2(s32), %1(s32)61 G_BRCOND %8(s1), %bb.4 ; Divergent exit62 G_BR %bb.163 bb.3:64 successors: %bb.4, %bb.565 66 %9:_(s32) = G_PHI %20(s32), %bb.0, %4(s32), %bb.1 ; Temporal divergent phi67 G_BRCOND %3(s1), %bb.468 G_BR %bb.569 70 bb.4:71 successors: %bb.572 73 %10:_(s32) = G_PHI %21(s32), %bb.3, %22(s32), %bb.2 ; Temporal divergent phi74 G_BR %bb.575 bb.5:76 %11:_(s32) = G_PHI %20(s32), %bb.3, %22(s32), %bb.477...78