[llvm] [AMDGPU] Remove redundant S_WAIT_XCNT after inserting S_SET_VGPR_MSB (PR #188527)

Jay Foad via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 25 13:57:45 PDT 2026


================
@@ -1010,3 +1010,36 @@ body:             |
 
     ; ASM: NumVgprs: 514
 ...
+
+# ASM-LABEL: {{^}}redundant_xcnt:
+# DIS-LABEL: <redundant_xcnt>:
+---
+name: redundant_xcnt
+tracksRegLiveness: true
+body: |
+  bb.0:
+    ; ASM: %bb.0:
+
+    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr256, $vgpr257
+
+    ; GCN-NEXT: global_load_b32 v5, v[0:1], off
+    $vgpr5 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec
+
+    ; GCN-NEXT: global_load_b32 v5, v[2:3], off
+    $vgpr5 = GLOBAL_LOAD_DWORD $vgpr2_vgpr3, 0, 0, implicit $exec
+
+    S_WAIT_XCNT 1
+
+    ; GCN-NEXT: s_set_vgpr_msb 4
+    ; ASM-SAME:                                         ;  msbs: dst=0 src0=0 src1=1 src2=0
+    ; GCN-NEXT: v_add_f32_e32 v0, 1, v0 /*v256*/
+    $vgpr0 = V_ADD_F32_e32 1, $vgpr256, implicit $mode, implicit $exec
+
+    S_WAIT_XCNT 0
----------------
jayfoad wrote:

Yes!

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


More information about the llvm-commits mailing list