R600: Call EmitFunctionHeader() in the AsmPrinter to populate the ELF symbol table
[oota-llvm.git] / test / CodeGen / R600 / local-atomics.ll
index 65802e91a46814c13239b95f21976a590ea3abc9..340290c4f94b0b87691d7630a1acd4201461c3c4 100644 (file)
@@ -2,7 +2,7 @@
 ; RUN: llc -march=r600 -mcpu=bonaire -verify-machineinstrs < %s | FileCheck -check-prefix=CI -check-prefix=FUNC %s
 ; RUN: llc -march=r600 -mcpu=redwood -verify-machineinstrs < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
 
-; FUNC-LABEL: @lds_atomic_xchg_ret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_xchg_ret_i32:
 ; EG: LDS_WRXCHG_RET *
 ; SI: S_LOAD_DWORD [[SPTR:s[0-9]+]],
 ; SI: V_MOV_B32_e32 [[DATA:v[0-9]+]], 4
@@ -16,7 +16,7 @@ define void @lds_atomic_xchg_ret_i32(i32 addrspace(1)* %out, i32 addrspace(3)* %
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_xchg_ret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_xchg_ret_i32_offset:
 ; EG: LDS_WRXCHG_RET *
 ; SI: DS_WRXCHG_RTN_B32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}, 0x10
 ; SI: S_ENDPGM
@@ -28,7 +28,7 @@ define void @lds_atomic_xchg_ret_i32_offset(i32 addrspace(1)* %out, i32 addrspac
 }
 
 ; XXX - Is it really necessary to load 4 into VGPR?
-; FUNC-LABEL: @lds_atomic_add_ret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_add_ret_i32:
 ; EG: LDS_ADD_RET *
 ; SI: S_LOAD_DWORD [[SPTR:s[0-9]+]],
 ; SI: V_MOV_B32_e32 [[DATA:v[0-9]+]], 4
@@ -42,7 +42,7 @@ define void @lds_atomic_add_ret_i32(i32 addrspace(1)* %out, i32 addrspace(3)* %p
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_add_ret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_add_ret_i32_offset:
 ; EG: LDS_ADD_RET *
 ; SI: DS_ADD_RTN_U32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}, 0x10
 ; SI: S_ENDPGM
@@ -53,7 +53,7 @@ define void @lds_atomic_add_ret_i32_offset(i32 addrspace(1)* %out, i32 addrspace
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_add_ret_i32_bad_si_offset
+; FUNC-LABEL: {{^}}lds_atomic_add_ret_i32_bad_si_offset:
 ; EG: LDS_ADD_RET *
 ; SI: DS_ADD_RTN_U32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}, 0x0
 ; CI: DS_ADD_RTN_U32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}, 0x10
