brintos

brintos / llvm-project-archived public Read only

0
0
Text · 47.8 KiB · 37b5422 Raw
1544 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 42; RUN: llc -global-isel -new-reg-bank-select -stop-after=si-memory-legalizer -mtriple=amdgcn-amd- -mcpu=gfx600 < %s | FileCheck -check-prefix=GFX6 %s3; RUN: llc -global-isel -new-reg-bank-select -stop-after=si-memory-legalizer -mtriple=amdgcn-amd- -mcpu=gfx803 < %s | FileCheck -check-prefix=GFX8 %s4; RUN: llc -global-isel -new-reg-bank-select -stop-after=si-memory-legalizer -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 < %s | FileCheck -check-prefix=GFX8 %s5; RUN: llc -global-isel -new-reg-bank-select -stop-after=si-memory-legalizer -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1010 < %s | FileCheck -check-prefix=GFX10WGP %s6; RUN: llc -global-isel -new-reg-bank-select -stop-after=si-memory-legalizer -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1010 -mattr=+cumode < %s | FileCheck -check-prefix=GFX10CU %s7; RUN: llc -global-isel -new-reg-bank-select -stop-after=si-memory-legalizer -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1100 < %s | FileCheck -check-prefix=GFX11WGP %s8; RUN: llc -global-isel -new-reg-bank-select -stop-after=si-memory-legalizer -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1100 -mattr=+cumode < %s | FileCheck -check-prefix=GFX11CU %s9 10; Note: we use MIR test checks + stop after legalizer to prevent11; tests from being optimized out.12 13define amdgpu_kernel void @system_one_as_acquire() #0 {14  ; GFX6-LABEL: name: system_one_as_acquire15  ; GFX6: bb.0.entry:16  ; GFX6-NEXT:   S_WAITCNT_soft 395217  ; GFX6-NEXT:   BUFFER_WBINVL1 implicit $exec18  ; GFX6-NEXT:   S_ENDPGM 019  ;20  ; GFX8-LABEL: name: system_one_as_acquire21  ; GFX8: bb.0.entry:22  ; GFX8-NEXT:   S_WAITCNT_soft 395223  ; GFX8-NEXT:   BUFFER_WBINVL1_VOL implicit $exec24  ; GFX8-NEXT:   S_ENDPGM 025  ;26  ; GFX10WGP-LABEL: name: system_one_as_acquire27  ; GFX10WGP: bb.0.entry:28  ; GFX10WGP-NEXT:   S_WAITCNT_soft 1624029  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 030  ; GFX10WGP-NEXT:   BUFFER_GL1_INV implicit $exec31  ; GFX10WGP-NEXT:   BUFFER_GL0_INV implicit $exec32  ; GFX10WGP-NEXT:   S_ENDPGM 033  ;34  ; GFX10CU-LABEL: name: system_one_as_acquire35  ; GFX10CU: bb.0.entry:36  ; GFX10CU-NEXT:   S_WAITCNT_soft 1624037  ; GFX10CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 038  ; GFX10CU-NEXT:   BUFFER_GL1_INV implicit $exec39  ; GFX10CU-NEXT:   BUFFER_GL0_INV implicit $exec40  ; GFX10CU-NEXT:   S_ENDPGM 041  ;42  ; GFX11WGP-LABEL: name: system_one_as_acquire43  ; GFX11WGP: bb.0.entry:44  ; GFX11WGP-NEXT:   S_WAITCNT_soft 101545  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 046  ; GFX11WGP-NEXT:   BUFFER_GL1_INV implicit $exec47  ; GFX11WGP-NEXT:   BUFFER_GL0_INV implicit $exec48  ; GFX11WGP-NEXT:   S_ENDPGM 049  ;50  ; GFX11CU-LABEL: name: system_one_as_acquire51  ; GFX11CU: bb.0.entry:52  ; GFX11CU-NEXT:   S_WAITCNT_soft 101553  ; GFX11CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 054  ; GFX11CU-NEXT:   BUFFER_GL1_INV implicit $exec55  ; GFX11CU-NEXT:   BUFFER_GL0_INV implicit $exec56  ; GFX11CU-NEXT:   S_ENDPGM 057entry:58  fence syncscope("one-as") acquire59  ret void60}61 62define amdgpu_kernel void @system_one_as_release() #0 {63  ; GFX6-LABEL: name: system_one_as_release64  ; GFX6: bb.0.entry:65  ; GFX6-NEXT:   S_WAITCNT_soft 395266  ; GFX6-NEXT:   S_ENDPGM 067  ;68  ; GFX8-LABEL: name: system_one_as_release69  ; GFX8: bb.0.entry:70  ; GFX8-NEXT:   S_WAITCNT_soft 395271  ; GFX8-NEXT:   S_ENDPGM 072  ;73  ; GFX10WGP-LABEL: name: system_one_as_release74  ; GFX10WGP: bb.0.entry:75  ; GFX10WGP-NEXT:   S_WAITCNT_soft 1624076  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 077  ; GFX10WGP-NEXT:   S_ENDPGM 078  ;79  ; GFX10CU-LABEL: name: system_one_as_release80  ; GFX10CU: bb.0.entry:81  ; GFX10CU-NEXT:   S_WAITCNT_soft 1624082  ; GFX10CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 083  ; GFX10CU-NEXT:   S_ENDPGM 084  ;85  ; GFX11WGP-LABEL: name: system_one_as_release86  ; GFX11WGP: bb.0.entry:87  ; GFX11WGP-NEXT:   S_WAITCNT_soft 101588  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 089  ; GFX11WGP-NEXT:   S_ENDPGM 090  ;91  ; GFX11CU-LABEL: name: system_one_as_release92  ; GFX11CU: bb.0.entry:93  ; GFX11CU-NEXT:   S_WAITCNT_soft 101594  ; GFX11CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 095  ; GFX11CU-NEXT:   S_ENDPGM 096entry:97  fence syncscope("one-as") release98  ret void99}100 101define amdgpu_kernel void @system_one_as_acq_rel() #0 {102  ; GFX6-LABEL: name: system_one_as_acq_rel103  ; GFX6: bb.0.entry:104  ; GFX6-NEXT:   S_WAITCNT_soft 3952105  ; GFX6-NEXT:   BUFFER_WBINVL1 implicit $exec106  ; GFX6-NEXT:   S_ENDPGM 0107  ;108  ; GFX8-LABEL: name: system_one_as_acq_rel109  ; GFX8: bb.0.entry:110  ; GFX8-NEXT:   S_WAITCNT_soft 3952111  ; GFX8-NEXT:   BUFFER_WBINVL1_VOL implicit $exec112  ; GFX8-NEXT:   S_ENDPGM 0113  ;114  ; GFX10WGP-LABEL: name: system_one_as_acq_rel115  ; GFX10WGP: bb.0.entry:116  ; GFX10WGP-NEXT:   S_WAITCNT_soft 16240117  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0118  ; GFX10WGP-NEXT:   BUFFER_GL1_INV implicit $exec119  ; GFX10WGP-NEXT:   BUFFER_GL0_INV implicit $exec120  ; GFX10WGP-NEXT:   S_ENDPGM 0121  ;122  ; GFX10CU-LABEL: name: system_one_as_acq_rel123  ; GFX10CU: bb.0.entry:124  ; GFX10CU-NEXT:   S_WAITCNT_soft 16240125  ; GFX10CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0126  ; GFX10CU-NEXT:   BUFFER_GL1_INV implicit $exec127  ; GFX10CU-NEXT:   BUFFER_GL0_INV implicit $exec128  ; GFX10CU-NEXT:   S_ENDPGM 0129  ;130  ; GFX11WGP-LABEL: name: system_one_as_acq_rel131  ; GFX11WGP: bb.0.entry:132  ; GFX11WGP-NEXT:   S_WAITCNT_soft 1015133  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0134  ; GFX11WGP-NEXT:   BUFFER_GL1_INV implicit $exec135  ; GFX11WGP-NEXT:   BUFFER_GL0_INV implicit $exec136  ; GFX11WGP-NEXT:   S_ENDPGM 0137  ;138  ; GFX11CU-LABEL: name: system_one_as_acq_rel139  ; GFX11CU: bb.0.entry:140  ; GFX11CU-NEXT:   S_WAITCNT_soft 1015141  ; GFX11CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0142  ; GFX11CU-NEXT:   BUFFER_GL1_INV implicit $exec143  ; GFX11CU-NEXT:   BUFFER_GL0_INV implicit $exec144  ; GFX11CU-NEXT:   S_ENDPGM 0145entry:146  fence syncscope("one-as") acq_rel147  ret void148}149 150define amdgpu_kernel void @system_one_as_seq_cst() #0 {151  ; GFX6-LABEL: name: system_one_as_seq_cst152  ; GFX6: bb.0.entry:153  ; GFX6-NEXT:   S_WAITCNT_soft 3952154  ; GFX6-NEXT:   BUFFER_WBINVL1 implicit $exec155  ; GFX6-NEXT:   S_ENDPGM 0156  ;157  ; GFX8-LABEL: name: system_one_as_seq_cst158  ; GFX8: bb.0.entry:159  ; GFX8-NEXT:   S_WAITCNT_soft 3952160  ; GFX8-NEXT:   BUFFER_WBINVL1_VOL implicit $exec161  ; GFX8-NEXT:   S_ENDPGM 0162  ;163  ; GFX10WGP-LABEL: name: system_one_as_seq_cst164  ; GFX10WGP: bb.0.entry:165  ; GFX10WGP-NEXT:   S_WAITCNT_soft 16240166  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0167  ; GFX10WGP-NEXT:   BUFFER_GL1_INV implicit $exec168  ; GFX10WGP-NEXT:   BUFFER_GL0_INV implicit $exec169  ; GFX10WGP-NEXT:   S_ENDPGM 0170  ;171  ; GFX10CU-LABEL: name: system_one_as_seq_cst172  ; GFX10CU: bb.0.entry:173  ; GFX10CU-NEXT:   S_WAITCNT_soft 16240174  ; GFX10CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0175  ; GFX10CU-NEXT:   BUFFER_GL1_INV implicit $exec176  ; GFX10CU-NEXT:   BUFFER_GL0_INV implicit $exec177  ; GFX10CU-NEXT:   S_ENDPGM 0178  ;179  ; GFX11WGP-LABEL: name: system_one_as_seq_cst180  ; GFX11WGP: bb.0.entry:181  ; GFX11WGP-NEXT:   S_WAITCNT_soft 1015182  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0183  ; GFX11WGP-NEXT:   BUFFER_GL1_INV implicit $exec184  ; GFX11WGP-NEXT:   BUFFER_GL0_INV implicit $exec185  ; GFX11WGP-NEXT:   S_ENDPGM 0186  ;187  ; GFX11CU-LABEL: name: system_one_as_seq_cst188  ; GFX11CU: bb.0.entry:189  ; GFX11CU-NEXT:   S_WAITCNT_soft 1015190  ; GFX11CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0191  ; GFX11CU-NEXT:   BUFFER_GL1_INV implicit $exec192  ; GFX11CU-NEXT:   BUFFER_GL0_INV implicit $exec193  ; GFX11CU-NEXT:   S_ENDPGM 0194entry:195  fence syncscope("one-as") seq_cst196  ret void197}198 199define amdgpu_kernel void @singlethread_one_as_acquire() #0 {200  ; GFX6-LABEL: name: singlethread_one_as_acquire201  ; GFX6: bb.0.entry:202  ; GFX6-NEXT:   S_ENDPGM 0203  ;204  ; GFX8-LABEL: name: singlethread_one_as_acquire205  ; GFX8: bb.0.entry:206  ; GFX8-NEXT:   S_ENDPGM 0207  ;208  ; GFX10WGP-LABEL: name: singlethread_one_as_acquire209  ; GFX10WGP: bb.0.entry:210  ; GFX10WGP-NEXT:   S_ENDPGM 0211  ;212  ; GFX10CU-LABEL: name: singlethread_one_as_acquire213  ; GFX10CU: bb.0.entry:214  ; GFX10CU-NEXT:   S_ENDPGM 0215  ;216  ; GFX11WGP-LABEL: name: singlethread_one_as_acquire217  ; GFX11WGP: bb.0.entry:218  ; GFX11WGP-NEXT:   S_ENDPGM 0219  ;220  ; GFX11CU-LABEL: name: singlethread_one_as_acquire221  ; GFX11CU: bb.0.entry:222  ; GFX11CU-NEXT:   S_ENDPGM 0223entry:224  fence syncscope("singlethread-one-as") acquire225  ret void226}227 228define amdgpu_kernel void @singlethread_one_as_release() #0 {229  ; GFX6-LABEL: name: singlethread_one_as_release230  ; GFX6: bb.0.entry:231  ; GFX6-NEXT:   S_ENDPGM 0232  ;233  ; GFX8-LABEL: name: singlethread_one_as_release234  ; GFX8: bb.0.entry:235  ; GFX8-NEXT:   S_ENDPGM 0236  ;237  ; GFX10WGP-LABEL: name: singlethread_one_as_release238  ; GFX10WGP: bb.0.entry:239  ; GFX10WGP-NEXT:   S_ENDPGM 0240  ;241  ; GFX10CU-LABEL: name: singlethread_one_as_release242  ; GFX10CU: bb.0.entry:243  ; GFX10CU-NEXT:   S_ENDPGM 0244  ;245  ; GFX11WGP-LABEL: name: singlethread_one_as_release246  ; GFX11WGP: bb.0.entry:247  ; GFX11WGP-NEXT:   S_ENDPGM 0248  ;249  ; GFX11CU-LABEL: name: singlethread_one_as_release250  ; GFX11CU: bb.0.entry:251  ; GFX11CU-NEXT:   S_ENDPGM 0252entry:253  fence syncscope("singlethread-one-as") release254  ret void255}256 257define amdgpu_kernel void @singlethread_one_as_acq_rel() #0 {258  ; GFX6-LABEL: name: singlethread_one_as_acq_rel259  ; GFX6: bb.0.entry:260  ; GFX6-NEXT:   S_ENDPGM 0261  ;262  ; GFX8-LABEL: name: singlethread_one_as_acq_rel263  ; GFX8: bb.0.entry:264  ; GFX8-NEXT:   S_ENDPGM 0265  ;266  ; GFX10WGP-LABEL: name: singlethread_one_as_acq_rel267  ; GFX10WGP: bb.0.entry:268  ; GFX10WGP-NEXT:   S_ENDPGM 0269  ;270  ; GFX10CU-LABEL: name: singlethread_one_as_acq_rel271  ; GFX10CU: bb.0.entry:272  ; GFX10CU-NEXT:   S_ENDPGM 0273  ;274  ; GFX11WGP-LABEL: name: singlethread_one_as_acq_rel275  ; GFX11WGP: bb.0.entry:276  ; GFX11WGP-NEXT:   S_ENDPGM 0277  ;278  ; GFX11CU-LABEL: name: singlethread_one_as_acq_rel279  ; GFX11CU: bb.0.entry:280  ; GFX11CU-NEXT:   S_ENDPGM 0281entry:282  fence syncscope("singlethread-one-as") acq_rel283  ret void284}285 286define amdgpu_kernel void @singlethread_one_as_seq_cst() #0 {287  ; GFX6-LABEL: name: singlethread_one_as_seq_cst288  ; GFX6: bb.0.entry:289  ; GFX6-NEXT:   S_ENDPGM 0290  ;291  ; GFX8-LABEL: name: singlethread_one_as_seq_cst292  ; GFX8: bb.0.entry:293  ; GFX8-NEXT:   S_ENDPGM 0294  ;295  ; GFX10WGP-LABEL: name: singlethread_one_as_seq_cst296  ; GFX10WGP: bb.0.entry:297  ; GFX10WGP-NEXT:   S_ENDPGM 0298  ;299  ; GFX10CU-LABEL: name: singlethread_one_as_seq_cst300  ; GFX10CU: bb.0.entry:301  ; GFX10CU-NEXT:   S_ENDPGM 0302  ;303  ; GFX11WGP-LABEL: name: singlethread_one_as_seq_cst304  ; GFX11WGP: bb.0.entry:305  ; GFX11WGP-NEXT:   S_ENDPGM 0306  ;307  ; GFX11CU-LABEL: name: singlethread_one_as_seq_cst308  ; GFX11CU: bb.0.entry:309  ; GFX11CU-NEXT:   S_ENDPGM 0310entry:311  fence syncscope("singlethread-one-as") seq_cst312  ret void313}314 315define amdgpu_kernel void @agent_one_as_acquire() #0 {316  ; GFX6-LABEL: name: agent_one_as_acquire317  ; GFX6: bb.0.entry:318  ; GFX6-NEXT:   S_WAITCNT_soft 3952319  ; GFX6-NEXT:   BUFFER_WBINVL1 implicit $exec320  ; GFX6-NEXT:   S_ENDPGM 0321  ;322  ; GFX8-LABEL: name: agent_one_as_acquire323  ; GFX8: bb.0.entry:324  ; GFX8-NEXT:   S_WAITCNT_soft 3952325  ; GFX8-NEXT:   BUFFER_WBINVL1_VOL implicit $exec326  ; GFX8-NEXT:   S_ENDPGM 0327  ;328  ; GFX10WGP-LABEL: name: agent_one_as_acquire329  ; GFX10WGP: bb.0.entry:330  ; GFX10WGP-NEXT:   S_WAITCNT_soft 16240331  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0332  ; GFX10WGP-NEXT:   BUFFER_GL1_INV implicit $exec333  ; GFX10WGP-NEXT:   BUFFER_GL0_INV implicit $exec334  ; GFX10WGP-NEXT:   S_ENDPGM 0335  ;336  ; GFX10CU-LABEL: name: agent_one_as_acquire337  ; GFX10CU: bb.0.entry:338  ; GFX10CU-NEXT:   S_WAITCNT_soft 16240339  ; GFX10CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0340  ; GFX10CU-NEXT:   BUFFER_GL1_INV implicit $exec341  ; GFX10CU-NEXT:   BUFFER_GL0_INV implicit $exec342  ; GFX10CU-NEXT:   S_ENDPGM 0343  ;344  ; GFX11WGP-LABEL: name: agent_one_as_acquire345  ; GFX11WGP: bb.0.entry:346  ; GFX11WGP-NEXT:   S_WAITCNT_soft 1015347  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0348  ; GFX11WGP-NEXT:   BUFFER_GL1_INV implicit $exec349  ; GFX11WGP-NEXT:   BUFFER_GL0_INV implicit $exec350  ; GFX11WGP-NEXT:   S_ENDPGM 0351  ;352  ; GFX11CU-LABEL: name: agent_one_as_acquire353  ; GFX11CU: bb.0.entry:354  ; GFX11CU-NEXT:   S_WAITCNT_soft 1015355  ; GFX11CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0356  ; GFX11CU-NEXT:   BUFFER_GL1_INV implicit $exec357  ; GFX11CU-NEXT:   BUFFER_GL0_INV implicit $exec358  ; GFX11CU-NEXT:   S_ENDPGM 0359entry:360  fence syncscope("agent-one-as") acquire361  ret void362}363 364define amdgpu_kernel void @agent_one_as_release() #0 {365  ; GFX6-LABEL: name: agent_one_as_release366  ; GFX6: bb.0.entry:367  ; GFX6-NEXT:   S_WAITCNT_soft 3952368  ; GFX6-NEXT:   S_ENDPGM 0369  ;370  ; GFX8-LABEL: name: agent_one_as_release371  ; GFX8: bb.0.entry:372  ; GFX8-NEXT:   S_WAITCNT_soft 3952373  ; GFX8-NEXT:   S_ENDPGM 0374  ;375  ; GFX10WGP-LABEL: name: agent_one_as_release376  ; GFX10WGP: bb.0.entry:377  ; GFX10WGP-NEXT:   S_WAITCNT_soft 16240378  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0379  ; GFX10WGP-NEXT:   S_ENDPGM 0380  ;381  ; GFX10CU-LABEL: name: agent_one_as_release382  ; GFX10CU: bb.0.entry:383  ; GFX10CU-NEXT:   S_WAITCNT_soft 16240384  ; GFX10CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0385  ; GFX10CU-NEXT:   S_ENDPGM 0386  ;387  ; GFX11WGP-LABEL: name: agent_one_as_release388  ; GFX11WGP: bb.0.entry:389  ; GFX11WGP-NEXT:   S_WAITCNT_soft 1015390  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0391  ; GFX11WGP-NEXT:   S_ENDPGM 0392  ;393  ; GFX11CU-LABEL: name: agent_one_as_release394  ; GFX11CU: bb.0.entry:395  ; GFX11CU-NEXT:   S_WAITCNT_soft 1015396  ; GFX11CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0397  ; GFX11CU-NEXT:   S_ENDPGM 0398entry:399  fence syncscope("agent-one-as") release400  ret void401}402 403define amdgpu_kernel void @agent_one_as_acq_rel() #0 {404  ; GFX6-LABEL: name: agent_one_as_acq_rel405  ; GFX6: bb.0.entry:406  ; GFX6-NEXT:   S_WAITCNT_soft 3952407  ; GFX6-NEXT:   BUFFER_WBINVL1 implicit $exec408  ; GFX6-NEXT:   S_ENDPGM 0409  ;410  ; GFX8-LABEL: name: agent_one_as_acq_rel411  ; GFX8: bb.0.entry:412  ; GFX8-NEXT:   S_WAITCNT_soft 3952413  ; GFX8-NEXT:   BUFFER_WBINVL1_VOL implicit $exec414  ; GFX8-NEXT:   S_ENDPGM 0415  ;416  ; GFX10WGP-LABEL: name: agent_one_as_acq_rel417  ; GFX10WGP: bb.0.entry:418  ; GFX10WGP-NEXT:   S_WAITCNT_soft 16240419  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0420  ; GFX10WGP-NEXT:   BUFFER_GL1_INV implicit $exec421  ; GFX10WGP-NEXT:   BUFFER_GL0_INV implicit $exec422  ; GFX10WGP-NEXT:   S_ENDPGM 0423  ;424  ; GFX10CU-LABEL: name: agent_one_as_acq_rel425  ; GFX10CU: bb.0.entry:426  ; GFX10CU-NEXT:   S_WAITCNT_soft 16240427  ; GFX10CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0428  ; GFX10CU-NEXT:   BUFFER_GL1_INV implicit $exec429  ; GFX10CU-NEXT:   BUFFER_GL0_INV implicit $exec430  ; GFX10CU-NEXT:   S_ENDPGM 0431  ;432  ; GFX11WGP-LABEL: name: agent_one_as_acq_rel433  ; GFX11WGP: bb.0.entry:434  ; GFX11WGP-NEXT:   S_WAITCNT_soft 1015435  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0436  ; GFX11WGP-NEXT:   BUFFER_GL1_INV implicit $exec437  ; GFX11WGP-NEXT:   BUFFER_GL0_INV implicit $exec438  ; GFX11WGP-NEXT:   S_ENDPGM 0439  ;440  ; GFX11CU-LABEL: name: agent_one_as_acq_rel441  ; GFX11CU: bb.0.entry:442  ; GFX11CU-NEXT:   S_WAITCNT_soft 1015443  ; GFX11CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0444  ; GFX11CU-NEXT:   BUFFER_GL1_INV implicit $exec445  ; GFX11CU-NEXT:   BUFFER_GL0_INV implicit $exec446  ; GFX11CU-NEXT:   S_ENDPGM 0447entry:448  fence syncscope("agent-one-as") acq_rel449  ret void450}451 452define amdgpu_kernel void @agent_one_as_seq_cst() #0 {453  ; GFX6-LABEL: name: agent_one_as_seq_cst454  ; GFX6: bb.0.entry:455  ; GFX6-NEXT:   S_WAITCNT_soft 3952456  ; GFX6-NEXT:   BUFFER_WBINVL1 implicit $exec457  ; GFX6-NEXT:   S_ENDPGM 0458  ;459  ; GFX8-LABEL: name: agent_one_as_seq_cst460  ; GFX8: bb.0.entry:461  ; GFX8-NEXT:   S_WAITCNT_soft 3952462  ; GFX8-NEXT:   BUFFER_WBINVL1_VOL implicit $exec463  ; GFX8-NEXT:   S_ENDPGM 0464  ;465  ; GFX10WGP-LABEL: name: agent_one_as_seq_cst466  ; GFX10WGP: bb.0.entry:467  ; GFX10WGP-NEXT:   S_WAITCNT_soft 16240468  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0469  ; GFX10WGP-NEXT:   BUFFER_GL1_INV implicit $exec470  ; GFX10WGP-NEXT:   BUFFER_GL0_INV implicit $exec471  ; GFX10WGP-NEXT:   S_ENDPGM 0472  ;473  ; GFX10CU-LABEL: name: agent_one_as_seq_cst474  ; GFX10CU: bb.0.entry:475  ; GFX10CU-NEXT:   S_WAITCNT_soft 16240476  ; GFX10CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0477  ; GFX10CU-NEXT:   BUFFER_GL1_INV implicit $exec478  ; GFX10CU-NEXT:   BUFFER_GL0_INV implicit $exec479  ; GFX10CU-NEXT:   S_ENDPGM 0480  ;481  ; GFX11WGP-LABEL: name: agent_one_as_seq_cst482  ; GFX11WGP: bb.0.entry:483  ; GFX11WGP-NEXT:   S_WAITCNT_soft 1015484  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0485  ; GFX11WGP-NEXT:   BUFFER_GL1_INV implicit $exec486  ; GFX11WGP-NEXT:   BUFFER_GL0_INV implicit $exec487  ; GFX11WGP-NEXT:   S_ENDPGM 0488  ;489  ; GFX11CU-LABEL: name: agent_one_as_seq_cst490  ; GFX11CU: bb.0.entry:491  ; GFX11CU-NEXT:   S_WAITCNT_soft 1015492  ; GFX11CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0493  ; GFX11CU-NEXT:   BUFFER_GL1_INV implicit $exec494  ; GFX11CU-NEXT:   BUFFER_GL0_INV implicit $exec495  ; GFX11CU-NEXT:   S_ENDPGM 0496entry:497  fence syncscope("agent-one-as") seq_cst498  ret void499}500 501define amdgpu_kernel void @workgroup_one_as_acquire() #0 {502  ; GFX6-LABEL: name: workgroup_one_as_acquire503  ; GFX6: bb.0.entry:504  ; GFX6-NEXT:   S_ENDPGM 0505  ;506  ; GFX8-LABEL: name: workgroup_one_as_acquire507  ; GFX8: bb.0.entry:508  ; GFX8-NEXT:   S_ENDPGM 0509  ;510  ; GFX10WGP-LABEL: name: workgroup_one_as_acquire511  ; GFX10WGP: bb.0.entry:512  ; GFX10WGP-NEXT:   S_WAITCNT_soft 16240513  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0514  ; GFX10WGP-NEXT:   BUFFER_GL0_INV implicit $exec515  ; GFX10WGP-NEXT:   S_ENDPGM 0516  ;517  ; GFX10CU-LABEL: name: workgroup_one_as_acquire518  ; GFX10CU: bb.0.entry:519  ; GFX10CU-NEXT:   S_ENDPGM 0520  ;521  ; GFX11WGP-LABEL: name: workgroup_one_as_acquire522  ; GFX11WGP: bb.0.entry:523  ; GFX11WGP-NEXT:   S_WAITCNT_soft 1015524  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0525  ; GFX11WGP-NEXT:   BUFFER_GL0_INV implicit $exec526  ; GFX11WGP-NEXT:   S_ENDPGM 0527  ;528  ; GFX11CU-LABEL: name: workgroup_one_as_acquire529  ; GFX11CU: bb.0.entry:530  ; GFX11CU-NEXT:   S_ENDPGM 0531entry:532  fence syncscope("workgroup-one-as") acquire533  ret void534}535 536define amdgpu_kernel void @workgroup_one_as_release() #0 {537  ; GFX6-LABEL: name: workgroup_one_as_release538  ; GFX6: bb.0.entry:539  ; GFX6-NEXT:   S_ENDPGM 0540  ;541  ; GFX8-LABEL: name: workgroup_one_as_release542  ; GFX8: bb.0.entry:543  ; GFX8-NEXT:   S_ENDPGM 0544  ;545  ; GFX10WGP-LABEL: name: workgroup_one_as_release546  ; GFX10WGP: bb.0.entry:547  ; GFX10WGP-NEXT:   S_WAITCNT_soft 16240548  ; GFX10WGP-NEXT:   S_WAITCNT_lds_direct549  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0550  ; GFX10WGP-NEXT:   S_ENDPGM 0551  ;552  ; GFX10CU-LABEL: name: workgroup_one_as_release553  ; GFX10CU: bb.0.entry:554  ; GFX10CU-NEXT:   S_WAITCNT_soft 16240555  ; GFX10CU-NEXT:   S_WAITCNT_lds_direct556  ; GFX10CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0557  ; GFX10CU-NEXT:   S_ENDPGM 0558  ;559  ; GFX11WGP-LABEL: name: workgroup_one_as_release560  ; GFX11WGP: bb.0.entry:561  ; GFX11WGP-NEXT:   S_WAITCNT_soft 1015562  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0563  ; GFX11WGP-NEXT:   S_ENDPGM 0564  ;565  ; GFX11CU-LABEL: name: workgroup_one_as_release566  ; GFX11CU: bb.0.entry:567  ; GFX11CU-NEXT:   S_WAITCNT_soft 1015568  ; GFX11CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0569  ; GFX11CU-NEXT:   S_ENDPGM 0570entry:571  fence syncscope("workgroup-one-as") release572  ret void573}574 575define amdgpu_kernel void @workgroup_one_as_acq_rel() #0 {576  ; GFX6-LABEL: name: workgroup_one_as_acq_rel577  ; GFX6: bb.0.entry:578  ; GFX6-NEXT:   S_ENDPGM 0579  ;580  ; GFX8-LABEL: name: workgroup_one_as_acq_rel581  ; GFX8: bb.0.entry:582  ; GFX8-NEXT:   S_ENDPGM 0583  ;584  ; GFX10WGP-LABEL: name: workgroup_one_as_acq_rel585  ; GFX10WGP: bb.0.entry:586  ; GFX10WGP-NEXT:   S_WAITCNT_soft 16240587  ; GFX10WGP-NEXT:   S_WAITCNT_lds_direct588  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0589  ; GFX10WGP-NEXT:   BUFFER_GL0_INV implicit $exec590  ; GFX10WGP-NEXT:   S_ENDPGM 0591  ;592  ; GFX10CU-LABEL: name: workgroup_one_as_acq_rel593  ; GFX10CU: bb.0.entry:594  ; GFX10CU-NEXT:   S_WAITCNT_soft 16240595  ; GFX10CU-NEXT:   S_WAITCNT_lds_direct596  ; GFX10CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0597  ; GFX10CU-NEXT:   S_ENDPGM 0598  ;599  ; GFX11WGP-LABEL: name: workgroup_one_as_acq_rel600  ; GFX11WGP: bb.0.entry:601  ; GFX11WGP-NEXT:   S_WAITCNT_soft 1015602  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0603  ; GFX11WGP-NEXT:   BUFFER_GL0_INV implicit $exec604  ; GFX11WGP-NEXT:   S_ENDPGM 0605  ;606  ; GFX11CU-LABEL: name: workgroup_one_as_acq_rel607  ; GFX11CU: bb.0.entry:608  ; GFX11CU-NEXT:   S_WAITCNT_soft 1015609  ; GFX11CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0610  ; GFX11CU-NEXT:   S_ENDPGM 0611entry:612  fence syncscope("workgroup-one-as") acq_rel613  ret void614}615 616define amdgpu_kernel void @workgroup_one_as_seq_cst() #0 {617  ; GFX6-LABEL: name: workgroup_one_as_seq_cst618  ; GFX6: bb.0.entry:619  ; GFX6-NEXT:   S_ENDPGM 0620  ;621  ; GFX8-LABEL: name: workgroup_one_as_seq_cst622  ; GFX8: bb.0.entry:623  ; GFX8-NEXT:   S_ENDPGM 0624  ;625  ; GFX10WGP-LABEL: name: workgroup_one_as_seq_cst626  ; GFX10WGP: bb.0.entry:627  ; GFX10WGP-NEXT:   S_WAITCNT_soft 16240628  ; GFX10WGP-NEXT:   S_WAITCNT_lds_direct629  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0630  ; GFX10WGP-NEXT:   BUFFER_GL0_INV implicit $exec631  ; GFX10WGP-NEXT:   S_ENDPGM 0632  ;633  ; GFX10CU-LABEL: name: workgroup_one_as_seq_cst634  ; GFX10CU: bb.0.entry:635  ; GFX10CU-NEXT:   S_WAITCNT_soft 16240636  ; GFX10CU-NEXT:   S_WAITCNT_lds_direct637  ; GFX10CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0638  ; GFX10CU-NEXT:   S_ENDPGM 0639  ;640  ; GFX11WGP-LABEL: name: workgroup_one_as_seq_cst641  ; GFX11WGP: bb.0.entry:642  ; GFX11WGP-NEXT:   S_WAITCNT_soft 1015643  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0644  ; GFX11WGP-NEXT:   BUFFER_GL0_INV implicit $exec645  ; GFX11WGP-NEXT:   S_ENDPGM 0646  ;647  ; GFX11CU-LABEL: name: workgroup_one_as_seq_cst648  ; GFX11CU: bb.0.entry:649  ; GFX11CU-NEXT:   S_WAITCNT_soft 1015650  ; GFX11CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0651  ; GFX11CU-NEXT:   S_ENDPGM 0652entry:653  fence syncscope("workgroup-one-as") seq_cst654  ret void655}656 657define amdgpu_kernel void @wavefront_one_as_acquire() #0 {658  ; GFX6-LABEL: name: wavefront_one_as_acquire659  ; GFX6: bb.0.entry:660  ; GFX6-NEXT:   S_ENDPGM 0661  ;662  ; GFX8-LABEL: name: wavefront_one_as_acquire663  ; GFX8: bb.0.entry:664  ; GFX8-NEXT:   S_ENDPGM 0665  ;666  ; GFX10WGP-LABEL: name: wavefront_one_as_acquire667  ; GFX10WGP: bb.0.entry:668  ; GFX10WGP-NEXT:   S_ENDPGM 0669  ;670  ; GFX10CU-LABEL: name: wavefront_one_as_acquire671  ; GFX10CU: bb.0.entry:672  ; GFX10CU-NEXT:   S_ENDPGM 0673  ;674  ; GFX11WGP-LABEL: name: wavefront_one_as_acquire675  ; GFX11WGP: bb.0.entry:676  ; GFX11WGP-NEXT:   S_ENDPGM 0677  ;678  ; GFX11CU-LABEL: name: wavefront_one_as_acquire679  ; GFX11CU: bb.0.entry:680  ; GFX11CU-NEXT:   S_ENDPGM 0681entry:682  fence syncscope("wavefront-one-as") acquire683  ret void684}685 686define amdgpu_kernel void @wavefront_one_as_release() #0 {687  ; GFX6-LABEL: name: wavefront_one_as_release688  ; GFX6: bb.0.entry:689  ; GFX6-NEXT:   S_ENDPGM 0690  ;691  ; GFX8-LABEL: name: wavefront_one_as_release692  ; GFX8: bb.0.entry:693  ; GFX8-NEXT:   S_ENDPGM 0694  ;695  ; GFX10WGP-LABEL: name: wavefront_one_as_release696  ; GFX10WGP: bb.0.entry:697  ; GFX10WGP-NEXT:   S_ENDPGM 0698  ;699  ; GFX10CU-LABEL: name: wavefront_one_as_release700  ; GFX10CU: bb.0.entry:701  ; GFX10CU-NEXT:   S_ENDPGM 0702  ;703  ; GFX11WGP-LABEL: name: wavefront_one_as_release704  ; GFX11WGP: bb.0.entry:705  ; GFX11WGP-NEXT:   S_ENDPGM 0706  ;707  ; GFX11CU-LABEL: name: wavefront_one_as_release708  ; GFX11CU: bb.0.entry:709  ; GFX11CU-NEXT:   S_ENDPGM 0710entry:711  fence syncscope("wavefront-one-as") release712  ret void713}714 715define amdgpu_kernel void @wavefront_one_as_acq_rel() #0 {716  ; GFX6-LABEL: name: wavefront_one_as_acq_rel717  ; GFX6: bb.0.entry:718  ; GFX6-NEXT:   S_ENDPGM 0719  ;720  ; GFX8-LABEL: name: wavefront_one_as_acq_rel721  ; GFX8: bb.0.entry:722  ; GFX8-NEXT:   S_ENDPGM 0723  ;724  ; GFX10WGP-LABEL: name: wavefront_one_as_acq_rel725  ; GFX10WGP: bb.0.entry:726  ; GFX10WGP-NEXT:   S_ENDPGM 0727  ;728  ; GFX10CU-LABEL: name: wavefront_one_as_acq_rel729  ; GFX10CU: bb.0.entry:730  ; GFX10CU-NEXT:   S_ENDPGM 0731  ;732  ; GFX11WGP-LABEL: name: wavefront_one_as_acq_rel733  ; GFX11WGP: bb.0.entry:734  ; GFX11WGP-NEXT:   S_ENDPGM 0735  ;736  ; GFX11CU-LABEL: name: wavefront_one_as_acq_rel737  ; GFX11CU: bb.0.entry:738  ; GFX11CU-NEXT:   S_ENDPGM 0739entry:740  fence syncscope("wavefront-one-as") acq_rel741  ret void742}743 744define amdgpu_kernel void @wavefront_one_as_seq_cst() #0 {745  ; GFX6-LABEL: name: wavefront_one_as_seq_cst746  ; GFX6: bb.0.entry:747  ; GFX6-NEXT:   S_ENDPGM 0748  ;749  ; GFX8-LABEL: name: wavefront_one_as_seq_cst750  ; GFX8: bb.0.entry:751  ; GFX8-NEXT:   S_ENDPGM 0752  ;753  ; GFX10WGP-LABEL: name: wavefront_one_as_seq_cst754  ; GFX10WGP: bb.0.entry:755  ; GFX10WGP-NEXT:   S_ENDPGM 0756  ;757  ; GFX10CU-LABEL: name: wavefront_one_as_seq_cst758  ; GFX10CU: bb.0.entry:759  ; GFX10CU-NEXT:   S_ENDPGM 0760  ;761  ; GFX11WGP-LABEL: name: wavefront_one_as_seq_cst762  ; GFX11WGP: bb.0.entry:763  ; GFX11WGP-NEXT:   S_ENDPGM 0764  ;765  ; GFX11CU-LABEL: name: wavefront_one_as_seq_cst766  ; GFX11CU: bb.0.entry:767  ; GFX11CU-NEXT:   S_ENDPGM 0768entry:769  fence syncscope("wavefront-one-as") seq_cst770  ret void771}772 773define amdgpu_kernel void @system_acquire() #0 {774  ; GFX6-LABEL: name: system_acquire775  ; GFX6: bb.0.entry:776  ; GFX6-NEXT:   S_WAITCNT_soft 112777  ; GFX6-NEXT:   BUFFER_WBINVL1 implicit $exec778  ; GFX6-NEXT:   S_ENDPGM 0779  ;780  ; GFX8-LABEL: name: system_acquire781  ; GFX8: bb.0.entry:782  ; GFX8-NEXT:   S_WAITCNT_soft 112783  ; GFX8-NEXT:   BUFFER_WBINVL1_VOL implicit $exec784  ; GFX8-NEXT:   S_ENDPGM 0785  ;786  ; GFX10WGP-LABEL: name: system_acquire787  ; GFX10WGP: bb.0.entry:788  ; GFX10WGP-NEXT:   S_WAITCNT_soft 112789  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0790  ; GFX10WGP-NEXT:   BUFFER_GL1_INV implicit $exec791  ; GFX10WGP-NEXT:   BUFFER_GL0_INV implicit $exec792  ; GFX10WGP-NEXT:   S_ENDPGM 0793  ;794  ; GFX10CU-LABEL: name: system_acquire795  ; GFX10CU: bb.0.entry:796  ; GFX10CU-NEXT:   S_WAITCNT_soft 112797  ; GFX10CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0798  ; GFX10CU-NEXT:   BUFFER_GL1_INV implicit $exec799  ; GFX10CU-NEXT:   BUFFER_GL0_INV implicit $exec800  ; GFX10CU-NEXT:   S_ENDPGM 0801  ;802  ; GFX11WGP-LABEL: name: system_acquire803  ; GFX11WGP: bb.0.entry:804  ; GFX11WGP-NEXT:   S_WAITCNT_soft 7805  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0806  ; GFX11WGP-NEXT:   BUFFER_GL1_INV implicit $exec807  ; GFX11WGP-NEXT:   BUFFER_GL0_INV implicit $exec808  ; GFX11WGP-NEXT:   S_ENDPGM 0809  ;810  ; GFX11CU-LABEL: name: system_acquire811  ; GFX11CU: bb.0.entry:812  ; GFX11CU-NEXT:   S_WAITCNT_soft 7813  ; GFX11CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0814  ; GFX11CU-NEXT:   BUFFER_GL1_INV implicit $exec815  ; GFX11CU-NEXT:   BUFFER_GL0_INV implicit $exec816  ; GFX11CU-NEXT:   S_ENDPGM 0817entry:818  fence acquire819  ret void820}821 822define amdgpu_kernel void @system_release() #0 {823  ; GFX6-LABEL: name: system_release824  ; GFX6: bb.0.entry:825  ; GFX6-NEXT:   S_WAITCNT_soft 112826  ; GFX6-NEXT:   S_ENDPGM 0827  ;828  ; GFX8-LABEL: name: system_release829  ; GFX8: bb.0.entry:830  ; GFX8-NEXT:   S_WAITCNT_soft 112831  ; GFX8-NEXT:   S_ENDPGM 0832  ;833  ; GFX10WGP-LABEL: name: system_release834  ; GFX10WGP: bb.0.entry:835  ; GFX10WGP-NEXT:   S_WAITCNT_soft 112836  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0837  ; GFX10WGP-NEXT:   S_ENDPGM 0838  ;839  ; GFX10CU-LABEL: name: system_release840  ; GFX10CU: bb.0.entry:841  ; GFX10CU-NEXT:   S_WAITCNT_soft 112842  ; GFX10CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0843  ; GFX10CU-NEXT:   S_ENDPGM 0844  ;845  ; GFX11WGP-LABEL: name: system_release846  ; GFX11WGP: bb.0.entry:847  ; GFX11WGP-NEXT:   S_WAITCNT_soft 7848  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0849  ; GFX11WGP-NEXT:   S_ENDPGM 0850  ;851  ; GFX11CU-LABEL: name: system_release852  ; GFX11CU: bb.0.entry:853  ; GFX11CU-NEXT:   S_WAITCNT_soft 7854  ; GFX11CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0855  ; GFX11CU-NEXT:   S_ENDPGM 0856entry:857  fence release858  ret void859}860 861define amdgpu_kernel void @system_acq_rel() #0 {862  ; GFX6-LABEL: name: system_acq_rel863  ; GFX6: bb.0.entry:864  ; GFX6-NEXT:   S_WAITCNT_soft 112865  ; GFX6-NEXT:   BUFFER_WBINVL1 implicit $exec866  ; GFX6-NEXT:   S_ENDPGM 0867  ;868  ; GFX8-LABEL: name: system_acq_rel869  ; GFX8: bb.0.entry:870  ; GFX8-NEXT:   S_WAITCNT_soft 112871  ; GFX8-NEXT:   BUFFER_WBINVL1_VOL implicit $exec872  ; GFX8-NEXT:   S_ENDPGM 0873  ;874  ; GFX10WGP-LABEL: name: system_acq_rel875  ; GFX10WGP: bb.0.entry:876  ; GFX10WGP-NEXT:   S_WAITCNT_soft 112877  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0878  ; GFX10WGP-NEXT:   BUFFER_GL1_INV implicit $exec879  ; GFX10WGP-NEXT:   BUFFER_GL0_INV implicit $exec880  ; GFX10WGP-NEXT:   S_ENDPGM 0881  ;882  ; GFX10CU-LABEL: name: system_acq_rel883  ; GFX10CU: bb.0.entry:884  ; GFX10CU-NEXT:   S_WAITCNT_soft 112885  ; GFX10CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0886  ; GFX10CU-NEXT:   BUFFER_GL1_INV implicit $exec887  ; GFX10CU-NEXT:   BUFFER_GL0_INV implicit $exec888  ; GFX10CU-NEXT:   S_ENDPGM 0889  ;890  ; GFX11WGP-LABEL: name: system_acq_rel891  ; GFX11WGP: bb.0.entry:892  ; GFX11WGP-NEXT:   S_WAITCNT_soft 7893  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0894  ; GFX11WGP-NEXT:   BUFFER_GL1_INV implicit $exec895  ; GFX11WGP-NEXT:   BUFFER_GL0_INV implicit $exec896  ; GFX11WGP-NEXT:   S_ENDPGM 0897  ;898  ; GFX11CU-LABEL: name: system_acq_rel899  ; GFX11CU: bb.0.entry:900  ; GFX11CU-NEXT:   S_WAITCNT_soft 7901  ; GFX11CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0902  ; GFX11CU-NEXT:   BUFFER_GL1_INV implicit $exec903  ; GFX11CU-NEXT:   BUFFER_GL0_INV implicit $exec904  ; GFX11CU-NEXT:   S_ENDPGM 0905entry:906  fence acq_rel907  ret void908}909 910define amdgpu_kernel void @system_seq_cst() #0 {911  ; GFX6-LABEL: name: system_seq_cst912  ; GFX6: bb.0.entry:913  ; GFX6-NEXT:   S_WAITCNT_soft 112914  ; GFX6-NEXT:   BUFFER_WBINVL1 implicit $exec915  ; GFX6-NEXT:   S_ENDPGM 0916  ;917  ; GFX8-LABEL: name: system_seq_cst918  ; GFX8: bb.0.entry:919  ; GFX8-NEXT:   S_WAITCNT_soft 112920  ; GFX8-NEXT:   BUFFER_WBINVL1_VOL implicit $exec921  ; GFX8-NEXT:   S_ENDPGM 0922  ;923  ; GFX10WGP-LABEL: name: system_seq_cst924  ; GFX10WGP: bb.0.entry:925  ; GFX10WGP-NEXT:   S_WAITCNT_soft 112926  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0927  ; GFX10WGP-NEXT:   BUFFER_GL1_INV implicit $exec928  ; GFX10WGP-NEXT:   BUFFER_GL0_INV implicit $exec929  ; GFX10WGP-NEXT:   S_ENDPGM 0930  ;931  ; GFX10CU-LABEL: name: system_seq_cst932  ; GFX10CU: bb.0.entry:933  ; GFX10CU-NEXT:   S_WAITCNT_soft 112934  ; GFX10CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0935  ; GFX10CU-NEXT:   BUFFER_GL1_INV implicit $exec936  ; GFX10CU-NEXT:   BUFFER_GL0_INV implicit $exec937  ; GFX10CU-NEXT:   S_ENDPGM 0938  ;939  ; GFX11WGP-LABEL: name: system_seq_cst940  ; GFX11WGP: bb.0.entry:941  ; GFX11WGP-NEXT:   S_WAITCNT_soft 7942  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0943  ; GFX11WGP-NEXT:   BUFFER_GL1_INV implicit $exec944  ; GFX11WGP-NEXT:   BUFFER_GL0_INV implicit $exec945  ; GFX11WGP-NEXT:   S_ENDPGM 0946  ;947  ; GFX11CU-LABEL: name: system_seq_cst948  ; GFX11CU: bb.0.entry:949  ; GFX11CU-NEXT:   S_WAITCNT_soft 7950  ; GFX11CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 0951  ; GFX11CU-NEXT:   BUFFER_GL1_INV implicit $exec952  ; GFX11CU-NEXT:   BUFFER_GL0_INV implicit $exec953  ; GFX11CU-NEXT:   S_ENDPGM 0954entry:955  fence seq_cst956  ret void957}958 959define amdgpu_kernel void @singlethread_acquire() #0 {960  ; GFX6-LABEL: name: singlethread_acquire961  ; GFX6: bb.0.entry:962  ; GFX6-NEXT:   S_ENDPGM 0963  ;964  ; GFX8-LABEL: name: singlethread_acquire965  ; GFX8: bb.0.entry:966  ; GFX8-NEXT:   S_ENDPGM 0967  ;968  ; GFX10WGP-LABEL: name: singlethread_acquire969  ; GFX10WGP: bb.0.entry:970  ; GFX10WGP-NEXT:   S_ENDPGM 0971  ;972  ; GFX10CU-LABEL: name: singlethread_acquire973  ; GFX10CU: bb.0.entry:974  ; GFX10CU-NEXT:   S_ENDPGM 0975  ;976  ; GFX11WGP-LABEL: name: singlethread_acquire977  ; GFX11WGP: bb.0.entry:978  ; GFX11WGP-NEXT:   S_ENDPGM 0979  ;980  ; GFX11CU-LABEL: name: singlethread_acquire981  ; GFX11CU: bb.0.entry:982  ; GFX11CU-NEXT:   S_ENDPGM 0983entry:984  fence syncscope("singlethread") acquire985  ret void986}987 988define amdgpu_kernel void @singlethread_release() #0 {989  ; GFX6-LABEL: name: singlethread_release990  ; GFX6: bb.0.entry:991  ; GFX6-NEXT:   S_ENDPGM 0992  ;993  ; GFX8-LABEL: name: singlethread_release994  ; GFX8: bb.0.entry:995  ; GFX8-NEXT:   S_ENDPGM 0996  ;997  ; GFX10WGP-LABEL: name: singlethread_release998  ; GFX10WGP: bb.0.entry:999  ; GFX10WGP-NEXT:   S_ENDPGM 01000  ;1001  ; GFX10CU-LABEL: name: singlethread_release1002  ; GFX10CU: bb.0.entry:1003  ; GFX10CU-NEXT:   S_ENDPGM 01004  ;1005  ; GFX11WGP-LABEL: name: singlethread_release1006  ; GFX11WGP: bb.0.entry:1007  ; GFX11WGP-NEXT:   S_ENDPGM 01008  ;1009  ; GFX11CU-LABEL: name: singlethread_release1010  ; GFX11CU: bb.0.entry:1011  ; GFX11CU-NEXT:   S_ENDPGM 01012entry:1013  fence syncscope("singlethread") release1014  ret void1015}1016 1017define amdgpu_kernel void @singlethread_acq_rel() #0 {1018  ; GFX6-LABEL: name: singlethread_acq_rel1019  ; GFX6: bb.0.entry:1020  ; GFX6-NEXT:   S_ENDPGM 01021  ;1022  ; GFX8-LABEL: name: singlethread_acq_rel1023  ; GFX8: bb.0.entry:1024  ; GFX8-NEXT:   S_ENDPGM 01025  ;1026  ; GFX10WGP-LABEL: name: singlethread_acq_rel1027  ; GFX10WGP: bb.0.entry:1028  ; GFX10WGP-NEXT:   S_ENDPGM 01029  ;1030  ; GFX10CU-LABEL: name: singlethread_acq_rel1031  ; GFX10CU: bb.0.entry:1032  ; GFX10CU-NEXT:   S_ENDPGM 01033  ;1034  ; GFX11WGP-LABEL: name: singlethread_acq_rel1035  ; GFX11WGP: bb.0.entry:1036  ; GFX11WGP-NEXT:   S_ENDPGM 01037  ;1038  ; GFX11CU-LABEL: name: singlethread_acq_rel1039  ; GFX11CU: bb.0.entry:1040  ; GFX11CU-NEXT:   S_ENDPGM 01041entry:1042  fence syncscope("singlethread") acq_rel1043  ret void1044}1045 1046define amdgpu_kernel void @singlethread_seq_cst() #0 {1047  ; GFX6-LABEL: name: singlethread_seq_cst1048  ; GFX6: bb.0.entry:1049  ; GFX6-NEXT:   S_ENDPGM 01050  ;1051  ; GFX8-LABEL: name: singlethread_seq_cst1052  ; GFX8: bb.0.entry:1053  ; GFX8-NEXT:   S_ENDPGM 01054  ;1055  ; GFX10WGP-LABEL: name: singlethread_seq_cst1056  ; GFX10WGP: bb.0.entry:1057  ; GFX10WGP-NEXT:   S_ENDPGM 01058  ;1059  ; GFX10CU-LABEL: name: singlethread_seq_cst1060  ; GFX10CU: bb.0.entry:1061  ; GFX10CU-NEXT:   S_ENDPGM 01062  ;1063  ; GFX11WGP-LABEL: name: singlethread_seq_cst1064  ; GFX11WGP: bb.0.entry:1065  ; GFX11WGP-NEXT:   S_ENDPGM 01066  ;1067  ; GFX11CU-LABEL: name: singlethread_seq_cst1068  ; GFX11CU: bb.0.entry:1069  ; GFX11CU-NEXT:   S_ENDPGM 01070entry:1071  fence syncscope("singlethread") seq_cst1072  ret void1073}1074 1075define amdgpu_kernel void @agent_acquire() #0 {1076  ; GFX6-LABEL: name: agent_acquire1077  ; GFX6: bb.0.entry:1078  ; GFX6-NEXT:   S_WAITCNT_soft 1121079  ; GFX6-NEXT:   BUFFER_WBINVL1 implicit $exec1080  ; GFX6-NEXT:   S_ENDPGM 01081  ;1082  ; GFX8-LABEL: name: agent_acquire1083  ; GFX8: bb.0.entry:1084  ; GFX8-NEXT:   S_WAITCNT_soft 1121085  ; GFX8-NEXT:   BUFFER_WBINVL1_VOL implicit $exec1086  ; GFX8-NEXT:   S_ENDPGM 01087  ;1088  ; GFX10WGP-LABEL: name: agent_acquire1089  ; GFX10WGP: bb.0.entry:1090  ; GFX10WGP-NEXT:   S_WAITCNT_soft 1121091  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01092  ; GFX10WGP-NEXT:   BUFFER_GL1_INV implicit $exec1093  ; GFX10WGP-NEXT:   BUFFER_GL0_INV implicit $exec1094  ; GFX10WGP-NEXT:   S_ENDPGM 01095  ;1096  ; GFX10CU-LABEL: name: agent_acquire1097  ; GFX10CU: bb.0.entry:1098  ; GFX10CU-NEXT:   S_WAITCNT_soft 1121099  ; GFX10CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01100  ; GFX10CU-NEXT:   BUFFER_GL1_INV implicit $exec1101  ; GFX10CU-NEXT:   BUFFER_GL0_INV implicit $exec1102  ; GFX10CU-NEXT:   S_ENDPGM 01103  ;1104  ; GFX11WGP-LABEL: name: agent_acquire1105  ; GFX11WGP: bb.0.entry:1106  ; GFX11WGP-NEXT:   S_WAITCNT_soft 71107  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01108  ; GFX11WGP-NEXT:   BUFFER_GL1_INV implicit $exec1109  ; GFX11WGP-NEXT:   BUFFER_GL0_INV implicit $exec1110  ; GFX11WGP-NEXT:   S_ENDPGM 01111  ;1112  ; GFX11CU-LABEL: name: agent_acquire1113  ; GFX11CU: bb.0.entry:1114  ; GFX11CU-NEXT:   S_WAITCNT_soft 71115  ; GFX11CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01116  ; GFX11CU-NEXT:   BUFFER_GL1_INV implicit $exec1117  ; GFX11CU-NEXT:   BUFFER_GL0_INV implicit $exec1118  ; GFX11CU-NEXT:   S_ENDPGM 01119entry:1120  fence syncscope("agent") acquire1121  ret void1122}1123 1124define amdgpu_kernel void @agent_release() #0 {1125  ; GFX6-LABEL: name: agent_release1126  ; GFX6: bb.0.entry:1127  ; GFX6-NEXT:   S_WAITCNT_soft 1121128  ; GFX6-NEXT:   S_ENDPGM 01129  ;1130  ; GFX8-LABEL: name: agent_release1131  ; GFX8: bb.0.entry:1132  ; GFX8-NEXT:   S_WAITCNT_soft 1121133  ; GFX8-NEXT:   S_ENDPGM 01134  ;1135  ; GFX10WGP-LABEL: name: agent_release1136  ; GFX10WGP: bb.0.entry:1137  ; GFX10WGP-NEXT:   S_WAITCNT_soft 1121138  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01139  ; GFX10WGP-NEXT:   S_ENDPGM 01140  ;1141  ; GFX10CU-LABEL: name: agent_release1142  ; GFX10CU: bb.0.entry:1143  ; GFX10CU-NEXT:   S_WAITCNT_soft 1121144  ; GFX10CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01145  ; GFX10CU-NEXT:   S_ENDPGM 01146  ;1147  ; GFX11WGP-LABEL: name: agent_release1148  ; GFX11WGP: bb.0.entry:1149  ; GFX11WGP-NEXT:   S_WAITCNT_soft 71150  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01151  ; GFX11WGP-NEXT:   S_ENDPGM 01152  ;1153  ; GFX11CU-LABEL: name: agent_release1154  ; GFX11CU: bb.0.entry:1155  ; GFX11CU-NEXT:   S_WAITCNT_soft 71156  ; GFX11CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01157  ; GFX11CU-NEXT:   S_ENDPGM 01158entry:1159  fence syncscope("agent") release1160  ret void1161}1162 1163define amdgpu_kernel void @agent_acq_rel() #0 {1164  ; GFX6-LABEL: name: agent_acq_rel1165  ; GFX6: bb.0.entry:1166  ; GFX6-NEXT:   S_WAITCNT_soft 1121167  ; GFX6-NEXT:   BUFFER_WBINVL1 implicit $exec1168  ; GFX6-NEXT:   S_ENDPGM 01169  ;1170  ; GFX8-LABEL: name: agent_acq_rel1171  ; GFX8: bb.0.entry:1172  ; GFX8-NEXT:   S_WAITCNT_soft 1121173  ; GFX8-NEXT:   BUFFER_WBINVL1_VOL implicit $exec1174  ; GFX8-NEXT:   S_ENDPGM 01175  ;1176  ; GFX10WGP-LABEL: name: agent_acq_rel1177  ; GFX10WGP: bb.0.entry:1178  ; GFX10WGP-NEXT:   S_WAITCNT_soft 1121179  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01180  ; GFX10WGP-NEXT:   BUFFER_GL1_INV implicit $exec1181  ; GFX10WGP-NEXT:   BUFFER_GL0_INV implicit $exec1182  ; GFX10WGP-NEXT:   S_ENDPGM 01183  ;1184  ; GFX10CU-LABEL: name: agent_acq_rel1185  ; GFX10CU: bb.0.entry:1186  ; GFX10CU-NEXT:   S_WAITCNT_soft 1121187  ; GFX10CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01188  ; GFX10CU-NEXT:   BUFFER_GL1_INV implicit $exec1189  ; GFX10CU-NEXT:   BUFFER_GL0_INV implicit $exec1190  ; GFX10CU-NEXT:   S_ENDPGM 01191  ;1192  ; GFX11WGP-LABEL: name: agent_acq_rel1193  ; GFX11WGP: bb.0.entry:1194  ; GFX11WGP-NEXT:   S_WAITCNT_soft 71195  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01196  ; GFX11WGP-NEXT:   BUFFER_GL1_INV implicit $exec1197  ; GFX11WGP-NEXT:   BUFFER_GL0_INV implicit $exec1198  ; GFX11WGP-NEXT:   S_ENDPGM 01199  ;1200  ; GFX11CU-LABEL: name: agent_acq_rel1201  ; GFX11CU: bb.0.entry:1202  ; GFX11CU-NEXT:   S_WAITCNT_soft 71203  ; GFX11CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01204  ; GFX11CU-NEXT:   BUFFER_GL1_INV implicit $exec1205  ; GFX11CU-NEXT:   BUFFER_GL0_INV implicit $exec1206  ; GFX11CU-NEXT:   S_ENDPGM 01207entry:1208  fence syncscope("agent") acq_rel1209  ret void1210}1211 1212define amdgpu_kernel void @agent_seq_cst() #0 {1213  ; GFX6-LABEL: name: agent_seq_cst1214  ; GFX6: bb.0.entry:1215  ; GFX6-NEXT:   S_WAITCNT_soft 1121216  ; GFX6-NEXT:   BUFFER_WBINVL1 implicit $exec1217  ; GFX6-NEXT:   S_ENDPGM 01218  ;1219  ; GFX8-LABEL: name: agent_seq_cst1220  ; GFX8: bb.0.entry:1221  ; GFX8-NEXT:   S_WAITCNT_soft 1121222  ; GFX8-NEXT:   BUFFER_WBINVL1_VOL implicit $exec1223  ; GFX8-NEXT:   S_ENDPGM 01224  ;1225  ; GFX10WGP-LABEL: name: agent_seq_cst1226  ; GFX10WGP: bb.0.entry:1227  ; GFX10WGP-NEXT:   S_WAITCNT_soft 1121228  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01229  ; GFX10WGP-NEXT:   BUFFER_GL1_INV implicit $exec1230  ; GFX10WGP-NEXT:   BUFFER_GL0_INV implicit $exec1231  ; GFX10WGP-NEXT:   S_ENDPGM 01232  ;1233  ; GFX10CU-LABEL: name: agent_seq_cst1234  ; GFX10CU: bb.0.entry:1235  ; GFX10CU-NEXT:   S_WAITCNT_soft 1121236  ; GFX10CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01237  ; GFX10CU-NEXT:   BUFFER_GL1_INV implicit $exec1238  ; GFX10CU-NEXT:   BUFFER_GL0_INV implicit $exec1239  ; GFX10CU-NEXT:   S_ENDPGM 01240  ;1241  ; GFX11WGP-LABEL: name: agent_seq_cst1242  ; GFX11WGP: bb.0.entry:1243  ; GFX11WGP-NEXT:   S_WAITCNT_soft 71244  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01245  ; GFX11WGP-NEXT:   BUFFER_GL1_INV implicit $exec1246  ; GFX11WGP-NEXT:   BUFFER_GL0_INV implicit $exec1247  ; GFX11WGP-NEXT:   S_ENDPGM 01248  ;1249  ; GFX11CU-LABEL: name: agent_seq_cst1250  ; GFX11CU: bb.0.entry:1251  ; GFX11CU-NEXT:   S_WAITCNT_soft 71252  ; GFX11CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01253  ; GFX11CU-NEXT:   BUFFER_GL1_INV implicit $exec1254  ; GFX11CU-NEXT:   BUFFER_GL0_INV implicit $exec1255  ; GFX11CU-NEXT:   S_ENDPGM 01256entry:1257  fence syncscope("agent") seq_cst1258  ret void1259}1260 1261define amdgpu_kernel void @workgroup_acquire() #0 {1262  ; GFX6-LABEL: name: workgroup_acquire1263  ; GFX6: bb.0.entry:1264  ; GFX6-NEXT:   S_WAITCNT_soft 1271265  ; GFX6-NEXT:   S_ENDPGM 01266  ;1267  ; GFX8-LABEL: name: workgroup_acquire1268  ; GFX8: bb.0.entry:1269  ; GFX8-NEXT:   S_WAITCNT_soft 1271270  ; GFX8-NEXT:   S_ENDPGM 01271  ;1272  ; GFX10WGP-LABEL: name: workgroup_acquire1273  ; GFX10WGP: bb.0.entry:1274  ; GFX10WGP-NEXT:   S_WAITCNT_soft 1121275  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01276  ; GFX10WGP-NEXT:   BUFFER_GL0_INV implicit $exec1277  ; GFX10WGP-NEXT:   S_ENDPGM 01278  ;1279  ; GFX10CU-LABEL: name: workgroup_acquire1280  ; GFX10CU: bb.0.entry:1281  ; GFX10CU-NEXT:   S_WAITCNT_soft 492791282  ; GFX10CU-NEXT:   S_ENDPGM 01283  ;1284  ; GFX11WGP-LABEL: name: workgroup_acquire1285  ; GFX11WGP: bb.0.entry:1286  ; GFX11WGP-NEXT:   S_WAITCNT_soft 71287  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01288  ; GFX11WGP-NEXT:   BUFFER_GL0_INV implicit $exec1289  ; GFX11WGP-NEXT:   S_ENDPGM 01290  ;1291  ; GFX11CU-LABEL: name: workgroup_acquire1292  ; GFX11CU: bb.0.entry:1293  ; GFX11CU-NEXT:   S_WAITCNT_soft 645191294  ; GFX11CU-NEXT:   S_ENDPGM 01295entry:1296  fence syncscope("workgroup") acquire1297  ret void1298}1299 1300define amdgpu_kernel void @workgroup_release() #0 {1301  ; GFX6-LABEL: name: workgroup_release1302  ; GFX6: bb.0.entry:1303  ; GFX6-NEXT:   S_WAITCNT_soft 1271304  ; GFX6-NEXT:   S_ENDPGM 01305  ;1306  ; GFX8-LABEL: name: workgroup_release1307  ; GFX8: bb.0.entry:1308  ; GFX8-NEXT:   S_WAITCNT_soft 1271309  ; GFX8-NEXT:   S_ENDPGM 01310  ;1311  ; GFX10WGP-LABEL: name: workgroup_release1312  ; GFX10WGP: bb.0.entry:1313  ; GFX10WGP-NEXT:   S_WAITCNT_soft 1121314  ; GFX10WGP-NEXT:   S_WAITCNT_lds_direct1315  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01316  ; GFX10WGP-NEXT:   S_ENDPGM 01317  ;1318  ; GFX10CU-LABEL: name: workgroup_release1319  ; GFX10CU: bb.0.entry:1320  ; GFX10CU-NEXT:   S_WAITCNT_soft 1121321  ; GFX10CU-NEXT:   S_WAITCNT_lds_direct1322  ; GFX10CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01323  ; GFX10CU-NEXT:   S_ENDPGM 01324  ;1325  ; GFX11WGP-LABEL: name: workgroup_release1326  ; GFX11WGP: bb.0.entry:1327  ; GFX11WGP-NEXT:   S_WAITCNT_soft 71328  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01329  ; GFX11WGP-NEXT:   S_ENDPGM 01330  ;1331  ; GFX11CU-LABEL: name: workgroup_release1332  ; GFX11CU: bb.0.entry:1333  ; GFX11CU-NEXT:   S_WAITCNT_soft 71334  ; GFX11CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01335  ; GFX11CU-NEXT:   S_ENDPGM 01336entry:1337  fence syncscope("workgroup") release1338  ret void1339}1340 1341define amdgpu_kernel void @workgroup_acq_rel() #0 {1342  ; GFX6-LABEL: name: workgroup_acq_rel1343  ; GFX6: bb.0.entry:1344  ; GFX6-NEXT:   S_WAITCNT_soft 1271345  ; GFX6-NEXT:   S_ENDPGM 01346  ;1347  ; GFX8-LABEL: name: workgroup_acq_rel1348  ; GFX8: bb.0.entry:1349  ; GFX8-NEXT:   S_WAITCNT_soft 1271350  ; GFX8-NEXT:   S_ENDPGM 01351  ;1352  ; GFX10WGP-LABEL: name: workgroup_acq_rel1353  ; GFX10WGP: bb.0.entry:1354  ; GFX10WGP-NEXT:   S_WAITCNT_soft 1121355  ; GFX10WGP-NEXT:   S_WAITCNT_lds_direct1356  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01357  ; GFX10WGP-NEXT:   BUFFER_GL0_INV implicit $exec1358  ; GFX10WGP-NEXT:   S_ENDPGM 01359  ;1360  ; GFX10CU-LABEL: name: workgroup_acq_rel1361  ; GFX10CU: bb.0.entry:1362  ; GFX10CU-NEXT:   S_WAITCNT_soft 1121363  ; GFX10CU-NEXT:   S_WAITCNT_lds_direct1364  ; GFX10CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01365  ; GFX10CU-NEXT:   S_ENDPGM 01366  ;1367  ; GFX11WGP-LABEL: name: workgroup_acq_rel1368  ; GFX11WGP: bb.0.entry:1369  ; GFX11WGP-NEXT:   S_WAITCNT_soft 71370  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01371  ; GFX11WGP-NEXT:   BUFFER_GL0_INV implicit $exec1372  ; GFX11WGP-NEXT:   S_ENDPGM 01373  ;1374  ; GFX11CU-LABEL: name: workgroup_acq_rel1375  ; GFX11CU: bb.0.entry:1376  ; GFX11CU-NEXT:   S_WAITCNT_soft 71377  ; GFX11CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01378  ; GFX11CU-NEXT:   S_ENDPGM 01379entry:1380  fence syncscope("workgroup") acq_rel1381  ret void1382}1383 1384define amdgpu_kernel void @workgroup_seq_cst() #0 {1385  ; GFX6-LABEL: name: workgroup_seq_cst1386  ; GFX6: bb.0.entry:1387  ; GFX6-NEXT:   S_WAITCNT_soft 1271388  ; GFX6-NEXT:   S_ENDPGM 01389  ;1390  ; GFX8-LABEL: name: workgroup_seq_cst1391  ; GFX8: bb.0.entry:1392  ; GFX8-NEXT:   S_WAITCNT_soft 1271393  ; GFX8-NEXT:   S_ENDPGM 01394  ;1395  ; GFX10WGP-LABEL: name: workgroup_seq_cst1396  ; GFX10WGP: bb.0.entry:1397  ; GFX10WGP-NEXT:   S_WAITCNT_soft 1121398  ; GFX10WGP-NEXT:   S_WAITCNT_lds_direct1399  ; GFX10WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01400  ; GFX10WGP-NEXT:   BUFFER_GL0_INV implicit $exec1401  ; GFX10WGP-NEXT:   S_ENDPGM 01402  ;1403  ; GFX10CU-LABEL: name: workgroup_seq_cst1404  ; GFX10CU: bb.0.entry:1405  ; GFX10CU-NEXT:   S_WAITCNT_soft 1121406  ; GFX10CU-NEXT:   S_WAITCNT_lds_direct1407  ; GFX10CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01408  ; GFX10CU-NEXT:   S_ENDPGM 01409  ;1410  ; GFX11WGP-LABEL: name: workgroup_seq_cst1411  ; GFX11WGP: bb.0.entry:1412  ; GFX11WGP-NEXT:   S_WAITCNT_soft 71413  ; GFX11WGP-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01414  ; GFX11WGP-NEXT:   BUFFER_GL0_INV implicit $exec1415  ; GFX11WGP-NEXT:   S_ENDPGM 01416  ;1417  ; GFX11CU-LABEL: name: workgroup_seq_cst1418  ; GFX11CU: bb.0.entry:1419  ; GFX11CU-NEXT:   S_WAITCNT_soft 71420  ; GFX11CU-NEXT:   S_WAITCNT_VSCNT_soft undef $sgpr_null, 01421  ; GFX11CU-NEXT:   S_ENDPGM 01422entry:1423  fence syncscope("workgroup") seq_cst1424  ret void1425}1426 1427define amdgpu_kernel void @wavefront_acquire() #0 {1428  ; GFX6-LABEL: name: wavefront_acquire1429  ; GFX6: bb.0.entry:1430  ; GFX6-NEXT:   S_ENDPGM 01431  ;1432  ; GFX8-LABEL: name: wavefront_acquire1433  ; GFX8: bb.0.entry:1434  ; GFX8-NEXT:   S_ENDPGM 01435  ;1436  ; GFX10WGP-LABEL: name: wavefront_acquire1437  ; GFX10WGP: bb.0.entry:1438  ; GFX10WGP-NEXT:   S_ENDPGM 01439  ;1440  ; GFX10CU-LABEL: name: wavefront_acquire1441  ; GFX10CU: bb.0.entry:1442  ; GFX10CU-NEXT:   S_ENDPGM 01443  ;1444  ; GFX11WGP-LABEL: name: wavefront_acquire1445  ; GFX11WGP: bb.0.entry:1446  ; GFX11WGP-NEXT:   S_ENDPGM 01447  ;1448  ; GFX11CU-LABEL: name: wavefront_acquire1449  ; GFX11CU: bb.0.entry:1450  ; GFX11CU-NEXT:   S_ENDPGM 01451entry:1452  fence syncscope("wavefront") acquire1453  ret void1454}1455 1456define amdgpu_kernel void @wavefront_release() #0 {1457  ; GFX6-LABEL: name: wavefront_release1458  ; GFX6: bb.0.entry:1459  ; GFX6-NEXT:   S_ENDPGM 01460  ;1461  ; GFX8-LABEL: name: wavefront_release1462  ; GFX8: bb.0.entry:1463  ; GFX8-NEXT:   S_ENDPGM 01464  ;1465  ; GFX10WGP-LABEL: name: wavefront_release1466  ; GFX10WGP: bb.0.entry:1467  ; GFX10WGP-NEXT:   S_ENDPGM 01468  ;1469  ; GFX10CU-LABEL: name: wavefront_release1470  ; GFX10CU: bb.0.entry:1471  ; GFX10CU-NEXT:   S_ENDPGM 01472  ;1473  ; GFX11WGP-LABEL: name: wavefront_release1474  ; GFX11WGP: bb.0.entry:1475  ; GFX11WGP-NEXT:   S_ENDPGM 01476  ;1477  ; GFX11CU-LABEL: name: wavefront_release1478  ; GFX11CU: bb.0.entry:1479  ; GFX11CU-NEXT:   S_ENDPGM 01480entry:1481  fence syncscope("wavefront") release1482  ret void1483}1484 1485define amdgpu_kernel void @wavefront_acq_rel() #0 {1486  ; GFX6-LABEL: name: wavefront_acq_rel1487  ; GFX6: bb.0.entry:1488  ; GFX6-NEXT:   S_ENDPGM 01489  ;1490  ; GFX8-LABEL: name: wavefront_acq_rel1491  ; GFX8: bb.0.entry:1492  ; GFX8-NEXT:   S_ENDPGM 01493  ;1494  ; GFX10WGP-LABEL: name: wavefront_acq_rel1495  ; GFX10WGP: bb.0.entry:1496  ; GFX10WGP-NEXT:   S_ENDPGM 01497  ;1498  ; GFX10CU-LABEL: name: wavefront_acq_rel1499  ; GFX10CU: bb.0.entry:1500  ; GFX10CU-NEXT:   S_ENDPGM 01501  ;1502  ; GFX11WGP-LABEL: name: wavefront_acq_rel1503  ; GFX11WGP: bb.0.entry:1504  ; GFX11WGP-NEXT:   S_ENDPGM 01505  ;1506  ; GFX11CU-LABEL: name: wavefront_acq_rel1507  ; GFX11CU: bb.0.entry:1508  ; GFX11CU-NEXT:   S_ENDPGM 01509entry:1510  fence syncscope("wavefront") acq_rel1511  ret void1512}1513 1514define amdgpu_kernel void @wavefront_seq_cst() #0 {1515  ; GFX6-LABEL: name: wavefront_seq_cst1516  ; GFX6: bb.0.entry:1517  ; GFX6-NEXT:   S_ENDPGM 01518  ;1519  ; GFX8-LABEL: name: wavefront_seq_cst1520  ; GFX8: bb.0.entry:1521  ; GFX8-NEXT:   S_ENDPGM 01522  ;1523  ; GFX10WGP-LABEL: name: wavefront_seq_cst1524  ; GFX10WGP: bb.0.entry:1525  ; GFX10WGP-NEXT:   S_ENDPGM 01526  ;1527  ; GFX10CU-LABEL: name: wavefront_seq_cst1528  ; GFX10CU: bb.0.entry:1529  ; GFX10CU-NEXT:   S_ENDPGM 01530  ;1531  ; GFX11WGP-LABEL: name: wavefront_seq_cst1532  ; GFX11WGP: bb.0.entry:1533  ; GFX11WGP-NEXT:   S_ENDPGM 01534  ;1535  ; GFX11CU-LABEL: name: wavefront_seq_cst1536  ; GFX11CU: bb.0.entry:1537  ; GFX11CU-NEXT:   S_ENDPGM 01538entry:1539  fence syncscope("wavefront") seq_cst1540  ret void1541}1542 1543attributes #0 = { "amdgpu-no-dispatch-id" "amdgpu-no-dispatch-ptr" "amdgpu-no-implicitarg-ptr" "amdgpu-no-lds-kernel-id" "amdgpu-no-queue-ptr" "amdgpu-no-workgroup-id-x" "amdgpu-no-workgroup-id-y" "amdgpu-no-workgroup-id-z" "amdgpu-no-workitem-id-y" "amdgpu-no-workitem-id-z" }1544