1 # RUN: llc -mtriple=amdgcn-- -mcpu=gfx900 -run-pass=print-machine-uniformity -o - %s 2>&1 | FileCheck %s
3 # readlane, readfirstlane is always uniform
11 ; CHECK-LABEL: MachineUniformityInfo for function: readlane
12 ; CHECK-NEXT: ALL VALUES UNIFORM
13 %0:vgpr_32 = IMPLICIT_DEF
14 %1:vgpr_32 = IMPLICIT_DEF
15 %2:sgpr_32 = V_READFIRSTLANE_B32 %0, implicit $exec
16 %3:sgpr_32 = V_READLANE_B32 %1, 0, implicit $exec
17 $sgpr0 = V_READFIRSTLANE_B32 $vgpr0, implicit $exec
18 $sgpr1 = V_READLANE_B32 $vgpr1, $sgpr0, implicit $exec
22 # Readlane with physical register as operand
29 ; CHECK-LABEL: MachineUniformityInfo for function: readlane2
30 ; CHECK-NEXT: ALL VALUES UNIFORM
31 %0:vgpr_32 = IMPLICIT_DEF
32 %1:vgpr_32 = IMPLICIT_DEF
33 %4:sgpr_32 = V_READLANE_B32 $vgpr0, 0, implicit $exec
34 $sgpr0 = V_READFIRSTLANE_B32 $vgpr0, implicit $exec
35 $sgpr1 = V_READLANE_B32 $vgpr1, $sgpr0, implicit $exec
36 %5:sgpr_32 = V_READFIRSTLANE_B32 $vgpr1, implicit $exec
42 # for copy operand src = sgpr -> uniform
45 tracksRegLiveness: true
50 ; CHECK-LABEL: MachineUniformityInfo for function: sgprcopy
51 ; CHECK-NEXT: ALL VALUES UNIFORM
52 liveins: $sgpr0,$sgpr1,$vgpr0
53 %0:sgpr_32 = COPY $sgpr0
54 %1:vgpr_32 = COPY $sgpr1