Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / MIR / AMDGPU / machine-function-info-long-branch-reg.ll
blob8922a233b1d8fbbdab29f902ae78e714764d3227
1 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -verify-machineinstrs -amdgpu-s-branch-bits=4 -stop-after=branch-relaxation -verify-machineinstrs %s -o - | FileCheck %s
3 ; Test that long branch reserved register is serialized through
4 ; MIR.
6 ; CHECK-LABEL: {{^}}name: uniform_long_forward_branch
7 ; CHECK: machineFunctionInfo:
8 ; CHECK-NEXT: explicitKernArgSize: 12
9 ; CHECK-NEXT: maxKernArgAlign: 8
10 ; CHECK-NEXT: ldsSize: 0
11 ; CHECK-NEXT: gdsSize: 0
12 ; CHECK-NEXT: dynLDSAlign: 1
13 ; CHECK-NEXT: isEntryFunction: true
14 ; CHECK-NEXT: isChainFunction: false
15 ; CHECK-NEXT: noSignedZerosFPMath: false
16 ; CHECK-NEXT: memoryBound: false
17 ; CHECK-NEXT: waveLimiter: false
18 ; CHECK-NEXT: hasSpilledSGPRs: false
19 ; CHECK-NEXT: hasSpilledVGPRs: false
20 ; CHECK-NEXT: scratchRSrcReg:  '$sgpr96_sgpr97_sgpr98_sgpr99'
21 ; CHECK-NEXT: frameOffsetReg:  '$fp_reg'
22 ; CHECK-NEXT: stackPtrOffsetReg: '$sgpr32'
23 ; CHECK-NEXT: bytesInStackArgArea: 0
24 ; CHECK-NEXT: returnsVoid:     true
25 ; CHECK-NEXT: argumentInfo:
26 ; CHECK-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
27 ; CHECK-NEXT: kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
28 ; CHECK-NEXT: workGroupIDX:    { reg: '$sgpr6' }
29 ; CHECK-NEXT: privateSegmentWaveByteOffset: { reg: '$sgpr7' }
30 ; CHECK-NEXT: workItemIDX:     { reg: '$vgpr0' }
31 ; CHECK-NEXT: psInputAddr:     0
32 ; CHECK-NEXT: psInputEnable:   0
33 ; CHECK-NEXT: mode:
34 ; CHECK-NEXT: ieee:            true
35 ; CHECK-NEXT: dx10-clamp:      true
36 ; CHECK-NEXT: fp32-input-denormals: true
37 ; CHECK-NEXT: fp32-output-denormals: true
38 ; CHECK-NEXT: fp64-fp16-input-denormals: true
39 ; CHECK-NEXT: fp64-fp16-output-denormals: true
40 ; CHECK-NEXT: BitsOf32BitAddress: 0
41 ; CHECK-NEXT: occupancy:       8
42 ; CHECK-NEXT: vgprForAGPRCopy: ''
43 ; CHECK-NEXT: sgprForEXECCopy: '$sgpr100_sgpr101'
44 ; CHECK-NEXT: longBranchReservedReg: '$sgpr2_sgpr3'
45 ; CHECK-NEXT: body:
46 define amdgpu_kernel void @uniform_long_forward_branch(ptr addrspace(1) %arg, i32 %arg1) {
47 bb0:
48   %tmp = icmp ne i32 %arg1, 0
49   br i1 %tmp, label %bb2, label %bb3
51 bb2:
52   store volatile i32 17, ptr addrspace(1) undef
53   br label %bb4
55 bb3:
56   ; 32 byte asm
57   call void asm sideeffect
58   "v_nop_e64
59   v_nop_e64
60   v_nop_e64
61   v_nop_e64", ""() #0
62   br label %bb4
64 bb4:
65   store volatile i32 63, ptr addrspace(1) %arg
66   ret void
69 attributes #0 = { nounwind }
70 attributes #1 = { nounwind readnone }