127 lines
4.2 KiB
YAML
127 lines
4.2 KiB
YAML
# REQUIRES: amdgpu-registered-target
|
|
# RUN: llvm-reduce -abort-on-invalid-reduction -simplify-mir -mtriple=amdgcn-amd-amdhsa -mcpu=gfx908 --test FileCheck --test-arg --check-prefix=CHECK-INTERESTINGNESS --test-arg %s --test-arg --input-file %s -o %t 2> %t.log
|
|
# RUN: FileCheck --check-prefix=RESULT %s < %t
|
|
|
|
# CHECK-INTERESTINGNESS-COUNT-6: S_NOP
|
|
|
|
# RESULT: name: func
|
|
|
|
--- |
|
|
define void @func() {
|
|
ret void
|
|
}
|
|
|
|
...
|
|
|
|
# RESULT: machineFunctionInfo:
|
|
# RESULT-NEXT: explicitKernArgSize: 108
|
|
# RESULT-NEXT: maxKernArgAlign: 32
|
|
# RESULT-NEXT: ldsSize: 256
|
|
# RESULT-NEXT: gdsSize: 128
|
|
# RESULT-NEXT: dynLDSAlign: 16
|
|
# RESULT-NEXT: isEntryFunction: true
|
|
# RESULT-NEXT: noSignedZerosFPMath: true
|
|
# RESULT-NEXT: memoryBound: true
|
|
# RESULT-NEXT: waveLimiter: true
|
|
# RESULT-NEXT: hasSpilledSGPRs: true
|
|
# RESULT-NEXT: hasSpilledVGPRs: true
|
|
# RESULT-NEXT: scratchRSrcReg: '$sgpr48_sgpr49_sgpr50_sgpr51'
|
|
# RESULT-NEXT: frameOffsetReg: '$sgpr44'
|
|
# RESULT-NEXT: stackPtrOffsetReg: '$sgpr45'
|
|
# RESULT-NEXT: bytesInStackArgArea: 112
|
|
# RESULT-NEXT: returnsVoid: false
|
|
# RESULT-NEXT: argumentInfo:
|
|
# RESULT-NEXT: privateSegmentBuffer: { reg: '$sgpr60_sgpr61_sgpr62_sgpr63' }
|
|
# RESULT-NEXT: dispatchPtr: { reg: '$sgpr6_sgpr7' }
|
|
# RESULT-NEXT: queuePtr: { reg: '$sgpr4_sgpr5' }
|
|
# RESULT-NEXT: dispatchID: { reg: '$sgpr12_sgpr13' }
|
|
# RESULT-NEXT: workGroupIDX: { reg: '$sgpr20' }
|
|
# RESULT-NEXT: workGroupIDY: { reg: '$sgpr19' }
|
|
# RESULT-NEXT: workGroupIDZ: { reg: '$sgpr18' }
|
|
# RESULT-NEXT: LDSKernelId: { reg: '$sgpr15' }
|
|
# RESULT-NEXT: implicitArgPtr: { reg: '$sgpr10_sgpr11' }
|
|
# RESULT-NEXT: workItemIDX: { reg: '$vgpr34', mask: 1023 }
|
|
# RESULT-NEXT: workItemIDY: { reg: '$vgpr34', mask: 1047552 }
|
|
# RESULT-NEXT: workItemIDZ: { reg: '$vgpr34', mask: 1072693248 }
|
|
# RESULT-NEXT: mode:
|
|
# RESULT-NEXT: ieee: false
|
|
# RESULT-NEXT: dx10-clamp: false
|
|
# RESULT-NEXT: fp32-input-denormals: false
|
|
# RESULT-NEXT: fp32-output-denormals: false
|
|
# RESULT-NEXT: fp64-fp16-input-denormals: false
|
|
# RESULT-NEXT: fp64-fp16-output-denormals: false
|
|
# RESULT-NEXT: highBitsOf32BitAddress: 4276993775
|
|
# RESULT-NEXT: occupancy: 8
|
|
# RESULT-NEXT: wwmReservedRegs:
|
|
# RESULT-NEXT: - '$vgpr2'
|
|
# RESULT-NEXT: - '$vgpr3'
|
|
# RESULT-NEXT: vgprForAGPRCopy: '$vgpr33'
|
|
|
|
# RESULT: S_NOP 0, implicit $sgpr48_sgpr49_sgpr50_sgpr51
|
|
# RESULT: S_NOP 0, implicit $vgpr33
|
|
# RESULT: S_NOP 0, implicit $sgpr44
|
|
# RESULT: S_NOP 0, implicit $sgpr45
|
|
# RESULT: S_NOP 0, implicit $vgpr2
|
|
# RESULT: S_NOP 0, implicit $vgpr3
|
|
|
|
---
|
|
name: func
|
|
tracksRegLiveness: true
|
|
machineFunctionInfo:
|
|
explicitKernArgSize: 108
|
|
maxKernArgAlign: 32
|
|
ldsSize: 256
|
|
gdsSize: 128
|
|
dynLDSAlign: 16
|
|
isEntryFunction: true
|
|
noSignedZerosFPMath: true
|
|
memoryBound: true
|
|
waveLimiter: true
|
|
hasSpilledSGPRs: true
|
|
hasSpilledVGPRs: true
|
|
scratchRSrcReg: '$sgpr48_sgpr49_sgpr50_sgpr51'
|
|
frameOffsetReg: '$sgpr44'
|
|
stackPtrOffsetReg: '$sgpr45'
|
|
bytesInStackArgArea: 112
|
|
returnsVoid: false
|
|
argumentInfo:
|
|
privateSegmentBuffer: { reg: '$sgpr60_sgpr61_sgpr62_sgpr63' }
|
|
dispatchPtr: { reg: '$sgpr6_sgpr7' }
|
|
queuePtr: { reg: '$sgpr4_sgpr5' }
|
|
dispatchID: { reg: '$sgpr12_sgpr13' }
|
|
workGroupIDX: { reg: '$sgpr20' }
|
|
workGroupIDY: { reg: '$sgpr19' }
|
|
workGroupIDZ: { reg: '$sgpr18' }
|
|
implicitArgPtr: { reg: '$sgpr10_sgpr11' }
|
|
workItemIDX: { reg: '$vgpr34', mask: 1023 }
|
|
workItemIDY: { reg: '$vgpr34', mask: 1047552 }
|
|
workItemIDZ: { reg: '$vgpr34', mask: 1072693248 }
|
|
mode:
|
|
ieee: false
|
|
dx10-clamp: false
|
|
fp32-input-denormals: false
|
|
fp32-output-denormals: false
|
|
fp64-fp16-input-denormals: false
|
|
fp64-fp16-output-denormals: false
|
|
highBitsOf32BitAddress: 0xfeedbeef
|
|
occupancy: 8
|
|
wwmReservedRegs:
|
|
- '$vgpr2'
|
|
- '$vgpr3'
|
|
vgprForAGPRCopy: '$vgpr33'
|
|
body: |
|
|
bb.0:
|
|
S_WAITCNT 0
|
|
%0:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
|
|
|
|
; Test some register uses that are undef unless the reserved
|
|
; registers are respected.
|
|
S_NOP 0, implicit $sgpr48_sgpr49_sgpr50_sgpr51
|
|
S_NOP 0, implicit $vgpr33
|
|
S_NOP 0, implicit $sgpr44
|
|
S_NOP 0, implicit $sgpr45
|
|
S_NOP 0, implicit $vgpr2
|
|
S_NOP 0, implicit $vgpr3
|
|
S_ENDPGM 0, implicit %0
|
|
...
|