[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / waitcnt-preexisting-vscnt.mir
blob5601d693170539e4846d0d060ac6c7777c32cb1e
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -march=amdgcn -mcpu=gfx1010 -verify-machineinstrs -run-pass si-insert-waitcnts -o - %s | FileCheck -check-prefix=GFX10 %s
4 ---
5 name:            test_waitcnt_preexisting_vscnt_unmodified
6 body:             |
7   bb.0:
8     liveins: $vgpr0_vgpr1, $vgpr2
10     ; GFX10-LABEL: name: test_waitcnt_preexisting_vscnt_unmodified
11     ; GFX10: S_WAITCNT 0
12     ; GFX10: S_WAITCNT_VSCNT undef $sgpr_null, 0
13     ; GFX10: GLOBAL_STORE_DWORD $vgpr0_vgpr1, $vgpr2, 0, 0, implicit $exec
14     ; GFX10: S_WAITCNT_VSCNT undef $sgpr_null, 0
15     ; GFX10: S_BARRIER
16     ; GFX10: $vgpr0 = FLAT_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $flat_scr
17     ; GFX10: S_WAITCNT 112
18     ; GFX10: FLAT_STORE_DWORD $vgpr0_vgpr1, $vgpr0, 0, 0, implicit $exec, implicit $flat_scr
19     ; GFX10: S_ENDPGM 0
20     GLOBAL_STORE_DWORD $vgpr0_vgpr1, $vgpr2, 0, 0, implicit $exec
21     S_WAITCNT_VSCNT undef $sgpr_null, 0
22     S_BARRIER
23     $vgpr0 = FLAT_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $flat_scr
24     FLAT_STORE_DWORD $vgpr0_vgpr1, $vgpr0, 0, 0, implicit $exec, implicit $flat_scr
25     S_ENDPGM 0
26 ...
28 ---
29 name:            test_waitcnt_preexisting_vscnt_needs_vscnt
30 body:             |
31   bb.0:
32     liveins: $vgpr0_vgpr1, $vgpr2
34     ; GFX10-LABEL: name: test_waitcnt_preexisting_vscnt_needs_vscnt
35     ; GFX10: S_WAITCNT 0
36     ; GFX10: S_WAITCNT_VSCNT undef $sgpr_null, 0
37     ; GFX10: GLOBAL_STORE_DWORD $vgpr0_vgpr1, $vgpr2, 0, 0, implicit $exec
38     ; GFX10: S_WAITCNT_VSCNT undef $sgpr_null, 0
39     ; GFX10: S_BARRIER
40     ; GFX10: $vgpr0 = FLAT_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $flat_scr
41     ; GFX10: S_WAITCNT 112
42     ; GFX10: FLAT_STORE_DWORD $vgpr0_vgpr1, $vgpr0, 0, 0, implicit $exec, implicit $flat_scr
43     ; GFX10: S_ENDPGM 0
44     GLOBAL_STORE_DWORD $vgpr0_vgpr1, $vgpr2, 0, 0, implicit $exec
45     S_WAITCNT_VSCNT undef $sgpr_null, 1
46     S_BARRIER
47     $vgpr0 = FLAT_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $flat_scr
48     FLAT_STORE_DWORD $vgpr0_vgpr1, $vgpr0, 0, 0, implicit $exec, implicit $flat_scr
49     S_ENDPGM 0
50 ...
52 ---
53 name:            test_waitcnt_preexisting_vscnt_with_other_waitcnt
54 body:             |
55   bb.0:
56     liveins: $vgpr0_vgpr1, $vgpr2
58     ; GFX10-LABEL: name: test_waitcnt_preexisting_vscnt_with_other_waitcnt
59     ; GFX10: S_WAITCNT 0
60     ; GFX10: S_WAITCNT_VSCNT undef $sgpr_null, 0
61     ; GFX10: GLOBAL_STORE_DWORD $vgpr0_vgpr1, $vgpr2, 0, 0, implicit $exec
62     ; GFX10: S_WAITCNT 112
63     ; GFX10: S_WAITCNT_VSCNT undef $sgpr_null, 0
64     ; GFX10: S_BARRIER
65     ; GFX10: $vgpr0 = FLAT_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $flat_scr
66     ; GFX10: S_WAITCNT 112
67     ; GFX10: FLAT_STORE_DWORD $vgpr0_vgpr1, $vgpr0, 0, 0, implicit $exec, implicit $flat_scr
68     ; GFX10: S_ENDPGM 0
69     GLOBAL_STORE_DWORD $vgpr0_vgpr1, $vgpr2, 0, 0, implicit $exec
70     S_WAITCNT 112
71     S_WAITCNT_VSCNT undef $sgpr_null, 0
72     S_BARRIER
73     $vgpr0 = FLAT_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $flat_scr
74     FLAT_STORE_DWORD $vgpr0_vgpr1, $vgpr0, 0, 0, implicit $exec, implicit $flat_scr
75     S_ENDPGM 0
76 ...
78 ---
79 name:            test_waitcnt_preexisting_vscnt_combined
80 body:             |
81   bb.0:
82     liveins: $vgpr0_vgpr1, $vgpr2
84     ; GFX10-LABEL: name: test_waitcnt_preexisting_vscnt_combined
85     ; GFX10: S_WAITCNT 0
86     ; GFX10: S_WAITCNT_VSCNT undef $sgpr_null, 0
87     ; GFX10: GLOBAL_STORE_DWORD $vgpr0_vgpr1, $vgpr2, 0, 0, implicit $exec
88     ; GFX10: S_WAITCNT_VSCNT undef $sgpr_null, 0
89     ; GFX10: S_BARRIER
90     ; GFX10: $vgpr0 = FLAT_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $flat_scr
91     ; GFX10: S_WAITCNT 112
92     ; GFX10: FLAT_STORE_DWORD $vgpr0_vgpr1, $vgpr0, 0, 0, implicit $exec, implicit $flat_scr
93     ; GFX10: S_ENDPGM 0
94     GLOBAL_STORE_DWORD $vgpr0_vgpr1, $vgpr2, 0, 0, implicit $exec
95     S_WAITCNT_VSCNT undef $sgpr_null, 0
96     S_WAITCNT_VSCNT undef $sgpr_null, 1
97     S_WAITCNT_VSCNT undef $sgpr_null, 2
98     S_BARRIER
99     $vgpr0 = FLAT_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $flat_scr
100     FLAT_STORE_DWORD $vgpr0_vgpr1, $vgpr0, 0, 0, implicit $exec, implicit $flat_scr
101     S_ENDPGM 0
105 name:            test_waitcnt_preexisting_vscnt_combined_both_types
106 body:             |
107   bb.0:
108     liveins: $vgpr0_vgpr1, $vgpr2
110     ; GFX10-LABEL: name: test_waitcnt_preexisting_vscnt_combined_both_types
111     ; GFX10: S_WAITCNT 0
112     ; GFX10: S_WAITCNT_VSCNT undef $sgpr_null, 0
113     ; GFX10: GLOBAL_STORE_DWORD $vgpr0_vgpr1, $vgpr2, 0, 0, implicit $exec
114     ; GFX10: S_WAITCNT 0
115     ; GFX10: S_WAITCNT_VSCNT undef $sgpr_null, 0
116     ; GFX10: S_BARRIER
117     ; GFX10: $vgpr0 = FLAT_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $flat_scr
118     ; GFX10: S_WAITCNT 112
119     ; GFX10: FLAT_STORE_DWORD $vgpr0_vgpr1, $vgpr0, 0, 0, implicit $exec, implicit $flat_scr
120     ; GFX10: S_ENDPGM 0
121     GLOBAL_STORE_DWORD $vgpr0_vgpr1, $vgpr2, 0, 0, implicit $exec
122     S_WAITCNT 0
123     S_WAITCNT_VSCNT undef $sgpr_null, 1
124     S_WAITCNT 0
125     S_WAITCNT_VSCNT undef $sgpr_null, 2
126     S_WAITCNT 0
127     S_BARRIER
128     $vgpr0 = FLAT_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $flat_scr
129     FLAT_STORE_DWORD $vgpr0_vgpr1, $vgpr0, 0, 0, implicit $exec, implicit $flat_scr
130     S_ENDPGM 0