@@ -67,7 +67,7 @@ define void @lds_atomic_add_ret_i32_bad_si_offset(i32 addrspace(1)* %out, i32 ad
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_inc_ret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_inc_ret_i32:
 ; EG: LDS_ADD_RET *
 ; SI: S_MOV_B32 [[SNEGONE:s[0-9]+]], -1
 ; SI: V_MOV_B32_e32 [[NEGONE:v[0-9]+]], [[SNEGONE]]
@@ -79,7 +79,7 @@ define void @lds_atomic_inc_ret_i32(i32 addrspace(1)* %out, i32 addrspace(3)* %p
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_inc_ret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_inc_ret_i32_offset:
 ; EG: LDS_ADD_RET *
 ; SI: S_MOV_B32 [[SNEGONE:s[0-9]+]], -1
 ; SI: V_MOV_B32_e32 [[NEGONE:v[0-9]+]], [[SNEGONE]]
@@ -92,7 +92,7 @@ define void @lds_atomic_inc_ret_i32_offset(i32 addrspace(1)* %out, i32 addrspace
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_inc_ret_i32_bad_si_offset:
+; FUNC-LABEL: {{^}}lds_atomic_inc_ret_i32_bad_si_offset:
 ; EG: LDS_ADD_RET *
 ; SI: DS_INC_RTN_U32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}, 0x0
 ; CI: DS_INC_RTN_U32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}, 0x10
@@ -106,7 +106,7 @@ define void @lds_atomic_inc_ret_i32_bad_si_offset(i32 addrspace(1)* %out, i32 ad
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_sub_ret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_sub_ret_i32:
 ; EG: LDS_SUB_RET *
 ; SI: DS_SUB_RTN_U32
 ; SI: S_ENDPGM
@@ -116,7 +116,7 @@ define void @lds_atomic_sub_ret_i32(i32 addrspace(1)* %out, i32 addrspace(3)* %p
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_sub_ret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_sub_ret_i32_offset:
 ; EG: LDS_SUB_RET *
 ; SI: DS_SUB_RTN_U32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}, 0x10
 ; SI: S_ENDPGM
@@ -127,7 +127,7 @@ define void @lds_atomic_sub_ret_i32_offset(i32 addrspace(1)* %out, i32 addrspace
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_dec_ret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_dec_ret_i32:
 ; EG: LDS_SUB_RET *
 ; SI: S_MOV_B32 [[SNEGONE:s[0-9]+]], -1
 ; SI: V_MOV_B32_e32 [[NEGONE:v[0-9]+]], [[SNEGONE]]
@@ -139,7 +139,7 @@ define void @lds_atomic_dec_ret_i32(i32 addrspace(1)* %out, i32 addrspace(3)* %p
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_dec_ret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_dec_ret_i32_offset:
 ; EG: LDS_SUB_RET *
 ; SI: S_MOV_B32 [[SNEGONE:s[0-9]+]], -1
 ; SI: V_MOV_B32_e32 [[NEGONE:v[0-9]+]], [[SNEGONE]]
@@ -152,7 +152,7 @@ define void @lds_atomic_dec_ret_i32_offset(i32 addrspace(1)* %out, i32 addrspace
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_and_ret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_and_ret_i32:
 ; EG: LDS_AND_RET *
 ; SI: DS_AND_RTN_B32
 ; SI: S_ENDPGM
@@ -162,7 +162,7 @@ define void @lds_atomic_and_ret_i32(i32 addrspace(1)* %out, i32 addrspace(3)* %p
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_and_ret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_and_ret_i32_offset:
 ; EG: LDS_AND_RET *
 ; SI: DS_AND_RTN_B32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}, 0x10
 ; SI: S_ENDPGM
@@ -173,7 +173,7 @@ define void @lds_atomic_and_ret_i32_offset(i32 addrspace(1)* %out, i32 addrspace
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_or_ret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_or_ret_i32:
 ; EG: LDS_OR_RET *
 ; SI: DS_OR_RTN_B32
 ; SI: S_ENDPGM
@@ -183,7 +183,7 @@ define void @lds_atomic_or_ret_i32(i32 addrspace(1)* %out, i32 addrspace(3)* %pt
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_or_ret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_or_ret_i32_offset:
 ; EG: LDS_OR_RET *
 ; SI: DS_OR_RTN_B32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}, 0x10
 ; SI: S_ENDPGM
@@ -194,7 +194,7 @@ define void @lds_atomic_or_ret_i32_offset(i32 addrspace(1)* %out, i32 addrspace(
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_xor_ret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_xor_ret_i32:
 ; EG: LDS_XOR_RET *
 ; SI: DS_XOR_RTN_B32
 ; SI: S_ENDPGM
@@ -204,7 +204,7 @@ define void @lds_atomic_xor_ret_i32(i32 addrspace(1)* %out, i32 addrspace(3)* %p
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_xor_ret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_xor_ret_i32_offset:
 ; EG: LDS_XOR_RET *
 ; SI: DS_XOR_RTN_B32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}, 0x10
 ; SI: S_ENDPGM
@@ -216,14 +216,14 @@ define void @lds_atomic_xor_ret_i32_offset(i32 addrspace(1)* %out, i32 addrspace
 }
 
 ; FIXME: There is no atomic nand instr
-; XFUNC-LABEL: @lds_atomic_nand_ret_i32:uction, so we somehow need to expand this.
+; XFUNC-LABEL: {{^}}lds_atomic_nand_ret_i32:uction, so we somehow need to expand this.
 ; define void @lds_atomic_nand_ret_i32(i32 addrspace(1)* %out, i32 addrspace(3)* %ptr) nounwind {
 ;   %result = atomicrmw nand i32 addrspace(3)* %ptr, i32 4 seq_cst
 ;   store i32 %result, i32 addrspace(1)* %out, align 4
 ;   ret void
 ; }
 
-; FUNC-LABEL: @lds_atomic_min_ret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_min_ret_i32:
 ; EG: LDS_MIN_INT_RET *
 ; SI: DS_MIN_RTN_I32
 ; SI: S_ENDPGM
@@ -233,7 +233,7 @@ define void @lds_atomic_min_ret_i32(i32 addrspace(1)* %out, i32 addrspace(3)* %p
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_min_ret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_min_ret_i32_offset:
 ; EG: LDS_MIN_INT_RET *
 ; SI: DS_MIN_RTN_I32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}, 0x10
 ; SI: S_ENDPGM
@@ -244,7 +244,7 @@ define void @lds_atomic_min_ret_i32_offset(i32 addrspace(1)* %out, i32 addrspace
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_max_ret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_max_ret_i32:
 ; EG: LDS_MAX_INT_RET *
 ; SI: DS_MAX_RTN_I32
 ; SI: S_ENDPGM
@@ -254,7 +254,7 @@ define void @lds_atomic_max_ret_i32(i32 addrspace(1)* %out, i32 addrspace(3)* %p
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_max_ret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_max_ret_i32_offset:
 ; EG: LDS_MAX_INT_RET *
 ; SI: DS_MAX_RTN_I32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}, 0x10
 ; SI: S_ENDPGM
@@ -265,7 +265,7 @@ define void @lds_atomic_max_ret_i32_offset(i32 addrspace(1)* %out, i32 addrspace
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_umin_ret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_umin_ret_i32:
 ; EG: LDS_MIN_UINT_RET *
 ; SI: DS_MIN_RTN_U32
 ; SI: S_ENDPGM
@@ -275,7 +275,7 @@ define void @lds_atomic_umin_ret_i32(i32 addrspace(1)* %out, i32 addrspace(3)* %
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_umin_ret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_umin_ret_i32_offset:
 ; EG: LDS_MIN_UINT_RET *
 ; SI: DS_MIN_RTN_U32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}, 0x10
 ; SI: S_ENDPGM
@@ -286,7 +286,7 @@ define void @lds_atomic_umin_ret_i32_offset(i32 addrspace(1)* %out, i32 addrspac
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_umax_ret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_umax_ret_i32:
 ; EG: LDS_MAX_UINT_RET *
 ; SI: DS_MAX_RTN_U32
 ; SI: S_ENDPGM
@@ -296,7 +296,7 @@ define void @lds_atomic_umax_ret_i32(i32 addrspace(1)* %out, i32 addrspace(3)* %
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_umax_ret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_umax_ret_i32_offset:
 ; EG: LDS_MAX_UINT_RET *
 ; SI: DS_MAX_RTN_U32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}, 0x10
 ; SI: S_ENDPGM
@@ -307,7 +307,7 @@ define void @lds_atomic_umax_ret_i32_offset(i32 addrspace(1)* %out, i32 addrspac
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_xchg_noret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_xchg_noret_i32:
 ; SI: S_LOAD_DWORD [[SPTR:s[0-9]+]],
 ; SI: V_MOV_B32_e32 [[DATA:v[0-9]+]], 4
 ; SI: V_MOV_B32_e32 [[VPTR:v[0-9]+]], [[SPTR]]
@@ -318,7 +318,7 @@ define void @lds_atomic_xchg_noret_i32(i32 addrspace(3)* %ptr) nounwind {
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_xchg_noret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_xchg_noret_i32_offset:
 ; SI: DS_WRXCHG_RTN_B32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}, 0x10
 ; SI: S_ENDPGM
 define void @lds_atomic_xchg_noret_i32_offset(i32 addrspace(3)* %ptr) nounwind {
@@ -328,7 +328,7 @@ define void @lds_atomic_xchg_noret_i32_offset(i32 addrspace(3)* %ptr) nounwind {
 }
 
 ; XXX - Is it really necessary to load 4 into VGPR?
-; FUNC-LABEL: @lds_atomic_add_noret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_add_noret_i32:
 ; SI: S_LOAD_DWORD [[SPTR:s[0-9]+]],
 ; SI: V_MOV_B32_e32 [[DATA:v[0-9]+]], 4
 ; SI: V_MOV_B32_e32 [[VPTR:v[0-9]+]], [[SPTR]]
@@ -339,7 +339,7 @@ define void @lds_atomic_add_noret_i32(i32 addrspace(3)* %ptr) nounwind {
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_add_noret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_add_noret_i32_offset:
 ; SI: DS_ADD_U32 v{{[0-9]+}}, v{{[0-9]+}}, 0x10
 ; SI: S_ENDPGM
 define void @lds_atomic_add_noret_i32_offset(i32 addrspace(3)* %ptr) nounwind {
@@ -348,7 +348,7 @@ define void @lds_atomic_add_noret_i32_offset(i32 addrspace(3)* %ptr) nounwind {
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_add_noret_i32_bad_si_offset
+; FUNC-LABEL: {{^}}lds_atomic_add_noret_i32_bad_si_offset:
 ; SI: DS_ADD_U32 v{{[0-9]+}}, v{{[0-9]+}}, 0x0
 ; CI: DS_ADD_U32 v{{[0-9]+}}, v{{[0-9]+}}, 0x10
 ; SI: S_ENDPGM
@@ -360,7 +360,7 @@ define void @lds_atomic_add_noret_i32_bad_si_offset(i32 addrspace(3)* %ptr, i32
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_inc_noret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_inc_noret_i32:
 ; SI: S_MOV_B32 [[SNEGONE:s[0-9]+]], -1
 ; SI: V_MOV_B32_e32 [[NEGONE:v[0-9]+]], [[SNEGONE]]
 ; SI: DS_INC_U32 v{{[0-9]+}}, [[NEGONE]], 0x0
@@ -370,7 +370,7 @@ define void @lds_atomic_inc_noret_i32(i32 addrspace(3)* %ptr) nounwind {
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_inc_noret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_inc_noret_i32_offset:
 ; SI: S_MOV_B32 [[SNEGONE:s[0-9]+]], -1
 ; SI: V_MOV_B32_e32 [[NEGONE:v[0-9]+]], [[SNEGONE]]
 ; SI: DS_INC_U32 v{{[0-9]+}}, [[NEGONE]], 0x10
@@ -381,7 +381,7 @@ define void @lds_atomic_inc_noret_i32_offset(i32 addrspace(3)* %ptr) nounwind {
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_inc_noret_i32_bad_si_offset:
+; FUNC-LABEL: {{^}}lds_atomic_inc_noret_i32_bad_si_offset:
 ; SI: DS_INC_U32 v{{[0-9]+}}, v{{[0-9]+}}, 0x0
 ; CI: DS_INC_U32 v{{[0-9]+}}, v{{[0-9]+}}, 0x10
 ; SI: S_ENDPGM
@@ -393,7 +393,7 @@ define void @lds_atomic_inc_noret_i32_bad_si_offset(i32 addrspace(3)* %ptr, i32
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_sub_noret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_sub_noret_i32:
 ; SI: DS_SUB_U32
 ; SI: S_ENDPGM
 define void @lds_atomic_sub_noret_i32(i32 addrspace(3)* %ptr) nounwind {
@@ -401,7 +401,7 @@ define void @lds_atomic_sub_noret_i32(i32 addrspace(3)* %ptr) nounwind {
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_sub_noret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_sub_noret_i32_offset:
 ; SI: DS_SUB_U32 v{{[0-9]+}}, v{{[0-9]+}}, 0x10
 ; SI: S_ENDPGM
 define void @lds_atomic_sub_noret_i32_offset(i32 addrspace(3)* %ptr) nounwind {
@@ -410,7 +410,7 @@ define void @lds_atomic_sub_noret_i32_offset(i32 addrspace(3)* %ptr) nounwind {
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_dec_noret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_dec_noret_i32:
 ; SI: S_MOV_B32 [[SNEGONE:s[0-9]+]], -1
 ; SI: V_MOV_B32_e32 [[NEGONE:v[0-9]+]], [[SNEGONE]]
 ; SI: DS_DEC_U32  v{{[0-9]+}}, [[NEGONE]], 0x0
@@ -420,7 +420,7 @@ define void @lds_atomic_dec_noret_i32(i32 addrspace(3)* %ptr) nounwind {
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_dec_noret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_dec_noret_i32_offset:
 ; SI: S_MOV_B32 [[SNEGONE:s[0-9]+]], -1
 ; SI: V_MOV_B32_e32 [[NEGONE:v[0-9]+]], [[SNEGONE]]
 ; SI: DS_DEC_U32 v{{[0-9]+}}, [[NEGONE]], 0x10
@@ -431,7 +431,7 @@ define void @lds_atomic_dec_noret_i32_offset(i32 addrspace(3)* %ptr) nounwind {
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_and_noret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_and_noret_i32:
 ; SI: DS_AND_B32
 ; SI: S_ENDPGM
 define void @lds_atomic_and_noret_i32(i32 addrspace(3)* %ptr) nounwind {
@@ -439,7 +439,7 @@ define void @lds_atomic_and_noret_i32(i32 addrspace(3)* %ptr) nounwind {
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_and_noret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_and_noret_i32_offset:
 ; SI: DS_AND_B32 v{{[0-9]+}}, v{{[0-9]+}}, 0x10
 ; SI: S_ENDPGM
 define void @lds_atomic_and_noret_i32_offset(i32 addrspace(3)* %ptr) nounwind {
@@ -448,7 +448,7 @@ define void @lds_atomic_and_noret_i32_offset(i32 addrspace(3)* %ptr) nounwind {
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_or_noret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_or_noret_i32:
 ; SI: DS_OR_B32
 ; SI: S_ENDPGM
 define void @lds_atomic_or_noret_i32(i32 addrspace(3)* %ptr) nounwind {
@@ -456,7 +456,7 @@ define void @lds_atomic_or_noret_i32(i32 addrspace(3)* %ptr) nounwind {
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_or_noret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_or_noret_i32_offset:
 ; SI: DS_OR_B32 v{{[0-9]+}}, v{{[0-9]+}}, 0x10
 ; SI: S_ENDPGM
 define void @lds_atomic_or_noret_i32_offset(i32 addrspace(3)* %ptr) nounwind {
@@ -465,7 +465,7 @@ define void @lds_atomic_or_noret_i32_offset(i32 addrspace(3)* %ptr) nounwind {
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_xor_noret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_xor_noret_i32:
 ; SI: DS_XOR_B32
 ; SI: S_ENDPGM
 define void @lds_atomic_xor_noret_i32(i32 addrspace(3)* %ptr) nounwind {
@@ -473,7 +473,7 @@ define void @lds_atomic_xor_noret_i32(i32 addrspace(3)* %ptr) nounwind {
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_xor_noret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_xor_noret_i32_offset:
 ; SI: DS_XOR_B32 v{{[0-9]+}}, v{{[0-9]+}}, 0x10
 ; SI: S_ENDPGM
 define void @lds_atomic_xor_noret_i32_offset(i32 addrspace(3)* %ptr) nounwind {
@@ -483,13 +483,13 @@ define void @lds_atomic_xor_noret_i32_offset(i32 addrspace(3)* %ptr) nounwind {
 }
 
 ; FIXME: There is no atomic nand instr
-; XFUNC-LABEL: @lds_atomic_nand_noret_i32:uction, so we somehow need to expand this.
+; XFUNC-LABEL: {{^}}lds_atomic_nand_noret_i32:uction, so we somehow need to expand this.
 ; define void @lds_atomic_nand_noret_i32(i32 addrspace(3)* %ptr) nounwind {
 ;   %result = atomicrmw nand i32 addrspace(3)* %ptr, i32 4 seq_cst
 ;   ret void
 ; }
 
-; FUNC-LABEL: @lds_atomic_min_noret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_min_noret_i32:
 ; SI: DS_MIN_I32
 ; SI: S_ENDPGM
 define void @lds_atomic_min_noret_i32(i32 addrspace(3)* %ptr) nounwind {
@@ -497,7 +497,7 @@ define void @lds_atomic_min_noret_i32(i32 addrspace(3)* %ptr) nounwind {
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_min_noret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_min_noret_i32_offset:
 ; SI: DS_MIN_I32 v{{[0-9]+}}, v{{[0-9]+}}, 0x10
 ; SI: S_ENDPGM
 define void @lds_atomic_min_noret_i32_offset(i32 addrspace(3)* %ptr) nounwind {
@@ -506,7 +506,7 @@ define void @lds_atomic_min_noret_i32_offset(i32 addrspace(3)* %ptr) nounwind {
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_max_noret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_max_noret_i32:
 ; SI: DS_MAX_I32
 ; SI: S_ENDPGM
 define void @lds_atomic_max_noret_i32(i32 addrspace(3)* %ptr) nounwind {
@@ -514,7 +514,7 @@ define void @lds_atomic_max_noret_i32(i32 addrspace(3)* %ptr) nounwind {
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_max_noret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_max_noret_i32_offset:
 ; SI: DS_MAX_I32 v{{[0-9]+}}, v{{[0-9]+}}, 0x10
 ; SI: S_ENDPGM
 define void @lds_atomic_max_noret_i32_offset(i32 addrspace(3)* %ptr) nounwind {
@@ -523,7 +523,7 @@ define void @lds_atomic_max_noret_i32_offset(i32 addrspace(3)* %ptr) nounwind {
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_umin_noret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_umin_noret_i32:
 ; SI: DS_MIN_U32
 ; SI: S_ENDPGM
 define void @lds_atomic_umin_noret_i32(i32 addrspace(3)* %ptr) nounwind {
@@ -531,7 +531,7 @@ define void @lds_atomic_umin_noret_i32(i32 addrspace(3)* %ptr) nounwind {
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_umin_noret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_umin_noret_i32_offset:
 ; SI: DS_MIN_U32 v{{[0-9]+}}, v{{[0-9]+}}, 0x10
 ; SI: S_ENDPGM
 define void @lds_atomic_umin_noret_i32_offset(i32 addrspace(3)* %ptr) nounwind {
@@ -540,7 +540,7 @@ define void @lds_atomic_umin_noret_i32_offset(i32 addrspace(3)* %ptr) nounwind {
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_umax_noret_i32:
+; FUNC-LABEL: {{^}}lds_atomic_umax_noret_i32:
 ; SI: DS_MAX_U32
 ; SI: S_ENDPGM
 define void @lds_atomic_umax_noret_i32(i32 addrspace(3)* %ptr) nounwind {
@@ -548,7 +548,7 @@ define void @lds_atomic_umax_noret_i32(i32 addrspace(3)* %ptr) nounwind {
   ret void
 }
 
-; FUNC-LABEL: @lds_atomic_umax_noret_i32_offset:
+; FUNC-LABEL: {{^}}lds_atomic_umax_noret_i32_offset:
 ; SI: DS_MAX_U32 v{{[0-9]+}}, v{{[0-9]+}}, 0x10
 ; SI: S_ENDPGM
 define void @lds_atomic_umax_noret_i32_offset(i32 addrspace(3)* %ptr) nounwind {