58 lines · plain
1# RUN: llc -mtriple=amdgcn-- -mcpu=gfx900 -run-pass=print-machine-uniformity -o - %s 2>&1 | FileCheck %s2# RUN: llc -mtriple=amdgcn-- -mcpu=gfx900 -passes='print<machine-uniformity>' -filetype=null %s 2>&1 | FileCheck %s3 4# readlane, readfirstlane is always uniform5 6---7name: readlane8machineFunctionInfo:9 isEntryFunction: true10body: |11 bb.0:12 ; CHECK-LABEL: MachineUniformityInfo for function: @readlane13 ; CHECK-NEXT: ALL VALUES UNIFORM14 %0:vgpr_32 = IMPLICIT_DEF15 %1:vgpr_32 = IMPLICIT_DEF16 %2:sreg_32_xm0 = V_READFIRSTLANE_B32 %0, implicit $exec17 %3:sgpr_32 = V_READLANE_B32 %1, 0, implicit $exec18 $sgpr0 = V_READFIRSTLANE_B32 $vgpr0, implicit $exec19 $sgpr1 = V_READLANE_B32 $vgpr1, $sgpr0, implicit $exec20 S_ENDPGM 021...22 23# Readlane with physical register as operand24---25name: readlane226machineFunctionInfo:27 isEntryFunction: true28body: |29 bb.0:30 ; CHECK-LABEL: MachineUniformityInfo for function: @readlane231 ; CHECK-NEXT: ALL VALUES UNIFORM32 %0:vgpr_32 = IMPLICIT_DEF33 %1:vgpr_32 = IMPLICIT_DEF34 %4:sgpr_32 = V_READLANE_B32 $vgpr0, 0, implicit $exec35 $sgpr0 = V_READFIRSTLANE_B32 $vgpr0, implicit $exec36 $sgpr1 = V_READLANE_B32 $vgpr1, $sgpr0, implicit $exec37 %5:sreg_32_xm0 = V_READFIRSTLANE_B32 $vgpr1, implicit $exec38 S_ENDPGM 039...40 41 42 43# for copy operand src = sgpr -> uniform44---45name: sgprcopy46tracksRegLiveness: true47machineFunctionInfo:48 isEntryFunction: true49body: |50 bb.0:51 ; CHECK-LABEL: MachineUniformityInfo for function: @sgprcopy52 ; CHECK-NEXT: ALL VALUES UNIFORM53 liveins: $sgpr0,$sgpr1,$vgpr054 %0:sgpr_32 = COPY $sgpr055 %1:vgpr_32 = COPY $sgpr156 S_ENDPGM 057...58