1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -march=amdgcn -mcpu=polaris10 -run-pass si-pre-emit-peephole -amdgpu-skip-threshold=1 -verify-machineinstrs  %s -o - | FileCheck %s
3
4---
5
6name: skip_execz_flat
7body: |
8  ; CHECK-LABEL: name: skip_execz_flat
9  ; CHECK: bb.0:
10  ; CHECK-NEXT:   successors: %bb.1(0x40000000), %bb.2(0x40000000)
11  ; CHECK-NEXT: {{  $}}
12  ; CHECK-NEXT:   S_CBRANCH_EXECZ %bb.2, implicit $exec
13  ; CHECK-NEXT: {{  $}}
14  ; CHECK-NEXT: bb.1:
15  ; CHECK-NEXT:   successors: %bb.2(0x80000000)
16  ; CHECK-NEXT: {{  $}}
17  ; CHECK-NEXT:   $vgpr0 = V_MOV_B32_e32 0, implicit $exec
18  ; CHECK-NEXT:   FLAT_STORE_DWORD undef $vgpr1_vgpr2, $vgpr0, 0, 0, implicit $exec, implicit $flat_scr
19  ; CHECK-NEXT: {{  $}}
20  ; CHECK-NEXT: bb.2:
21  ; CHECK-NEXT:   S_ENDPGM 0
22  bb.0:
23    successors: %bb.1, %bb.2
24    S_CBRANCH_EXECZ   %bb.2, implicit $exec
25
26  bb.1:
27    successors: %bb.2
28    $vgpr0 = V_MOV_B32_e32 0, implicit $exec
29    FLAT_STORE_DWORD undef $vgpr1_vgpr2, $vgpr0, 0, 0, implicit $exec, implicit $flat_scr
30
31  bb.2:
32    S_ENDPGM 0
33...
34
35---
36
37name: skip_execz_mubuf
38body: |
39  ; CHECK-LABEL: name: skip_execz_mubuf
40  ; CHECK: bb.0:
41  ; CHECK-NEXT:   successors: %bb.1(0x40000000), %bb.2(0x40000000)
42  ; CHECK-NEXT: {{  $}}
43  ; CHECK-NEXT:   S_CBRANCH_EXECZ %bb.2, implicit $exec
44  ; CHECK-NEXT: {{  $}}
45  ; CHECK-NEXT: bb.1:
46  ; CHECK-NEXT:   successors: %bb.2(0x80000000)
47  ; CHECK-NEXT: {{  $}}
48  ; CHECK-NEXT:   $vgpr0 = V_MOV_B32_e32 0, implicit $exec
49  ; CHECK-NEXT:   BUFFER_STORE_DWORD_OFFSET $vgpr0, undef $sgpr0_sgpr1_sgpr2_sgpr3, undef $sgpr4, 0, 0, 0, 0, implicit $exec
50  ; CHECK-NEXT: {{  $}}
51  ; CHECK-NEXT: bb.2:
52  ; CHECK-NEXT:   S_ENDPGM 0
53  bb.0:
54    successors: %bb.1, %bb.2
55    S_CBRANCH_EXECZ  %bb.2, implicit $exec
56
57  bb.1:
58    successors: %bb.2
59    $vgpr0 = V_MOV_B32_e32 0, implicit $exec
60    BUFFER_STORE_DWORD_OFFSET $vgpr0, undef $sgpr0_sgpr1_sgpr2_sgpr3, undef $sgpr4, 0, 0, 0, 0, implicit $exec
61
62  bb.2:
63    S_ENDPGM 0
64...
65
66---
67
68name: skip_execz_ds
69body: |
70  ; CHECK-LABEL: name: skip_execz_ds
71  ; CHECK: bb.0:
72  ; CHECK-NEXT:   successors: %bb.1(0x40000000), %bb.2(0x40000000)
73  ; CHECK-NEXT: {{  $}}
74  ; CHECK-NEXT:   S_CBRANCH_EXECZ %bb.2, implicit $exec
75  ; CHECK-NEXT: {{  $}}
76  ; CHECK-NEXT: bb.1:
77  ; CHECK-NEXT:   successors: %bb.2(0x80000000)
78  ; CHECK-NEXT: {{  $}}
79  ; CHECK-NEXT:   $vgpr0 = V_MOV_B32_e32 0, implicit $exec
80  ; CHECK-NEXT:   DS_WRITE_B32 $vgpr0, $vgpr0, 0, 0, implicit $m0, implicit $exec
81  ; CHECK-NEXT: {{  $}}
82  ; CHECK-NEXT: bb.2:
83  ; CHECK-NEXT:   S_ENDPGM 0
84  bb.0:
85    successors: %bb.1, %bb.2
86    S_CBRANCH_EXECZ %bb.2, implicit $exec
87
88  bb.1:
89    successors: %bb.2
90    $vgpr0 = V_MOV_B32_e32 0, implicit $exec
91    DS_WRITE_B32 $vgpr0, $vgpr0, 0, 0, implicit $m0, implicit $exec
92
93  bb.2:
94    S_ENDPGM 0
95...
96