[memprof] Move YAML traits to MemProf.h (NFC) (#118668)
[llvm-project.git] / llvm / test / tools / llvm-reduce / mir / preserve-machine-function-info-amdgpu.mir
blob73e75fc0f7ef5b30bcd03abc6a52e563638fcda3
1 # REQUIRES: amdgpu-registered-target
2 # 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
3 # RUN: FileCheck --check-prefix=RESULT %s < %t
5 # CHECK-INTERESTINGNESS-COUNT-6: S_NOP
7 # RESULT: name: func
9 --- |
10   define void @func() {
11     ret void
12   }
14 ...
16 # RESULT: machineFunctionInfo:
17 # RESULT-NEXT: explicitKernArgSize: 108
18 # RESULT-NEXT: maxKernArgAlign: 32
19 # RESULT-NEXT: ldsSize:         256
20 # RESULT-NEXT: gdsSize:         128
21 # RESULT-NEXT: dynLDSAlign:     16
22 # RESULT-NEXT: isEntryFunction: true
23 # RESULT-NEXT: noSignedZerosFPMath: true
24 # RESULT-NEXT: memoryBound:     true
25 # RESULT-NEXT: waveLimiter:     true
26 # RESULT-NEXT: hasSpilledSGPRs: true
27 # RESULT-NEXT: hasSpilledVGPRs: true
28 # RESULT-NEXT: scratchRSrcReg:  '$sgpr48_sgpr49_sgpr50_sgpr51'
29 # RESULT-NEXT: frameOffsetReg:  '$sgpr44'
30 # RESULT-NEXT: stackPtrOffsetReg: '$sgpr45'
31 # RESULT-NEXT: bytesInStackArgArea: 112
32 # RESULT-NEXT: returnsVoid:     false
33 # RESULT-NEXT: argumentInfo:
34 # RESULT-NEXT: privateSegmentBuffer: { reg: '$sgpr60_sgpr61_sgpr62_sgpr63' }
35 # RESULT-NEXT: dispatchPtr:     { reg: '$sgpr6_sgpr7' }
36 # RESULT-NEXT: queuePtr:        { reg: '$sgpr4_sgpr5' }
37 # RESULT-NEXT: dispatchID:      { reg: '$sgpr12_sgpr13' }
38 # RESULT-NEXT: workGroupIDX:    { reg: '$sgpr20' }
39 # RESULT-NEXT: workGroupIDY:    { reg: '$sgpr19' }
40 # RESULT-NEXT: workGroupIDZ:    { reg: '$sgpr18' }
41 # RESULT-NEXT: LDSKernelId:     { reg: '$sgpr15' }
42 # RESULT-NEXT: implicitArgPtr:  { reg: '$sgpr10_sgpr11' }
43 # RESULT-NEXT: workItemIDX:     { reg: '$vgpr34', mask: 1023 }
44 # RESULT-NEXT: workItemIDY:     { reg: '$vgpr34', mask: 1047552 }
45 # RESULT-NEXT: workItemIDZ:     { reg: '$vgpr34', mask: 1072693248 }
46 # RESULT-NEXT: mode:
47 # RESULT-NEXT: ieee:            false
48 # RESULT-NEXT: dx10-clamp:      false
49 # RESULT-NEXT: fp32-input-denormals: false
50 # RESULT-NEXT: fp32-output-denormals: false
51 # RESULT-NEXT: fp64-fp16-input-denormals: false
52 # RESULT-NEXT: fp64-fp16-output-denormals: false
53 # RESULT-NEXT: highBitsOf32BitAddress: 4276993775
54 # RESULT-NEXT: occupancy:       8
55 # RESULT-NEXT: wwmReservedRegs:
56 # RESULT-NEXT: - '$vgpr2'
57 # RESULT-NEXT: - '$vgpr3'
58 # RESULT-NEXT: vgprForAGPRCopy: '$vgpr33'
60 # RESULT: S_NOP 0, implicit $sgpr48_sgpr49_sgpr50_sgpr51
61 # RESULT: S_NOP 0, implicit $vgpr33
62 # RESULT: S_NOP 0, implicit $sgpr44
63 # RESULT: S_NOP 0, implicit $sgpr45
64 # RESULT: S_NOP 0, implicit $vgpr2
65 # RESULT: S_NOP 0, implicit $vgpr3
67 ---
68 name: func
69 tracksRegLiveness: true
70 machineFunctionInfo:
71   explicitKernArgSize: 108
72   maxKernArgAlign: 32
73   ldsSize:         256
74   gdsSize:         128
75   dynLDSAlign:     16
76   isEntryFunction: true
77   noSignedZerosFPMath: true
78   memoryBound:     true
79   waveLimiter:     true
80   hasSpilledSGPRs: true
81   hasSpilledVGPRs: true
82   scratchRSrcReg:  '$sgpr48_sgpr49_sgpr50_sgpr51'
83   frameOffsetReg:  '$sgpr44'
84   stackPtrOffsetReg: '$sgpr45'
85   bytesInStackArgArea: 112
86   returnsVoid:     false
87   argumentInfo:
88     privateSegmentBuffer: { reg: '$sgpr60_sgpr61_sgpr62_sgpr63' }
89     dispatchPtr:     { reg: '$sgpr6_sgpr7' }
90     queuePtr:        { reg: '$sgpr4_sgpr5' }
91     dispatchID:      { reg: '$sgpr12_sgpr13' }
92     workGroupIDX:    { reg: '$sgpr20' }
93     workGroupIDY:    { reg: '$sgpr19' }
94     workGroupIDZ:    { reg: '$sgpr18' }
95     implicitArgPtr:  { reg: '$sgpr10_sgpr11' }
96     workItemIDX:     { reg: '$vgpr34', mask: 1023 }
97     workItemIDY:     { reg: '$vgpr34', mask: 1047552 }
98     workItemIDZ:     { reg: '$vgpr34', mask: 1072693248 }
99   mode:
100     ieee:            false
101     dx10-clamp:      false
102     fp32-input-denormals: false
103     fp32-output-denormals: false
104     fp64-fp16-input-denormals: false
105     fp64-fp16-output-denormals: false
106   highBitsOf32BitAddress: 0xfeedbeef
107   occupancy:       8
108   wwmReservedRegs:
109     - '$vgpr2'
110     - '$vgpr3'
111   vgprForAGPRCopy: '$vgpr33'
112 body:             |
113   bb.0:
114     S_WAITCNT 0
115     %0:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
117     ; Test some register uses that are undef unless the reserved
118     ; registers are respected.
119     S_NOP 0, implicit $sgpr48_sgpr49_sgpr50_sgpr51
120     S_NOP 0, implicit $vgpr33
121     S_NOP 0, implicit $sgpr44
122     S_NOP 0, implicit $sgpr45
123     S_NOP 0, implicit $vgpr2
124     S_NOP 0, implicit $vgpr3
125     S_ENDPGM 0, implicit %0