[llvm] [AMDGPU] Check MIR after SIMemoryLegalizer instead of final ISA (PR #90601)

Jay Foad via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 30 05:52:30 PDT 2024


================
@@ -1,2563 +1,3063 @@
-; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx600 < %s | FileCheck --check-prefixes=GFX6 %s
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx700 < %s | FileCheck --check-prefixes=GFX7 %s
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1010 < %s | FileCheck --check-prefixes=GFX10-WGP %s
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1010 -mattr=+cumode < %s | FileCheck --check-prefixes=GFX10-CU %s
-; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx700 -amdgcn-skip-cache-invalidations < %s | FileCheck --check-prefixes=SKIP-CACHE-INV %s
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a < %s | FileCheck -check-prefixes=GFX90A-NOTTGSPLIT %s
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -mattr=+tgsplit < %s | FileCheck -check-prefixes=GFX90A-TGSPLIT %s
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx940 < %s | FileCheck -check-prefixes=GFX940-NOTTGSPLIT %s
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx940 -mattr=+tgsplit < %s | FileCheck -check-prefixes=GFX940-TGSPLIT %s
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1100 < %s | FileCheck --check-prefixes=GFX11-WGP %s
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1100 -mattr=+cumode < %s | FileCheck --check-prefixes=GFX11-CU %s
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1200 < %s | FileCheck --check-prefixes=GFX12-WGP %s
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1200 -mattr=+cumode < %s | FileCheck --check-prefixes=GFX12-CU %s
+; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 4
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -stop-after=si-memory-legalizer -mcpu=gfx600 < %s | FileCheck --check-prefixes=GFX6 %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -stop-after=si-memory-legalizer -mcpu=gfx700 < %s | FileCheck --check-prefixes=GFX7 %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -stop-after=si-memory-legalizer -mcpu=gfx1010 < %s | FileCheck --check-prefixes=GFX10-WGP %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -stop-after=si-memory-legalizer -mcpu=gfx1010 -mattr=+cumode < %s | FileCheck --check-prefixes=GFX10-CU %s
+; RUN: llc -mtriple=amdgcn-amd-amdpal -stop-after=si-memory-legalizer -mcpu=gfx700 -amdgcn-skip-cache-invalidations < %s | FileCheck --check-prefixes=SKIP-CACHE-INV %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -stop-after=si-memory-legalizer -mcpu=gfx90a < %s | FileCheck -check-prefixes=GFX90A-NOTTGSPLIT %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -stop-after=si-memory-legalizer -mcpu=gfx90a -mattr=+tgsplit < %s | FileCheck -check-prefixes=GFX90A-TGSPLIT %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -stop-after=si-memory-legalizer -mcpu=gfx940 < %s | FileCheck -check-prefixes=GFX940-NOTTGSPLIT %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -stop-after=si-memory-legalizer -mcpu=gfx940 -mattr=+tgsplit < %s | FileCheck -check-prefixes=GFX940-TGSPLIT %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -stop-after=si-memory-legalizer -mcpu=gfx1100 < %s | FileCheck --check-prefixes=GFX11-WGP %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -stop-after=si-memory-legalizer -mcpu=gfx1100 -mattr=+cumode < %s | FileCheck --check-prefixes=GFX11-CU %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -stop-after=si-memory-legalizer -mcpu=gfx1200 < %s | FileCheck --check-prefixes=GFX12-WGP %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -stop-after=si-memory-legalizer -mcpu=gfx1200 -mattr=+cumode < %s | FileCheck --check-prefixes=GFX12-CU %s
 
 define amdgpu_kernel void @singlethread_acquire_fence() {
-; GFX6-LABEL: singlethread_acquire_fence:
-; GFX6:       ; %bb.0: ; %entry
-; GFX6-NEXT:    s_endpgm
-;
-; GFX7-LABEL: singlethread_acquire_fence:
-; GFX7:       ; %bb.0: ; %entry
-; GFX7-NEXT:    s_endpgm
-;
-; GFX10-WGP-LABEL: singlethread_acquire_fence:
-; GFX10-WGP:       ; %bb.0: ; %entry
-; GFX10-WGP-NEXT:    s_endpgm
-;
-; GFX10-CU-LABEL: singlethread_acquire_fence:
-; GFX10-CU:       ; %bb.0: ; %entry
-; GFX10-CU-NEXT:    s_endpgm
-;
-; SKIP-CACHE-INV-LABEL: singlethread_acquire_fence:
-; SKIP-CACHE-INV:       ; %bb.0: ; %entry
-; SKIP-CACHE-INV-NEXT:    s_endpgm
-;
-; GFX90A-NOTTGSPLIT-LABEL: singlethread_acquire_fence:
-; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX90A-TGSPLIT-LABEL: singlethread_acquire_fence:
-; GFX90A-TGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-NOTTGSPLIT-LABEL: singlethread_acquire_fence:
-; GFX940-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX940-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-TGSPLIT-LABEL: singlethread_acquire_fence:
-; GFX940-TGSPLIT:       ; %bb.0: ; %entry
-; GFX940-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX11-WGP-LABEL: singlethread_acquire_fence:
-; GFX11-WGP:       ; %bb.0: ; %entry
-; GFX11-WGP-NEXT:    s_endpgm
-;
-; GFX11-CU-LABEL: singlethread_acquire_fence:
-; GFX11-CU:       ; %bb.0: ; %entry
-; GFX11-CU-NEXT:    s_endpgm
-;
-; GFX12-WGP-LABEL: singlethread_acquire_fence:
-; GFX12-WGP:       ; %bb.0: ; %entry
-; GFX12-WGP-NEXT:    s_endpgm
-;
-; GFX12-CU-LABEL: singlethread_acquire_fence:
-; GFX12-CU:       ; %bb.0: ; %entry
-; GFX12-CU-NEXT:    s_endpgm
+  ; GFX6-LABEL: name: singlethread_acquire_fence
+  ; GFX6: bb.0.entry:
+  ; GFX6-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX7-LABEL: name: singlethread_acquire_fence
+  ; GFX7: bb.0.entry:
+  ; GFX7-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-WGP-LABEL: name: singlethread_acquire_fence
+  ; GFX10-WGP: bb.0.entry:
+  ; GFX10-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-CU-LABEL: name: singlethread_acquire_fence
+  ; GFX10-CU: bb.0.entry:
+  ; GFX10-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; SKIP-CACHE-INV-LABEL: name: singlethread_acquire_fence
+  ; SKIP-CACHE-INV: bb.0.entry:
+  ; SKIP-CACHE-INV-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-NOTTGSPLIT-LABEL: name: singlethread_acquire_fence
+  ; GFX90A-NOTTGSPLIT: bb.0.entry:
+  ; GFX90A-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-TGSPLIT-LABEL: name: singlethread_acquire_fence
+  ; GFX90A-TGSPLIT: bb.0.entry:
+  ; GFX90A-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-NOTTGSPLIT-LABEL: name: singlethread_acquire_fence
+  ; GFX940-NOTTGSPLIT: bb.0.entry:
+  ; GFX940-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-TGSPLIT-LABEL: name: singlethread_acquire_fence
+  ; GFX940-TGSPLIT: bb.0.entry:
+  ; GFX940-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-WGP-LABEL: name: singlethread_acquire_fence
+  ; GFX11-WGP: bb.0.entry:
+  ; GFX11-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-CU-LABEL: name: singlethread_acquire_fence
+  ; GFX11-CU: bb.0.entry:
+  ; GFX11-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-WGP-LABEL: name: singlethread_acquire_fence
+  ; GFX12-WGP: bb.0.entry:
+  ; GFX12-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-CU-LABEL: name: singlethread_acquire_fence
+  ; GFX12-CU: bb.0.entry:
+  ; GFX12-CU-NEXT:   S_ENDPGM 0
 entry:
   fence syncscope("singlethread") acquire
   ret void
 }
 
 define amdgpu_kernel void @singlethread_release_fence() {
-; GFX6-LABEL: singlethread_release_fence:
-; GFX6:       ; %bb.0: ; %entry
-; GFX6-NEXT:    s_endpgm
-;
-; GFX7-LABEL: singlethread_release_fence:
-; GFX7:       ; %bb.0: ; %entry
-; GFX7-NEXT:    s_endpgm
-;
-; GFX10-WGP-LABEL: singlethread_release_fence:
-; GFX10-WGP:       ; %bb.0: ; %entry
-; GFX10-WGP-NEXT:    s_endpgm
-;
-; GFX10-CU-LABEL: singlethread_release_fence:
-; GFX10-CU:       ; %bb.0: ; %entry
-; GFX10-CU-NEXT:    s_endpgm
-;
-; SKIP-CACHE-INV-LABEL: singlethread_release_fence:
-; SKIP-CACHE-INV:       ; %bb.0: ; %entry
-; SKIP-CACHE-INV-NEXT:    s_endpgm
-;
-; GFX90A-NOTTGSPLIT-LABEL: singlethread_release_fence:
-; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX90A-TGSPLIT-LABEL: singlethread_release_fence:
-; GFX90A-TGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-NOTTGSPLIT-LABEL: singlethread_release_fence:
-; GFX940-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX940-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-TGSPLIT-LABEL: singlethread_release_fence:
-; GFX940-TGSPLIT:       ; %bb.0: ; %entry
-; GFX940-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX11-WGP-LABEL: singlethread_release_fence:
-; GFX11-WGP:       ; %bb.0: ; %entry
-; GFX11-WGP-NEXT:    s_endpgm
-;
-; GFX11-CU-LABEL: singlethread_release_fence:
-; GFX11-CU:       ; %bb.0: ; %entry
-; GFX11-CU-NEXT:    s_endpgm
-;
-; GFX12-WGP-LABEL: singlethread_release_fence:
-; GFX12-WGP:       ; %bb.0: ; %entry
-; GFX12-WGP-NEXT:    s_endpgm
-;
-; GFX12-CU-LABEL: singlethread_release_fence:
-; GFX12-CU:       ; %bb.0: ; %entry
-; GFX12-CU-NEXT:    s_endpgm
+  ; GFX6-LABEL: name: singlethread_release_fence
+  ; GFX6: bb.0.entry:
+  ; GFX6-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX7-LABEL: name: singlethread_release_fence
+  ; GFX7: bb.0.entry:
+  ; GFX7-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-WGP-LABEL: name: singlethread_release_fence
+  ; GFX10-WGP: bb.0.entry:
+  ; GFX10-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-CU-LABEL: name: singlethread_release_fence
+  ; GFX10-CU: bb.0.entry:
+  ; GFX10-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; SKIP-CACHE-INV-LABEL: name: singlethread_release_fence
+  ; SKIP-CACHE-INV: bb.0.entry:
+  ; SKIP-CACHE-INV-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-NOTTGSPLIT-LABEL: name: singlethread_release_fence
+  ; GFX90A-NOTTGSPLIT: bb.0.entry:
+  ; GFX90A-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-TGSPLIT-LABEL: name: singlethread_release_fence
+  ; GFX90A-TGSPLIT: bb.0.entry:
+  ; GFX90A-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-NOTTGSPLIT-LABEL: name: singlethread_release_fence
+  ; GFX940-NOTTGSPLIT: bb.0.entry:
+  ; GFX940-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-TGSPLIT-LABEL: name: singlethread_release_fence
+  ; GFX940-TGSPLIT: bb.0.entry:
+  ; GFX940-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-WGP-LABEL: name: singlethread_release_fence
+  ; GFX11-WGP: bb.0.entry:
+  ; GFX11-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-CU-LABEL: name: singlethread_release_fence
+  ; GFX11-CU: bb.0.entry:
+  ; GFX11-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-WGP-LABEL: name: singlethread_release_fence
+  ; GFX12-WGP: bb.0.entry:
+  ; GFX12-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-CU-LABEL: name: singlethread_release_fence
+  ; GFX12-CU: bb.0.entry:
+  ; GFX12-CU-NEXT:   S_ENDPGM 0
 entry:
   fence syncscope("singlethread") release
   ret void
 }
 
 define amdgpu_kernel void @singlethread_acq_rel_fence() {
-; GFX6-LABEL: singlethread_acq_rel_fence:
-; GFX6:       ; %bb.0: ; %entry
-; GFX6-NEXT:    s_endpgm
-;
-; GFX7-LABEL: singlethread_acq_rel_fence:
-; GFX7:       ; %bb.0: ; %entry
-; GFX7-NEXT:    s_endpgm
-;
-; GFX10-WGP-LABEL: singlethread_acq_rel_fence:
-; GFX10-WGP:       ; %bb.0: ; %entry
-; GFX10-WGP-NEXT:    s_endpgm
-;
-; GFX10-CU-LABEL: singlethread_acq_rel_fence:
-; GFX10-CU:       ; %bb.0: ; %entry
-; GFX10-CU-NEXT:    s_endpgm
-;
-; SKIP-CACHE-INV-LABEL: singlethread_acq_rel_fence:
-; SKIP-CACHE-INV:       ; %bb.0: ; %entry
-; SKIP-CACHE-INV-NEXT:    s_endpgm
-;
-; GFX90A-NOTTGSPLIT-LABEL: singlethread_acq_rel_fence:
-; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX90A-TGSPLIT-LABEL: singlethread_acq_rel_fence:
-; GFX90A-TGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-NOTTGSPLIT-LABEL: singlethread_acq_rel_fence:
-; GFX940-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX940-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-TGSPLIT-LABEL: singlethread_acq_rel_fence:
-; GFX940-TGSPLIT:       ; %bb.0: ; %entry
-; GFX940-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX11-WGP-LABEL: singlethread_acq_rel_fence:
-; GFX11-WGP:       ; %bb.0: ; %entry
-; GFX11-WGP-NEXT:    s_endpgm
-;
-; GFX11-CU-LABEL: singlethread_acq_rel_fence:
-; GFX11-CU:       ; %bb.0: ; %entry
-; GFX11-CU-NEXT:    s_endpgm
-;
-; GFX12-WGP-LABEL: singlethread_acq_rel_fence:
-; GFX12-WGP:       ; %bb.0: ; %entry
-; GFX12-WGP-NEXT:    s_endpgm
-;
-; GFX12-CU-LABEL: singlethread_acq_rel_fence:
-; GFX12-CU:       ; %bb.0: ; %entry
-; GFX12-CU-NEXT:    s_endpgm
+  ; GFX6-LABEL: name: singlethread_acq_rel_fence
+  ; GFX6: bb.0.entry:
+  ; GFX6-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX7-LABEL: name: singlethread_acq_rel_fence
+  ; GFX7: bb.0.entry:
+  ; GFX7-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-WGP-LABEL: name: singlethread_acq_rel_fence
+  ; GFX10-WGP: bb.0.entry:
+  ; GFX10-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-CU-LABEL: name: singlethread_acq_rel_fence
+  ; GFX10-CU: bb.0.entry:
+  ; GFX10-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; SKIP-CACHE-INV-LABEL: name: singlethread_acq_rel_fence
+  ; SKIP-CACHE-INV: bb.0.entry:
+  ; SKIP-CACHE-INV-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-NOTTGSPLIT-LABEL: name: singlethread_acq_rel_fence
+  ; GFX90A-NOTTGSPLIT: bb.0.entry:
+  ; GFX90A-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-TGSPLIT-LABEL: name: singlethread_acq_rel_fence
+  ; GFX90A-TGSPLIT: bb.0.entry:
+  ; GFX90A-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-NOTTGSPLIT-LABEL: name: singlethread_acq_rel_fence
+  ; GFX940-NOTTGSPLIT: bb.0.entry:
+  ; GFX940-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-TGSPLIT-LABEL: name: singlethread_acq_rel_fence
+  ; GFX940-TGSPLIT: bb.0.entry:
+  ; GFX940-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-WGP-LABEL: name: singlethread_acq_rel_fence
+  ; GFX11-WGP: bb.0.entry:
+  ; GFX11-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-CU-LABEL: name: singlethread_acq_rel_fence
+  ; GFX11-CU: bb.0.entry:
+  ; GFX11-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-WGP-LABEL: name: singlethread_acq_rel_fence
+  ; GFX12-WGP: bb.0.entry:
+  ; GFX12-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-CU-LABEL: name: singlethread_acq_rel_fence
+  ; GFX12-CU: bb.0.entry:
+  ; GFX12-CU-NEXT:   S_ENDPGM 0
 entry:
   fence syncscope("singlethread") acq_rel
   ret void
 }
 
 define amdgpu_kernel void @singlethread_seq_cst_fence() {
-; GFX6-LABEL: singlethread_seq_cst_fence:
-; GFX6:       ; %bb.0: ; %entry
-; GFX6-NEXT:    s_endpgm
-;
-; GFX7-LABEL: singlethread_seq_cst_fence:
-; GFX7:       ; %bb.0: ; %entry
-; GFX7-NEXT:    s_endpgm
-;
-; GFX10-WGP-LABEL: singlethread_seq_cst_fence:
-; GFX10-WGP:       ; %bb.0: ; %entry
-; GFX10-WGP-NEXT:    s_endpgm
-;
-; GFX10-CU-LABEL: singlethread_seq_cst_fence:
-; GFX10-CU:       ; %bb.0: ; %entry
-; GFX10-CU-NEXT:    s_endpgm
-;
-; SKIP-CACHE-INV-LABEL: singlethread_seq_cst_fence:
-; SKIP-CACHE-INV:       ; %bb.0: ; %entry
-; SKIP-CACHE-INV-NEXT:    s_endpgm
-;
-; GFX90A-NOTTGSPLIT-LABEL: singlethread_seq_cst_fence:
-; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX90A-TGSPLIT-LABEL: singlethread_seq_cst_fence:
-; GFX90A-TGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-NOTTGSPLIT-LABEL: singlethread_seq_cst_fence:
-; GFX940-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX940-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-TGSPLIT-LABEL: singlethread_seq_cst_fence:
-; GFX940-TGSPLIT:       ; %bb.0: ; %entry
-; GFX940-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX11-WGP-LABEL: singlethread_seq_cst_fence:
-; GFX11-WGP:       ; %bb.0: ; %entry
-; GFX11-WGP-NEXT:    s_endpgm
-;
-; GFX11-CU-LABEL: singlethread_seq_cst_fence:
-; GFX11-CU:       ; %bb.0: ; %entry
-; GFX11-CU-NEXT:    s_endpgm
-;
-; GFX12-WGP-LABEL: singlethread_seq_cst_fence:
-; GFX12-WGP:       ; %bb.0: ; %entry
-; GFX12-WGP-NEXT:    s_endpgm
-;
-; GFX12-CU-LABEL: singlethread_seq_cst_fence:
-; GFX12-CU:       ; %bb.0: ; %entry
-; GFX12-CU-NEXT:    s_endpgm
+  ; GFX6-LABEL: name: singlethread_seq_cst_fence
+  ; GFX6: bb.0.entry:
+  ; GFX6-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX7-LABEL: name: singlethread_seq_cst_fence
+  ; GFX7: bb.0.entry:
+  ; GFX7-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-WGP-LABEL: name: singlethread_seq_cst_fence
+  ; GFX10-WGP: bb.0.entry:
+  ; GFX10-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-CU-LABEL: name: singlethread_seq_cst_fence
+  ; GFX10-CU: bb.0.entry:
+  ; GFX10-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; SKIP-CACHE-INV-LABEL: name: singlethread_seq_cst_fence
+  ; SKIP-CACHE-INV: bb.0.entry:
+  ; SKIP-CACHE-INV-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-NOTTGSPLIT-LABEL: name: singlethread_seq_cst_fence
+  ; GFX90A-NOTTGSPLIT: bb.0.entry:
+  ; GFX90A-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-TGSPLIT-LABEL: name: singlethread_seq_cst_fence
+  ; GFX90A-TGSPLIT: bb.0.entry:
+  ; GFX90A-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-NOTTGSPLIT-LABEL: name: singlethread_seq_cst_fence
+  ; GFX940-NOTTGSPLIT: bb.0.entry:
+  ; GFX940-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-TGSPLIT-LABEL: name: singlethread_seq_cst_fence
+  ; GFX940-TGSPLIT: bb.0.entry:
+  ; GFX940-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-WGP-LABEL: name: singlethread_seq_cst_fence
+  ; GFX11-WGP: bb.0.entry:
+  ; GFX11-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-CU-LABEL: name: singlethread_seq_cst_fence
+  ; GFX11-CU: bb.0.entry:
+  ; GFX11-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-WGP-LABEL: name: singlethread_seq_cst_fence
+  ; GFX12-WGP: bb.0.entry:
+  ; GFX12-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-CU-LABEL: name: singlethread_seq_cst_fence
+  ; GFX12-CU: bb.0.entry:
+  ; GFX12-CU-NEXT:   S_ENDPGM 0
 entry:
   fence syncscope("singlethread") seq_cst
   ret void
 }
 
 define amdgpu_kernel void @singlethread_one_as_acquire_fence() {
-; GFX6-LABEL: singlethread_one_as_acquire_fence:
-; GFX6:       ; %bb.0: ; %entry
-; GFX6-NEXT:    s_endpgm
-;
-; GFX7-LABEL: singlethread_one_as_acquire_fence:
-; GFX7:       ; %bb.0: ; %entry
-; GFX7-NEXT:    s_endpgm
-;
-; GFX10-WGP-LABEL: singlethread_one_as_acquire_fence:
-; GFX10-WGP:       ; %bb.0: ; %entry
-; GFX10-WGP-NEXT:    s_endpgm
-;
-; GFX10-CU-LABEL: singlethread_one_as_acquire_fence:
-; GFX10-CU:       ; %bb.0: ; %entry
-; GFX10-CU-NEXT:    s_endpgm
-;
-; SKIP-CACHE-INV-LABEL: singlethread_one_as_acquire_fence:
-; SKIP-CACHE-INV:       ; %bb.0: ; %entry
-; SKIP-CACHE-INV-NEXT:    s_endpgm
-;
-; GFX90A-NOTTGSPLIT-LABEL: singlethread_one_as_acquire_fence:
-; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX90A-TGSPLIT-LABEL: singlethread_one_as_acquire_fence:
-; GFX90A-TGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-NOTTGSPLIT-LABEL: singlethread_one_as_acquire_fence:
-; GFX940-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX940-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-TGSPLIT-LABEL: singlethread_one_as_acquire_fence:
-; GFX940-TGSPLIT:       ; %bb.0: ; %entry
-; GFX940-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX11-WGP-LABEL: singlethread_one_as_acquire_fence:
-; GFX11-WGP:       ; %bb.0: ; %entry
-; GFX11-WGP-NEXT:    s_endpgm
-;
-; GFX11-CU-LABEL: singlethread_one_as_acquire_fence:
-; GFX11-CU:       ; %bb.0: ; %entry
-; GFX11-CU-NEXT:    s_endpgm
-;
-; GFX12-WGP-LABEL: singlethread_one_as_acquire_fence:
-; GFX12-WGP:       ; %bb.0: ; %entry
-; GFX12-WGP-NEXT:    s_endpgm
-;
-; GFX12-CU-LABEL: singlethread_one_as_acquire_fence:
-; GFX12-CU:       ; %bb.0: ; %entry
-; GFX12-CU-NEXT:    s_endpgm
+  ; GFX6-LABEL: name: singlethread_one_as_acquire_fence
+  ; GFX6: bb.0.entry:
+  ; GFX6-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX7-LABEL: name: singlethread_one_as_acquire_fence
+  ; GFX7: bb.0.entry:
+  ; GFX7-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-WGP-LABEL: name: singlethread_one_as_acquire_fence
+  ; GFX10-WGP: bb.0.entry:
+  ; GFX10-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-CU-LABEL: name: singlethread_one_as_acquire_fence
+  ; GFX10-CU: bb.0.entry:
+  ; GFX10-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; SKIP-CACHE-INV-LABEL: name: singlethread_one_as_acquire_fence
+  ; SKIP-CACHE-INV: bb.0.entry:
+  ; SKIP-CACHE-INV-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-NOTTGSPLIT-LABEL: name: singlethread_one_as_acquire_fence
+  ; GFX90A-NOTTGSPLIT: bb.0.entry:
+  ; GFX90A-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-TGSPLIT-LABEL: name: singlethread_one_as_acquire_fence
+  ; GFX90A-TGSPLIT: bb.0.entry:
+  ; GFX90A-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-NOTTGSPLIT-LABEL: name: singlethread_one_as_acquire_fence
+  ; GFX940-NOTTGSPLIT: bb.0.entry:
+  ; GFX940-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-TGSPLIT-LABEL: name: singlethread_one_as_acquire_fence
+  ; GFX940-TGSPLIT: bb.0.entry:
+  ; GFX940-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-WGP-LABEL: name: singlethread_one_as_acquire_fence
+  ; GFX11-WGP: bb.0.entry:
+  ; GFX11-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-CU-LABEL: name: singlethread_one_as_acquire_fence
+  ; GFX11-CU: bb.0.entry:
+  ; GFX11-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-WGP-LABEL: name: singlethread_one_as_acquire_fence
+  ; GFX12-WGP: bb.0.entry:
+  ; GFX12-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-CU-LABEL: name: singlethread_one_as_acquire_fence
+  ; GFX12-CU: bb.0.entry:
+  ; GFX12-CU-NEXT:   S_ENDPGM 0
 entry:
   fence syncscope("singlethread-one-as") acquire
   ret void
 }
 
 define amdgpu_kernel void @singlethread_one_as_release_fence() {
-; GFX6-LABEL: singlethread_one_as_release_fence:
-; GFX6:       ; %bb.0: ; %entry
-; GFX6-NEXT:    s_endpgm
-;
-; GFX7-LABEL: singlethread_one_as_release_fence:
-; GFX7:       ; %bb.0: ; %entry
-; GFX7-NEXT:    s_endpgm
-;
-; GFX10-WGP-LABEL: singlethread_one_as_release_fence:
-; GFX10-WGP:       ; %bb.0: ; %entry
-; GFX10-WGP-NEXT:    s_endpgm
-;
-; GFX10-CU-LABEL: singlethread_one_as_release_fence:
-; GFX10-CU:       ; %bb.0: ; %entry
-; GFX10-CU-NEXT:    s_endpgm
-;
-; SKIP-CACHE-INV-LABEL: singlethread_one_as_release_fence:
-; SKIP-CACHE-INV:       ; %bb.0: ; %entry
-; SKIP-CACHE-INV-NEXT:    s_endpgm
-;
-; GFX90A-NOTTGSPLIT-LABEL: singlethread_one_as_release_fence:
-; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX90A-TGSPLIT-LABEL: singlethread_one_as_release_fence:
-; GFX90A-TGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-NOTTGSPLIT-LABEL: singlethread_one_as_release_fence:
-; GFX940-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX940-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-TGSPLIT-LABEL: singlethread_one_as_release_fence:
-; GFX940-TGSPLIT:       ; %bb.0: ; %entry
-; GFX940-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX11-WGP-LABEL: singlethread_one_as_release_fence:
-; GFX11-WGP:       ; %bb.0: ; %entry
-; GFX11-WGP-NEXT:    s_endpgm
-;
-; GFX11-CU-LABEL: singlethread_one_as_release_fence:
-; GFX11-CU:       ; %bb.0: ; %entry
-; GFX11-CU-NEXT:    s_endpgm
-;
-; GFX12-WGP-LABEL: singlethread_one_as_release_fence:
-; GFX12-WGP:       ; %bb.0: ; %entry
-; GFX12-WGP-NEXT:    s_endpgm
-;
-; GFX12-CU-LABEL: singlethread_one_as_release_fence:
-; GFX12-CU:       ; %bb.0: ; %entry
-; GFX12-CU-NEXT:    s_endpgm
+  ; GFX6-LABEL: name: singlethread_one_as_release_fence
+  ; GFX6: bb.0.entry:
+  ; GFX6-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX7-LABEL: name: singlethread_one_as_release_fence
+  ; GFX7: bb.0.entry:
+  ; GFX7-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-WGP-LABEL: name: singlethread_one_as_release_fence
+  ; GFX10-WGP: bb.0.entry:
+  ; GFX10-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-CU-LABEL: name: singlethread_one_as_release_fence
+  ; GFX10-CU: bb.0.entry:
+  ; GFX10-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; SKIP-CACHE-INV-LABEL: name: singlethread_one_as_release_fence
+  ; SKIP-CACHE-INV: bb.0.entry:
+  ; SKIP-CACHE-INV-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-NOTTGSPLIT-LABEL: name: singlethread_one_as_release_fence
+  ; GFX90A-NOTTGSPLIT: bb.0.entry:
+  ; GFX90A-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-TGSPLIT-LABEL: name: singlethread_one_as_release_fence
+  ; GFX90A-TGSPLIT: bb.0.entry:
+  ; GFX90A-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-NOTTGSPLIT-LABEL: name: singlethread_one_as_release_fence
+  ; GFX940-NOTTGSPLIT: bb.0.entry:
+  ; GFX940-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-TGSPLIT-LABEL: name: singlethread_one_as_release_fence
+  ; GFX940-TGSPLIT: bb.0.entry:
+  ; GFX940-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-WGP-LABEL: name: singlethread_one_as_release_fence
+  ; GFX11-WGP: bb.0.entry:
+  ; GFX11-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-CU-LABEL: name: singlethread_one_as_release_fence
+  ; GFX11-CU: bb.0.entry:
+  ; GFX11-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-WGP-LABEL: name: singlethread_one_as_release_fence
+  ; GFX12-WGP: bb.0.entry:
+  ; GFX12-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-CU-LABEL: name: singlethread_one_as_release_fence
+  ; GFX12-CU: bb.0.entry:
+  ; GFX12-CU-NEXT:   S_ENDPGM 0
 entry:
   fence syncscope("singlethread-one-as") release
   ret void
 }
 
 define amdgpu_kernel void @singlethread_one_as_acq_rel_fence() {
-; GFX6-LABEL: singlethread_one_as_acq_rel_fence:
-; GFX6:       ; %bb.0: ; %entry
-; GFX6-NEXT:    s_endpgm
-;
-; GFX7-LABEL: singlethread_one_as_acq_rel_fence:
-; GFX7:       ; %bb.0: ; %entry
-; GFX7-NEXT:    s_endpgm
-;
-; GFX10-WGP-LABEL: singlethread_one_as_acq_rel_fence:
-; GFX10-WGP:       ; %bb.0: ; %entry
-; GFX10-WGP-NEXT:    s_endpgm
-;
-; GFX10-CU-LABEL: singlethread_one_as_acq_rel_fence:
-; GFX10-CU:       ; %bb.0: ; %entry
-; GFX10-CU-NEXT:    s_endpgm
-;
-; SKIP-CACHE-INV-LABEL: singlethread_one_as_acq_rel_fence:
-; SKIP-CACHE-INV:       ; %bb.0: ; %entry
-; SKIP-CACHE-INV-NEXT:    s_endpgm
-;
-; GFX90A-NOTTGSPLIT-LABEL: singlethread_one_as_acq_rel_fence:
-; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX90A-TGSPLIT-LABEL: singlethread_one_as_acq_rel_fence:
-; GFX90A-TGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-NOTTGSPLIT-LABEL: singlethread_one_as_acq_rel_fence:
-; GFX940-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX940-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-TGSPLIT-LABEL: singlethread_one_as_acq_rel_fence:
-; GFX940-TGSPLIT:       ; %bb.0: ; %entry
-; GFX940-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX11-WGP-LABEL: singlethread_one_as_acq_rel_fence:
-; GFX11-WGP:       ; %bb.0: ; %entry
-; GFX11-WGP-NEXT:    s_endpgm
-;
-; GFX11-CU-LABEL: singlethread_one_as_acq_rel_fence:
-; GFX11-CU:       ; %bb.0: ; %entry
-; GFX11-CU-NEXT:    s_endpgm
-;
-; GFX12-WGP-LABEL: singlethread_one_as_acq_rel_fence:
-; GFX12-WGP:       ; %bb.0: ; %entry
-; GFX12-WGP-NEXT:    s_endpgm
-;
-; GFX12-CU-LABEL: singlethread_one_as_acq_rel_fence:
-; GFX12-CU:       ; %bb.0: ; %entry
-; GFX12-CU-NEXT:    s_endpgm
+  ; GFX6-LABEL: name: singlethread_one_as_acq_rel_fence
+  ; GFX6: bb.0.entry:
+  ; GFX6-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX7-LABEL: name: singlethread_one_as_acq_rel_fence
+  ; GFX7: bb.0.entry:
+  ; GFX7-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-WGP-LABEL: name: singlethread_one_as_acq_rel_fence
+  ; GFX10-WGP: bb.0.entry:
+  ; GFX10-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-CU-LABEL: name: singlethread_one_as_acq_rel_fence
+  ; GFX10-CU: bb.0.entry:
+  ; GFX10-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; SKIP-CACHE-INV-LABEL: name: singlethread_one_as_acq_rel_fence
+  ; SKIP-CACHE-INV: bb.0.entry:
+  ; SKIP-CACHE-INV-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-NOTTGSPLIT-LABEL: name: singlethread_one_as_acq_rel_fence
+  ; GFX90A-NOTTGSPLIT: bb.0.entry:
+  ; GFX90A-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-TGSPLIT-LABEL: name: singlethread_one_as_acq_rel_fence
+  ; GFX90A-TGSPLIT: bb.0.entry:
+  ; GFX90A-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-NOTTGSPLIT-LABEL: name: singlethread_one_as_acq_rel_fence
+  ; GFX940-NOTTGSPLIT: bb.0.entry:
+  ; GFX940-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-TGSPLIT-LABEL: name: singlethread_one_as_acq_rel_fence
+  ; GFX940-TGSPLIT: bb.0.entry:
+  ; GFX940-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-WGP-LABEL: name: singlethread_one_as_acq_rel_fence
+  ; GFX11-WGP: bb.0.entry:
+  ; GFX11-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-CU-LABEL: name: singlethread_one_as_acq_rel_fence
+  ; GFX11-CU: bb.0.entry:
+  ; GFX11-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-WGP-LABEL: name: singlethread_one_as_acq_rel_fence
+  ; GFX12-WGP: bb.0.entry:
+  ; GFX12-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-CU-LABEL: name: singlethread_one_as_acq_rel_fence
+  ; GFX12-CU: bb.0.entry:
+  ; GFX12-CU-NEXT:   S_ENDPGM 0
 entry:
   fence syncscope("singlethread-one-as") acq_rel
   ret void
 }
 
 define amdgpu_kernel void @singlethread_one_as_seq_cst_fence() {
-; GFX6-LABEL: singlethread_one_as_seq_cst_fence:
-; GFX6:       ; %bb.0: ; %entry
-; GFX6-NEXT:    s_endpgm
-;
-; GFX7-LABEL: singlethread_one_as_seq_cst_fence:
-; GFX7:       ; %bb.0: ; %entry
-; GFX7-NEXT:    s_endpgm
-;
-; GFX10-WGP-LABEL: singlethread_one_as_seq_cst_fence:
-; GFX10-WGP:       ; %bb.0: ; %entry
-; GFX10-WGP-NEXT:    s_endpgm
-;
-; GFX10-CU-LABEL: singlethread_one_as_seq_cst_fence:
-; GFX10-CU:       ; %bb.0: ; %entry
-; GFX10-CU-NEXT:    s_endpgm
-;
-; SKIP-CACHE-INV-LABEL: singlethread_one_as_seq_cst_fence:
-; SKIP-CACHE-INV:       ; %bb.0: ; %entry
-; SKIP-CACHE-INV-NEXT:    s_endpgm
-;
-; GFX90A-NOTTGSPLIT-LABEL: singlethread_one_as_seq_cst_fence:
-; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX90A-TGSPLIT-LABEL: singlethread_one_as_seq_cst_fence:
-; GFX90A-TGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-NOTTGSPLIT-LABEL: singlethread_one_as_seq_cst_fence:
-; GFX940-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX940-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-TGSPLIT-LABEL: singlethread_one_as_seq_cst_fence:
-; GFX940-TGSPLIT:       ; %bb.0: ; %entry
-; GFX940-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX11-WGP-LABEL: singlethread_one_as_seq_cst_fence:
-; GFX11-WGP:       ; %bb.0: ; %entry
-; GFX11-WGP-NEXT:    s_endpgm
-;
-; GFX11-CU-LABEL: singlethread_one_as_seq_cst_fence:
-; GFX11-CU:       ; %bb.0: ; %entry
-; GFX11-CU-NEXT:    s_endpgm
-;
-; GFX12-WGP-LABEL: singlethread_one_as_seq_cst_fence:
-; GFX12-WGP:       ; %bb.0: ; %entry
-; GFX12-WGP-NEXT:    s_endpgm
-;
-; GFX12-CU-LABEL: singlethread_one_as_seq_cst_fence:
-; GFX12-CU:       ; %bb.0: ; %entry
-; GFX12-CU-NEXT:    s_endpgm
+  ; GFX6-LABEL: name: singlethread_one_as_seq_cst_fence
+  ; GFX6: bb.0.entry:
+  ; GFX6-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX7-LABEL: name: singlethread_one_as_seq_cst_fence
+  ; GFX7: bb.0.entry:
+  ; GFX7-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-WGP-LABEL: name: singlethread_one_as_seq_cst_fence
+  ; GFX10-WGP: bb.0.entry:
+  ; GFX10-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-CU-LABEL: name: singlethread_one_as_seq_cst_fence
+  ; GFX10-CU: bb.0.entry:
+  ; GFX10-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; SKIP-CACHE-INV-LABEL: name: singlethread_one_as_seq_cst_fence
+  ; SKIP-CACHE-INV: bb.0.entry:
+  ; SKIP-CACHE-INV-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-NOTTGSPLIT-LABEL: name: singlethread_one_as_seq_cst_fence
+  ; GFX90A-NOTTGSPLIT: bb.0.entry:
+  ; GFX90A-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-TGSPLIT-LABEL: name: singlethread_one_as_seq_cst_fence
+  ; GFX90A-TGSPLIT: bb.0.entry:
+  ; GFX90A-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-NOTTGSPLIT-LABEL: name: singlethread_one_as_seq_cst_fence
+  ; GFX940-NOTTGSPLIT: bb.0.entry:
+  ; GFX940-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-TGSPLIT-LABEL: name: singlethread_one_as_seq_cst_fence
+  ; GFX940-TGSPLIT: bb.0.entry:
+  ; GFX940-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-WGP-LABEL: name: singlethread_one_as_seq_cst_fence
+  ; GFX11-WGP: bb.0.entry:
+  ; GFX11-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-CU-LABEL: name: singlethread_one_as_seq_cst_fence
+  ; GFX11-CU: bb.0.entry:
+  ; GFX11-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-WGP-LABEL: name: singlethread_one_as_seq_cst_fence
+  ; GFX12-WGP: bb.0.entry:
+  ; GFX12-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-CU-LABEL: name: singlethread_one_as_seq_cst_fence
+  ; GFX12-CU: bb.0.entry:
+  ; GFX12-CU-NEXT:   S_ENDPGM 0
 entry:
   fence syncscope("singlethread-one-as") seq_cst
   ret void
 }
 
 define amdgpu_kernel void @wavefront_acquire_fence() {
-; GFX6-LABEL: wavefront_acquire_fence:
-; GFX6:       ; %bb.0: ; %entry
-; GFX6-NEXT:    s_endpgm
-;
-; GFX7-LABEL: wavefront_acquire_fence:
-; GFX7:       ; %bb.0: ; %entry
-; GFX7-NEXT:    s_endpgm
-;
-; GFX10-WGP-LABEL: wavefront_acquire_fence:
-; GFX10-WGP:       ; %bb.0: ; %entry
-; GFX10-WGP-NEXT:    s_endpgm
-;
-; GFX10-CU-LABEL: wavefront_acquire_fence:
-; GFX10-CU:       ; %bb.0: ; %entry
-; GFX10-CU-NEXT:    s_endpgm
-;
-; SKIP-CACHE-INV-LABEL: wavefront_acquire_fence:
-; SKIP-CACHE-INV:       ; %bb.0: ; %entry
-; SKIP-CACHE-INV-NEXT:    s_endpgm
-;
-; GFX90A-NOTTGSPLIT-LABEL: wavefront_acquire_fence:
-; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX90A-TGSPLIT-LABEL: wavefront_acquire_fence:
-; GFX90A-TGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-NOTTGSPLIT-LABEL: wavefront_acquire_fence:
-; GFX940-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX940-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-TGSPLIT-LABEL: wavefront_acquire_fence:
-; GFX940-TGSPLIT:       ; %bb.0: ; %entry
-; GFX940-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX11-WGP-LABEL: wavefront_acquire_fence:
-; GFX11-WGP:       ; %bb.0: ; %entry
-; GFX11-WGP-NEXT:    s_endpgm
-;
-; GFX11-CU-LABEL: wavefront_acquire_fence:
-; GFX11-CU:       ; %bb.0: ; %entry
-; GFX11-CU-NEXT:    s_endpgm
-;
-; GFX12-WGP-LABEL: wavefront_acquire_fence:
-; GFX12-WGP:       ; %bb.0: ; %entry
-; GFX12-WGP-NEXT:    s_endpgm
-;
-; GFX12-CU-LABEL: wavefront_acquire_fence:
-; GFX12-CU:       ; %bb.0: ; %entry
-; GFX12-CU-NEXT:    s_endpgm
+  ; GFX6-LABEL: name: wavefront_acquire_fence
+  ; GFX6: bb.0.entry:
+  ; GFX6-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX7-LABEL: name: wavefront_acquire_fence
+  ; GFX7: bb.0.entry:
+  ; GFX7-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-WGP-LABEL: name: wavefront_acquire_fence
+  ; GFX10-WGP: bb.0.entry:
+  ; GFX10-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-CU-LABEL: name: wavefront_acquire_fence
+  ; GFX10-CU: bb.0.entry:
+  ; GFX10-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; SKIP-CACHE-INV-LABEL: name: wavefront_acquire_fence
+  ; SKIP-CACHE-INV: bb.0.entry:
+  ; SKIP-CACHE-INV-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-NOTTGSPLIT-LABEL: name: wavefront_acquire_fence
+  ; GFX90A-NOTTGSPLIT: bb.0.entry:
+  ; GFX90A-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-TGSPLIT-LABEL: name: wavefront_acquire_fence
+  ; GFX90A-TGSPLIT: bb.0.entry:
+  ; GFX90A-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-NOTTGSPLIT-LABEL: name: wavefront_acquire_fence
+  ; GFX940-NOTTGSPLIT: bb.0.entry:
+  ; GFX940-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-TGSPLIT-LABEL: name: wavefront_acquire_fence
+  ; GFX940-TGSPLIT: bb.0.entry:
+  ; GFX940-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-WGP-LABEL: name: wavefront_acquire_fence
+  ; GFX11-WGP: bb.0.entry:
+  ; GFX11-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-CU-LABEL: name: wavefront_acquire_fence
+  ; GFX11-CU: bb.0.entry:
+  ; GFX11-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-WGP-LABEL: name: wavefront_acquire_fence
+  ; GFX12-WGP: bb.0.entry:
+  ; GFX12-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-CU-LABEL: name: wavefront_acquire_fence
+  ; GFX12-CU: bb.0.entry:
+  ; GFX12-CU-NEXT:   S_ENDPGM 0
 entry:
   fence syncscope("wavefront") acquire
   ret void
 }
 
 define amdgpu_kernel void @wavefront_release_fence() {
-; GFX6-LABEL: wavefront_release_fence:
-; GFX6:       ; %bb.0: ; %entry
-; GFX6-NEXT:    s_endpgm
-;
-; GFX7-LABEL: wavefront_release_fence:
-; GFX7:       ; %bb.0: ; %entry
-; GFX7-NEXT:    s_endpgm
-;
-; GFX10-WGP-LABEL: wavefront_release_fence:
-; GFX10-WGP:       ; %bb.0: ; %entry
-; GFX10-WGP-NEXT:    s_endpgm
-;
-; GFX10-CU-LABEL: wavefront_release_fence:
-; GFX10-CU:       ; %bb.0: ; %entry
-; GFX10-CU-NEXT:    s_endpgm
-;
-; SKIP-CACHE-INV-LABEL: wavefront_release_fence:
-; SKIP-CACHE-INV:       ; %bb.0: ; %entry
-; SKIP-CACHE-INV-NEXT:    s_endpgm
-;
-; GFX90A-NOTTGSPLIT-LABEL: wavefront_release_fence:
-; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX90A-TGSPLIT-LABEL: wavefront_release_fence:
-; GFX90A-TGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-NOTTGSPLIT-LABEL: wavefront_release_fence:
-; GFX940-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX940-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-TGSPLIT-LABEL: wavefront_release_fence:
-; GFX940-TGSPLIT:       ; %bb.0: ; %entry
-; GFX940-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX11-WGP-LABEL: wavefront_release_fence:
-; GFX11-WGP:       ; %bb.0: ; %entry
-; GFX11-WGP-NEXT:    s_endpgm
-;
-; GFX11-CU-LABEL: wavefront_release_fence:
-; GFX11-CU:       ; %bb.0: ; %entry
-; GFX11-CU-NEXT:    s_endpgm
-;
-; GFX12-WGP-LABEL: wavefront_release_fence:
-; GFX12-WGP:       ; %bb.0: ; %entry
-; GFX12-WGP-NEXT:    s_endpgm
-;
-; GFX12-CU-LABEL: wavefront_release_fence:
-; GFX12-CU:       ; %bb.0: ; %entry
-; GFX12-CU-NEXT:    s_endpgm
+  ; GFX6-LABEL: name: wavefront_release_fence
+  ; GFX6: bb.0.entry:
+  ; GFX6-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX7-LABEL: name: wavefront_release_fence
+  ; GFX7: bb.0.entry:
+  ; GFX7-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-WGP-LABEL: name: wavefront_release_fence
+  ; GFX10-WGP: bb.0.entry:
+  ; GFX10-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-CU-LABEL: name: wavefront_release_fence
+  ; GFX10-CU: bb.0.entry:
+  ; GFX10-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; SKIP-CACHE-INV-LABEL: name: wavefront_release_fence
+  ; SKIP-CACHE-INV: bb.0.entry:
+  ; SKIP-CACHE-INV-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-NOTTGSPLIT-LABEL: name: wavefront_release_fence
+  ; GFX90A-NOTTGSPLIT: bb.0.entry:
+  ; GFX90A-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-TGSPLIT-LABEL: name: wavefront_release_fence
+  ; GFX90A-TGSPLIT: bb.0.entry:
+  ; GFX90A-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-NOTTGSPLIT-LABEL: name: wavefront_release_fence
+  ; GFX940-NOTTGSPLIT: bb.0.entry:
+  ; GFX940-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-TGSPLIT-LABEL: name: wavefront_release_fence
+  ; GFX940-TGSPLIT: bb.0.entry:
+  ; GFX940-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-WGP-LABEL: name: wavefront_release_fence
+  ; GFX11-WGP: bb.0.entry:
+  ; GFX11-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-CU-LABEL: name: wavefront_release_fence
+  ; GFX11-CU: bb.0.entry:
+  ; GFX11-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-WGP-LABEL: name: wavefront_release_fence
+  ; GFX12-WGP: bb.0.entry:
+  ; GFX12-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-CU-LABEL: name: wavefront_release_fence
+  ; GFX12-CU: bb.0.entry:
+  ; GFX12-CU-NEXT:   S_ENDPGM 0
 entry:
   fence syncscope("wavefront") release
   ret void
 }
 
 define amdgpu_kernel void @wavefront_acq_rel_fence() {
-; GFX6-LABEL: wavefront_acq_rel_fence:
-; GFX6:       ; %bb.0: ; %entry
-; GFX6-NEXT:    s_endpgm
-;
-; GFX7-LABEL: wavefront_acq_rel_fence:
-; GFX7:       ; %bb.0: ; %entry
-; GFX7-NEXT:    s_endpgm
-;
-; GFX10-WGP-LABEL: wavefront_acq_rel_fence:
-; GFX10-WGP:       ; %bb.0: ; %entry
-; GFX10-WGP-NEXT:    s_endpgm
-;
-; GFX10-CU-LABEL: wavefront_acq_rel_fence:
-; GFX10-CU:       ; %bb.0: ; %entry
-; GFX10-CU-NEXT:    s_endpgm
-;
-; SKIP-CACHE-INV-LABEL: wavefront_acq_rel_fence:
-; SKIP-CACHE-INV:       ; %bb.0: ; %entry
-; SKIP-CACHE-INV-NEXT:    s_endpgm
-;
-; GFX90A-NOTTGSPLIT-LABEL: wavefront_acq_rel_fence:
-; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX90A-TGSPLIT-LABEL: wavefront_acq_rel_fence:
-; GFX90A-TGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-NOTTGSPLIT-LABEL: wavefront_acq_rel_fence:
-; GFX940-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX940-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-TGSPLIT-LABEL: wavefront_acq_rel_fence:
-; GFX940-TGSPLIT:       ; %bb.0: ; %entry
-; GFX940-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX11-WGP-LABEL: wavefront_acq_rel_fence:
-; GFX11-WGP:       ; %bb.0: ; %entry
-; GFX11-WGP-NEXT:    s_endpgm
-;
-; GFX11-CU-LABEL: wavefront_acq_rel_fence:
-; GFX11-CU:       ; %bb.0: ; %entry
-; GFX11-CU-NEXT:    s_endpgm
-;
-; GFX12-WGP-LABEL: wavefront_acq_rel_fence:
-; GFX12-WGP:       ; %bb.0: ; %entry
-; GFX12-WGP-NEXT:    s_endpgm
-;
-; GFX12-CU-LABEL: wavefront_acq_rel_fence:
-; GFX12-CU:       ; %bb.0: ; %entry
-; GFX12-CU-NEXT:    s_endpgm
+  ; GFX6-LABEL: name: wavefront_acq_rel_fence
+  ; GFX6: bb.0.entry:
+  ; GFX6-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX7-LABEL: name: wavefront_acq_rel_fence
+  ; GFX7: bb.0.entry:
+  ; GFX7-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-WGP-LABEL: name: wavefront_acq_rel_fence
+  ; GFX10-WGP: bb.0.entry:
+  ; GFX10-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-CU-LABEL: name: wavefront_acq_rel_fence
+  ; GFX10-CU: bb.0.entry:
+  ; GFX10-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; SKIP-CACHE-INV-LABEL: name: wavefront_acq_rel_fence
+  ; SKIP-CACHE-INV: bb.0.entry:
+  ; SKIP-CACHE-INV-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-NOTTGSPLIT-LABEL: name: wavefront_acq_rel_fence
+  ; GFX90A-NOTTGSPLIT: bb.0.entry:
+  ; GFX90A-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-TGSPLIT-LABEL: name: wavefront_acq_rel_fence
+  ; GFX90A-TGSPLIT: bb.0.entry:
+  ; GFX90A-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-NOTTGSPLIT-LABEL: name: wavefront_acq_rel_fence
+  ; GFX940-NOTTGSPLIT: bb.0.entry:
+  ; GFX940-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-TGSPLIT-LABEL: name: wavefront_acq_rel_fence
+  ; GFX940-TGSPLIT: bb.0.entry:
+  ; GFX940-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-WGP-LABEL: name: wavefront_acq_rel_fence
+  ; GFX11-WGP: bb.0.entry:
+  ; GFX11-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-CU-LABEL: name: wavefront_acq_rel_fence
+  ; GFX11-CU: bb.0.entry:
+  ; GFX11-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-WGP-LABEL: name: wavefront_acq_rel_fence
+  ; GFX12-WGP: bb.0.entry:
+  ; GFX12-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-CU-LABEL: name: wavefront_acq_rel_fence
+  ; GFX12-CU: bb.0.entry:
+  ; GFX12-CU-NEXT:   S_ENDPGM 0
 entry:
   fence syncscope("wavefront") acq_rel
   ret void
 }
 
 define amdgpu_kernel void @wavefront_seq_cst_fence() {
-; GFX6-LABEL: wavefront_seq_cst_fence:
-; GFX6:       ; %bb.0: ; %entry
-; GFX6-NEXT:    s_endpgm
-;
-; GFX7-LABEL: wavefront_seq_cst_fence:
-; GFX7:       ; %bb.0: ; %entry
-; GFX7-NEXT:    s_endpgm
-;
-; GFX10-WGP-LABEL: wavefront_seq_cst_fence:
-; GFX10-WGP:       ; %bb.0: ; %entry
-; GFX10-WGP-NEXT:    s_endpgm
-;
-; GFX10-CU-LABEL: wavefront_seq_cst_fence:
-; GFX10-CU:       ; %bb.0: ; %entry
-; GFX10-CU-NEXT:    s_endpgm
-;
-; SKIP-CACHE-INV-LABEL: wavefront_seq_cst_fence:
-; SKIP-CACHE-INV:       ; %bb.0: ; %entry
-; SKIP-CACHE-INV-NEXT:    s_endpgm
-;
-; GFX90A-NOTTGSPLIT-LABEL: wavefront_seq_cst_fence:
-; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX90A-TGSPLIT-LABEL: wavefront_seq_cst_fence:
-; GFX90A-TGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-NOTTGSPLIT-LABEL: wavefront_seq_cst_fence:
-; GFX940-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX940-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-TGSPLIT-LABEL: wavefront_seq_cst_fence:
-; GFX940-TGSPLIT:       ; %bb.0: ; %entry
-; GFX940-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX11-WGP-LABEL: wavefront_seq_cst_fence:
-; GFX11-WGP:       ; %bb.0: ; %entry
-; GFX11-WGP-NEXT:    s_endpgm
-;
-; GFX11-CU-LABEL: wavefront_seq_cst_fence:
-; GFX11-CU:       ; %bb.0: ; %entry
-; GFX11-CU-NEXT:    s_endpgm
-;
-; GFX12-WGP-LABEL: wavefront_seq_cst_fence:
-; GFX12-WGP:       ; %bb.0: ; %entry
-; GFX12-WGP-NEXT:    s_endpgm
-;
-; GFX12-CU-LABEL: wavefront_seq_cst_fence:
-; GFX12-CU:       ; %bb.0: ; %entry
-; GFX12-CU-NEXT:    s_endpgm
+  ; GFX6-LABEL: name: wavefront_seq_cst_fence
+  ; GFX6: bb.0.entry:
+  ; GFX6-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX7-LABEL: name: wavefront_seq_cst_fence
+  ; GFX7: bb.0.entry:
+  ; GFX7-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-WGP-LABEL: name: wavefront_seq_cst_fence
+  ; GFX10-WGP: bb.0.entry:
+  ; GFX10-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-CU-LABEL: name: wavefront_seq_cst_fence
+  ; GFX10-CU: bb.0.entry:
+  ; GFX10-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; SKIP-CACHE-INV-LABEL: name: wavefront_seq_cst_fence
+  ; SKIP-CACHE-INV: bb.0.entry:
+  ; SKIP-CACHE-INV-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-NOTTGSPLIT-LABEL: name: wavefront_seq_cst_fence
+  ; GFX90A-NOTTGSPLIT: bb.0.entry:
+  ; GFX90A-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-TGSPLIT-LABEL: name: wavefront_seq_cst_fence
+  ; GFX90A-TGSPLIT: bb.0.entry:
+  ; GFX90A-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-NOTTGSPLIT-LABEL: name: wavefront_seq_cst_fence
+  ; GFX940-NOTTGSPLIT: bb.0.entry:
+  ; GFX940-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-TGSPLIT-LABEL: name: wavefront_seq_cst_fence
+  ; GFX940-TGSPLIT: bb.0.entry:
+  ; GFX940-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-WGP-LABEL: name: wavefront_seq_cst_fence
+  ; GFX11-WGP: bb.0.entry:
+  ; GFX11-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-CU-LABEL: name: wavefront_seq_cst_fence
+  ; GFX11-CU: bb.0.entry:
+  ; GFX11-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-WGP-LABEL: name: wavefront_seq_cst_fence
+  ; GFX12-WGP: bb.0.entry:
+  ; GFX12-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-CU-LABEL: name: wavefront_seq_cst_fence
+  ; GFX12-CU: bb.0.entry:
+  ; GFX12-CU-NEXT:   S_ENDPGM 0
 entry:
   fence syncscope("wavefront") seq_cst
   ret void
 }
 
 define amdgpu_kernel void @wavefront_one_as_acquire_fence() {
-; GFX6-LABEL: wavefront_one_as_acquire_fence:
-; GFX6:       ; %bb.0: ; %entry
-; GFX6-NEXT:    s_endpgm
-;
-; GFX7-LABEL: wavefront_one_as_acquire_fence:
-; GFX7:       ; %bb.0: ; %entry
-; GFX7-NEXT:    s_endpgm
-;
-; GFX10-WGP-LABEL: wavefront_one_as_acquire_fence:
-; GFX10-WGP:       ; %bb.0: ; %entry
-; GFX10-WGP-NEXT:    s_endpgm
-;
-; GFX10-CU-LABEL: wavefront_one_as_acquire_fence:
-; GFX10-CU:       ; %bb.0: ; %entry
-; GFX10-CU-NEXT:    s_endpgm
-;
-; SKIP-CACHE-INV-LABEL: wavefront_one_as_acquire_fence:
-; SKIP-CACHE-INV:       ; %bb.0: ; %entry
-; SKIP-CACHE-INV-NEXT:    s_endpgm
-;
-; GFX90A-NOTTGSPLIT-LABEL: wavefront_one_as_acquire_fence:
-; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX90A-TGSPLIT-LABEL: wavefront_one_as_acquire_fence:
-; GFX90A-TGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-NOTTGSPLIT-LABEL: wavefront_one_as_acquire_fence:
-; GFX940-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX940-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-TGSPLIT-LABEL: wavefront_one_as_acquire_fence:
-; GFX940-TGSPLIT:       ; %bb.0: ; %entry
-; GFX940-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX11-WGP-LABEL: wavefront_one_as_acquire_fence:
-; GFX11-WGP:       ; %bb.0: ; %entry
-; GFX11-WGP-NEXT:    s_endpgm
-;
-; GFX11-CU-LABEL: wavefront_one_as_acquire_fence:
-; GFX11-CU:       ; %bb.0: ; %entry
-; GFX11-CU-NEXT:    s_endpgm
-;
-; GFX12-WGP-LABEL: wavefront_one_as_acquire_fence:
-; GFX12-WGP:       ; %bb.0: ; %entry
-; GFX12-WGP-NEXT:    s_endpgm
-;
-; GFX12-CU-LABEL: wavefront_one_as_acquire_fence:
-; GFX12-CU:       ; %bb.0: ; %entry
-; GFX12-CU-NEXT:    s_endpgm
+  ; GFX6-LABEL: name: wavefront_one_as_acquire_fence
+  ; GFX6: bb.0.entry:
+  ; GFX6-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX7-LABEL: name: wavefront_one_as_acquire_fence
+  ; GFX7: bb.0.entry:
+  ; GFX7-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-WGP-LABEL: name: wavefront_one_as_acquire_fence
+  ; GFX10-WGP: bb.0.entry:
+  ; GFX10-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-CU-LABEL: name: wavefront_one_as_acquire_fence
+  ; GFX10-CU: bb.0.entry:
+  ; GFX10-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; SKIP-CACHE-INV-LABEL: name: wavefront_one_as_acquire_fence
+  ; SKIP-CACHE-INV: bb.0.entry:
+  ; SKIP-CACHE-INV-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-NOTTGSPLIT-LABEL: name: wavefront_one_as_acquire_fence
+  ; GFX90A-NOTTGSPLIT: bb.0.entry:
+  ; GFX90A-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-TGSPLIT-LABEL: name: wavefront_one_as_acquire_fence
+  ; GFX90A-TGSPLIT: bb.0.entry:
+  ; GFX90A-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-NOTTGSPLIT-LABEL: name: wavefront_one_as_acquire_fence
+  ; GFX940-NOTTGSPLIT: bb.0.entry:
+  ; GFX940-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-TGSPLIT-LABEL: name: wavefront_one_as_acquire_fence
+  ; GFX940-TGSPLIT: bb.0.entry:
+  ; GFX940-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-WGP-LABEL: name: wavefront_one_as_acquire_fence
+  ; GFX11-WGP: bb.0.entry:
+  ; GFX11-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-CU-LABEL: name: wavefront_one_as_acquire_fence
+  ; GFX11-CU: bb.0.entry:
+  ; GFX11-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-WGP-LABEL: name: wavefront_one_as_acquire_fence
+  ; GFX12-WGP: bb.0.entry:
+  ; GFX12-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-CU-LABEL: name: wavefront_one_as_acquire_fence
+  ; GFX12-CU: bb.0.entry:
+  ; GFX12-CU-NEXT:   S_ENDPGM 0
 entry:
   fence syncscope("wavefront-one-as") acquire
   ret void
 }
 
 define amdgpu_kernel void @wavefront_one_as_release_fence() {
-; GFX6-LABEL: wavefront_one_as_release_fence:
-; GFX6:       ; %bb.0: ; %entry
-; GFX6-NEXT:    s_endpgm
-;
-; GFX7-LABEL: wavefront_one_as_release_fence:
-; GFX7:       ; %bb.0: ; %entry
-; GFX7-NEXT:    s_endpgm
-;
-; GFX10-WGP-LABEL: wavefront_one_as_release_fence:
-; GFX10-WGP:       ; %bb.0: ; %entry
-; GFX10-WGP-NEXT:    s_endpgm
-;
-; GFX10-CU-LABEL: wavefront_one_as_release_fence:
-; GFX10-CU:       ; %bb.0: ; %entry
-; GFX10-CU-NEXT:    s_endpgm
-;
-; SKIP-CACHE-INV-LABEL: wavefront_one_as_release_fence:
-; SKIP-CACHE-INV:       ; %bb.0: ; %entry
-; SKIP-CACHE-INV-NEXT:    s_endpgm
-;
-; GFX90A-NOTTGSPLIT-LABEL: wavefront_one_as_release_fence:
-; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX90A-TGSPLIT-LABEL: wavefront_one_as_release_fence:
-; GFX90A-TGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-NOTTGSPLIT-LABEL: wavefront_one_as_release_fence:
-; GFX940-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX940-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-TGSPLIT-LABEL: wavefront_one_as_release_fence:
-; GFX940-TGSPLIT:       ; %bb.0: ; %entry
-; GFX940-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX11-WGP-LABEL: wavefront_one_as_release_fence:
-; GFX11-WGP:       ; %bb.0: ; %entry
-; GFX11-WGP-NEXT:    s_endpgm
-;
-; GFX11-CU-LABEL: wavefront_one_as_release_fence:
-; GFX11-CU:       ; %bb.0: ; %entry
-; GFX11-CU-NEXT:    s_endpgm
-;
-; GFX12-WGP-LABEL: wavefront_one_as_release_fence:
-; GFX12-WGP:       ; %bb.0: ; %entry
-; GFX12-WGP-NEXT:    s_endpgm
-;
-; GFX12-CU-LABEL: wavefront_one_as_release_fence:
-; GFX12-CU:       ; %bb.0: ; %entry
-; GFX12-CU-NEXT:    s_endpgm
+  ; GFX6-LABEL: name: wavefront_one_as_release_fence
+  ; GFX6: bb.0.entry:
+  ; GFX6-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX7-LABEL: name: wavefront_one_as_release_fence
+  ; GFX7: bb.0.entry:
+  ; GFX7-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-WGP-LABEL: name: wavefront_one_as_release_fence
+  ; GFX10-WGP: bb.0.entry:
+  ; GFX10-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-CU-LABEL: name: wavefront_one_as_release_fence
+  ; GFX10-CU: bb.0.entry:
+  ; GFX10-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; SKIP-CACHE-INV-LABEL: name: wavefront_one_as_release_fence
+  ; SKIP-CACHE-INV: bb.0.entry:
+  ; SKIP-CACHE-INV-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-NOTTGSPLIT-LABEL: name: wavefront_one_as_release_fence
+  ; GFX90A-NOTTGSPLIT: bb.0.entry:
+  ; GFX90A-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-TGSPLIT-LABEL: name: wavefront_one_as_release_fence
+  ; GFX90A-TGSPLIT: bb.0.entry:
+  ; GFX90A-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-NOTTGSPLIT-LABEL: name: wavefront_one_as_release_fence
+  ; GFX940-NOTTGSPLIT: bb.0.entry:
+  ; GFX940-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-TGSPLIT-LABEL: name: wavefront_one_as_release_fence
+  ; GFX940-TGSPLIT: bb.0.entry:
+  ; GFX940-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-WGP-LABEL: name: wavefront_one_as_release_fence
+  ; GFX11-WGP: bb.0.entry:
+  ; GFX11-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-CU-LABEL: name: wavefront_one_as_release_fence
+  ; GFX11-CU: bb.0.entry:
+  ; GFX11-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-WGP-LABEL: name: wavefront_one_as_release_fence
+  ; GFX12-WGP: bb.0.entry:
+  ; GFX12-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-CU-LABEL: name: wavefront_one_as_release_fence
+  ; GFX12-CU: bb.0.entry:
+  ; GFX12-CU-NEXT:   S_ENDPGM 0
 entry:
   fence syncscope("wavefront-one-as") release
   ret void
 }
 
 define amdgpu_kernel void @wavefront_one_as_acq_rel_fence() {
-; GFX6-LABEL: wavefront_one_as_acq_rel_fence:
-; GFX6:       ; %bb.0: ; %entry
-; GFX6-NEXT:    s_endpgm
-;
-; GFX7-LABEL: wavefront_one_as_acq_rel_fence:
-; GFX7:       ; %bb.0: ; %entry
-; GFX7-NEXT:    s_endpgm
-;
-; GFX10-WGP-LABEL: wavefront_one_as_acq_rel_fence:
-; GFX10-WGP:       ; %bb.0: ; %entry
-; GFX10-WGP-NEXT:    s_endpgm
-;
-; GFX10-CU-LABEL: wavefront_one_as_acq_rel_fence:
-; GFX10-CU:       ; %bb.0: ; %entry
-; GFX10-CU-NEXT:    s_endpgm
-;
-; SKIP-CACHE-INV-LABEL: wavefront_one_as_acq_rel_fence:
-; SKIP-CACHE-INV:       ; %bb.0: ; %entry
-; SKIP-CACHE-INV-NEXT:    s_endpgm
-;
-; GFX90A-NOTTGSPLIT-LABEL: wavefront_one_as_acq_rel_fence:
-; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX90A-TGSPLIT-LABEL: wavefront_one_as_acq_rel_fence:
-; GFX90A-TGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-NOTTGSPLIT-LABEL: wavefront_one_as_acq_rel_fence:
-; GFX940-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX940-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-TGSPLIT-LABEL: wavefront_one_as_acq_rel_fence:
-; GFX940-TGSPLIT:       ; %bb.0: ; %entry
-; GFX940-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX11-WGP-LABEL: wavefront_one_as_acq_rel_fence:
-; GFX11-WGP:       ; %bb.0: ; %entry
-; GFX11-WGP-NEXT:    s_endpgm
-;
-; GFX11-CU-LABEL: wavefront_one_as_acq_rel_fence:
-; GFX11-CU:       ; %bb.0: ; %entry
-; GFX11-CU-NEXT:    s_endpgm
-;
-; GFX12-WGP-LABEL: wavefront_one_as_acq_rel_fence:
-; GFX12-WGP:       ; %bb.0: ; %entry
-; GFX12-WGP-NEXT:    s_endpgm
-;
-; GFX12-CU-LABEL: wavefront_one_as_acq_rel_fence:
-; GFX12-CU:       ; %bb.0: ; %entry
-; GFX12-CU-NEXT:    s_endpgm
+  ; GFX6-LABEL: name: wavefront_one_as_acq_rel_fence
+  ; GFX6: bb.0.entry:
+  ; GFX6-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX7-LABEL: name: wavefront_one_as_acq_rel_fence
+  ; GFX7: bb.0.entry:
+  ; GFX7-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-WGP-LABEL: name: wavefront_one_as_acq_rel_fence
+  ; GFX10-WGP: bb.0.entry:
+  ; GFX10-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-CU-LABEL: name: wavefront_one_as_acq_rel_fence
+  ; GFX10-CU: bb.0.entry:
+  ; GFX10-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; SKIP-CACHE-INV-LABEL: name: wavefront_one_as_acq_rel_fence
+  ; SKIP-CACHE-INV: bb.0.entry:
+  ; SKIP-CACHE-INV-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-NOTTGSPLIT-LABEL: name: wavefront_one_as_acq_rel_fence
+  ; GFX90A-NOTTGSPLIT: bb.0.entry:
+  ; GFX90A-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-TGSPLIT-LABEL: name: wavefront_one_as_acq_rel_fence
+  ; GFX90A-TGSPLIT: bb.0.entry:
+  ; GFX90A-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-NOTTGSPLIT-LABEL: name: wavefront_one_as_acq_rel_fence
+  ; GFX940-NOTTGSPLIT: bb.0.entry:
+  ; GFX940-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-TGSPLIT-LABEL: name: wavefront_one_as_acq_rel_fence
+  ; GFX940-TGSPLIT: bb.0.entry:
+  ; GFX940-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-WGP-LABEL: name: wavefront_one_as_acq_rel_fence
+  ; GFX11-WGP: bb.0.entry:
+  ; GFX11-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-CU-LABEL: name: wavefront_one_as_acq_rel_fence
+  ; GFX11-CU: bb.0.entry:
+  ; GFX11-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-WGP-LABEL: name: wavefront_one_as_acq_rel_fence
+  ; GFX12-WGP: bb.0.entry:
+  ; GFX12-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-CU-LABEL: name: wavefront_one_as_acq_rel_fence
+  ; GFX12-CU: bb.0.entry:
+  ; GFX12-CU-NEXT:   S_ENDPGM 0
 entry:
   fence syncscope("wavefront-one-as") acq_rel
   ret void
 }
 
 define amdgpu_kernel void @wavefront_one_as_seq_cst_fence() {
-; GFX6-LABEL: wavefront_one_as_seq_cst_fence:
-; GFX6:       ; %bb.0: ; %entry
-; GFX6-NEXT:    s_endpgm
-;
-; GFX7-LABEL: wavefront_one_as_seq_cst_fence:
-; GFX7:       ; %bb.0: ; %entry
-; GFX7-NEXT:    s_endpgm
-;
-; GFX10-WGP-LABEL: wavefront_one_as_seq_cst_fence:
-; GFX10-WGP:       ; %bb.0: ; %entry
-; GFX10-WGP-NEXT:    s_endpgm
-;
-; GFX10-CU-LABEL: wavefront_one_as_seq_cst_fence:
-; GFX10-CU:       ; %bb.0: ; %entry
-; GFX10-CU-NEXT:    s_endpgm
-;
-; SKIP-CACHE-INV-LABEL: wavefront_one_as_seq_cst_fence:
-; SKIP-CACHE-INV:       ; %bb.0: ; %entry
-; SKIP-CACHE-INV-NEXT:    s_endpgm
-;
-; GFX90A-NOTTGSPLIT-LABEL: wavefront_one_as_seq_cst_fence:
-; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX90A-TGSPLIT-LABEL: wavefront_one_as_seq_cst_fence:
-; GFX90A-TGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-NOTTGSPLIT-LABEL: wavefront_one_as_seq_cst_fence:
-; GFX940-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX940-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-TGSPLIT-LABEL: wavefront_one_as_seq_cst_fence:
-; GFX940-TGSPLIT:       ; %bb.0: ; %entry
-; GFX940-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX11-WGP-LABEL: wavefront_one_as_seq_cst_fence:
-; GFX11-WGP:       ; %bb.0: ; %entry
-; GFX11-WGP-NEXT:    s_endpgm
-;
-; GFX11-CU-LABEL: wavefront_one_as_seq_cst_fence:
-; GFX11-CU:       ; %bb.0: ; %entry
-; GFX11-CU-NEXT:    s_endpgm
-;
-; GFX12-WGP-LABEL: wavefront_one_as_seq_cst_fence:
-; GFX12-WGP:       ; %bb.0: ; %entry
-; GFX12-WGP-NEXT:    s_endpgm
-;
-; GFX12-CU-LABEL: wavefront_one_as_seq_cst_fence:
-; GFX12-CU:       ; %bb.0: ; %entry
-; GFX12-CU-NEXT:    s_endpgm
+  ; GFX6-LABEL: name: wavefront_one_as_seq_cst_fence
+  ; GFX6: bb.0.entry:
+  ; GFX6-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX7-LABEL: name: wavefront_one_as_seq_cst_fence
+  ; GFX7: bb.0.entry:
+  ; GFX7-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-WGP-LABEL: name: wavefront_one_as_seq_cst_fence
+  ; GFX10-WGP: bb.0.entry:
+  ; GFX10-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX10-CU-LABEL: name: wavefront_one_as_seq_cst_fence
+  ; GFX10-CU: bb.0.entry:
+  ; GFX10-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; SKIP-CACHE-INV-LABEL: name: wavefront_one_as_seq_cst_fence
+  ; SKIP-CACHE-INV: bb.0.entry:
+  ; SKIP-CACHE-INV-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-NOTTGSPLIT-LABEL: name: wavefront_one_as_seq_cst_fence
+  ; GFX90A-NOTTGSPLIT: bb.0.entry:
+  ; GFX90A-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX90A-TGSPLIT-LABEL: name: wavefront_one_as_seq_cst_fence
+  ; GFX90A-TGSPLIT: bb.0.entry:
+  ; GFX90A-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-NOTTGSPLIT-LABEL: name: wavefront_one_as_seq_cst_fence
+  ; GFX940-NOTTGSPLIT: bb.0.entry:
+  ; GFX940-NOTTGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX940-TGSPLIT-LABEL: name: wavefront_one_as_seq_cst_fence
+  ; GFX940-TGSPLIT: bb.0.entry:
+  ; GFX940-TGSPLIT-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-WGP-LABEL: name: wavefront_one_as_seq_cst_fence
+  ; GFX11-WGP: bb.0.entry:
+  ; GFX11-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX11-CU-LABEL: name: wavefront_one_as_seq_cst_fence
+  ; GFX11-CU: bb.0.entry:
+  ; GFX11-CU-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-WGP-LABEL: name: wavefront_one_as_seq_cst_fence
+  ; GFX12-WGP: bb.0.entry:
+  ; GFX12-WGP-NEXT:   S_ENDPGM 0
+  ;
+  ; GFX12-CU-LABEL: name: wavefront_one_as_seq_cst_fence
+  ; GFX12-CU: bb.0.entry:
+  ; GFX12-CU-NEXT:   S_ENDPGM 0
 entry:
   fence syncscope("wavefront-one-as") seq_cst
   ret void
 }
 
 define amdgpu_kernel void @workgroup_acquire_fence() {
-; GFX6-LABEL: workgroup_acquire_fence:
-; GFX6:       ; %bb.0: ; %entry
-; GFX6-NEXT:    s_endpgm
-;
-; GFX7-LABEL: workgroup_acquire_fence:
-; GFX7:       ; %bb.0: ; %entry
-; GFX7-NEXT:    s_endpgm
-;
-; GFX10-WGP-LABEL: workgroup_acquire_fence:
-; GFX10-WGP:       ; %bb.0: ; %entry
-; GFX10-WGP-NEXT:    buffer_gl0_inv
-; GFX10-WGP-NEXT:    s_endpgm
-;
-; GFX10-CU-LABEL: workgroup_acquire_fence:
-; GFX10-CU:       ; %bb.0: ; %entry
-; GFX10-CU-NEXT:    s_endpgm
-;
-; SKIP-CACHE-INV-LABEL: workgroup_acquire_fence:
-; SKIP-CACHE-INV:       ; %bb.0: ; %entry
-; SKIP-CACHE-INV-NEXT:    s_endpgm
-;
-; GFX90A-NOTTGSPLIT-LABEL: workgroup_acquire_fence:
-; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX90A-TGSPLIT-LABEL: workgroup_acquire_fence:
-; GFX90A-TGSPLIT:       ; %bb.0: ; %entry
-; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol
-; GFX90A-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-NOTTGSPLIT-LABEL: workgroup_acquire_fence:
-; GFX940-NOTTGSPLIT:       ; %bb.0: ; %entry
-; GFX940-NOTTGSPLIT-NEXT:    s_endpgm
-;
-; GFX940-TGSPLIT-LABEL: workgroup_acquire_fence:
-; GFX940-TGSPLIT:       ; %bb.0: ; %entry
-; GFX940-TGSPLIT-NEXT:    buffer_inv sc0
-; GFX940-TGSPLIT-NEXT:    s_endpgm
-;
-; GFX11-WGP-LABEL: workgroup_acquire_fence:
-; GFX11-WGP:       ; %bb.0: ; %entry
-; GFX11-WGP-NEXT:    buffer_gl0_inv
-; GFX11-WGP-NEXT:    s_endpgm
-;
-; GFX11-CU-LABEL: workgroup_acquire_fence:
-; GFX11-CU:       ; %bb.0: ; %entry
-; GFX11-CU-NEXT:    s_endpgm
-;
-; GFX12-WGP-LABEL: workgroup_acquire_fence:
-; GFX12-WGP:       ; %bb.0: ; %entry
-; GFX12-WGP-NEXT:    global_inv scope:SCOPE_SE
-; GFX12-WGP-NEXT:    s_endpgm
-;
-; GFX12-CU-LABEL: workgroup_acquire_fence:
-; GFX12-CU:       ; %bb.0: ; %entry
-; GFX12-CU-NEXT:    s_endpgm
+  ; GFX6-LABEL: name: workgroup_acquire_fence
+  ; GFX6: bb.0.entry:
+  ; GFX6-NEXT:   S_WAITCNT_soft 127
----------------
jayfoad wrote:

Good example here of where all the waitcnts were removed.

https://github.com/llvm/llvm-project/pull/90601


More information about the llvm-commits mailing list