Skip to content

Commit edded8d

Browse files
authored
AMDGPU: Stop handling legacy amdgpu-unsafe-fp-atomics attribute (#101699)
This is now autoupgraded to annotate atomicrmw instructions in old bitcode.
1 parent 6807ca8 commit edded8d

9 files changed

+169
-253
lines changed

llvm/lib/Target/AMDGPU/SIISelLowering.cpp

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16165,14 +16165,7 @@ static bool globalMemoryFPAtomicIsLegal(const GCNSubtarget &Subtarget,
1616516165
} else if (Subtarget.supportsAgentScopeFineGrainedRemoteMemoryAtomics())
1616616166
return true;
1616716167

16168-
if (RMW->hasMetadata("amdgpu.no.fine.grained.memory"))
16169-
return true;
16170-
16171-
// TODO: Auto-upgrade this attribute to the metadata in function body and stop
16172-
// checking it.
16173-
return RMW->getFunction()
16174-
->getFnAttribute("amdgpu-unsafe-fp-atomics")
16175-
.getValueAsBool();
16168+
return RMW->hasMetadata("amdgpu.no.fine.grained.memory");
1617616169
}
1617716170

1617816171
/// \return Action to perform on AtomicRMWInsts for integer operations.

llvm/test/CodeGen/AMDGPU/GlobalISel/global-atomic-fadd.f32-no-rtn.ll

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ define amdgpu_ps void @global_atomic_fadd_f32_saddr_no_rtn_flat_intrinsic(ptr ad
113113
ret void
114114
}
115115

116-
define amdgpu_ps void @global_atomic_fadd_f32_no_rtn_atomicrmw(ptr addrspace(1) %ptr, float %data) #0 {
116+
define amdgpu_ps void @global_atomic_fadd_f32_no_rtn_atomicrmw(ptr addrspace(1) %ptr, float %data) {
117117
; GFX908_GFX11-LABEL: name: global_atomic_fadd_f32_no_rtn_atomicrmw
118118
; GFX908_GFX11: bb.1 (%ir-block.0):
119119
; GFX908_GFX11-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2
@@ -135,11 +135,11 @@ define amdgpu_ps void @global_atomic_fadd_f32_no_rtn_atomicrmw(ptr addrspace(1)
135135
; GFX90A_GFX940-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
136136
; GFX90A_GFX940-NEXT: GLOBAL_ATOMIC_ADD_F32 [[REG_SEQUENCE]], [[COPY2]], 0, 0, implicit $exec :: (load store syncscope("wavefront") monotonic (s32) on %ir.ptr, addrspace 1)
137137
; GFX90A_GFX940-NEXT: S_ENDPGM 0
138-
%ret = atomicrmw fadd ptr addrspace(1) %ptr, float %data syncscope("wavefront") monotonic
138+
%ret = atomicrmw fadd ptr addrspace(1) %ptr, float %data syncscope("wavefront") monotonic, !amdgpu.no.fine.grained.memory !0, !amdgpu.ignore.denormal.mode !0
139139
ret void
140140
}
141141

142-
define amdgpu_ps void @global_atomic_fadd_f32_saddr_no_rtn_atomicrmw(ptr addrspace(1) inreg %ptr, float %data) #0 {
142+
define amdgpu_ps void @global_atomic_fadd_f32_saddr_no_rtn_atomicrmw(ptr addrspace(1) inreg %ptr, float %data) {
143143
; GFX90A_GFX940-LABEL: name: global_atomic_fadd_f32_saddr_no_rtn_atomicrmw
144144
; GFX90A_GFX940: bb.1 (%ir-block.0):
145145
; GFX90A_GFX940-NEXT: successors: %bb.2(0x40000000), %bb.5(0x40000000)
@@ -213,11 +213,11 @@ define amdgpu_ps void @global_atomic_fadd_f32_saddr_no_rtn_atomicrmw(ptr addrspa
213213
; GFX90A_GFX940-NEXT: bb.5 (%ir-block.33):
214214
; GFX90A_GFX940-NEXT: SI_END_CF [[SI_IF]], implicit-def $exec, implicit-def $scc, implicit $exec
215215
; GFX90A_GFX940-NEXT: S_ENDPGM 0
216-
%ret = atomicrmw fadd ptr addrspace(1) %ptr, float %data syncscope("wavefront") monotonic
216+
%ret = atomicrmw fadd ptr addrspace(1) %ptr, float %data syncscope("wavefront") monotonic, !amdgpu.no.fine.grained.memory !0, !amdgpu.ignore.denormal.mode !0
217217
ret void
218218
}
219219

220220
declare float @llvm.amdgcn.global.atomic.fadd.f32.p1.f32(ptr addrspace(1), float)
221221
declare float @llvm.amdgcn.flat.atomic.fadd.f32.p1.f32(ptr addrspace(1), float)
222222

223-
attributes #0 = {"amdgpu-unsafe-fp-atomics"="true" }
223+
!0 = !{}

llvm/test/CodeGen/AMDGPU/GlobalISel/global-atomic-fadd.f32-rtn.ll

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ define amdgpu_ps float @global_atomic_fadd_f32_saddr_rtn_flat_intrinsic(ptr addr
120120
ret float %ret
121121
}
122122

123-
define amdgpu_ps float @global_atomic_fadd_f32_rtn_atomicrmw(ptr addrspace(1) %ptr, float %data) #0 {
123+
define amdgpu_ps float @global_atomic_fadd_f32_rtn_atomicrmw(ptr addrspace(1) %ptr, float %data) {
124124
; GFX90A_GFX940-LABEL: name: global_atomic_fadd_f32_rtn_atomicrmw
125125
; GFX90A_GFX940: bb.1 (%ir-block.0):
126126
; GFX90A_GFX940-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2
@@ -144,11 +144,11 @@ define amdgpu_ps float @global_atomic_fadd_f32_rtn_atomicrmw(ptr addrspace(1) %p
144144
; GFX11-NEXT: [[GLOBAL_ATOMIC_ADD_F32_RTN:%[0-9]+]]:vgpr_32 = GLOBAL_ATOMIC_ADD_F32_RTN [[REG_SEQUENCE]], [[COPY2]], 0, 1, implicit $exec :: (load store syncscope("wavefront") monotonic (s32) on %ir.ptr, addrspace 1)
145145
; GFX11-NEXT: $vgpr0 = COPY [[GLOBAL_ATOMIC_ADD_F32_RTN]]
146146
; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0
147-
%ret = atomicrmw fadd ptr addrspace(1) %ptr, float %data syncscope("wavefront") monotonic
147+
%ret = atomicrmw fadd ptr addrspace(1) %ptr, float %data syncscope("wavefront") monotonic, !amdgpu.no.fine.grained.memory !0, !amdgpu.ignore.denormal.mode !0
148148
ret float %ret
149149
}
150150

151-
define amdgpu_ps float @global_atomic_fadd_f32_saddr_rtn_atomicrmw(ptr addrspace(1) inreg %ptr, float %data) #0 {
151+
define amdgpu_ps float @global_atomic_fadd_f32_saddr_rtn_atomicrmw(ptr addrspace(1) inreg %ptr, float %data) {
152152
; GFX90A-LABEL: name: global_atomic_fadd_f32_saddr_rtn_atomicrmw
153153
; GFX90A: bb.1 (%ir-block.0):
154154
; GFX90A-NEXT: successors: %bb.2(0x40000000), %bb.4(0x40000000)
@@ -422,11 +422,11 @@ define amdgpu_ps float @global_atomic_fadd_f32_saddr_rtn_atomicrmw(ptr addrspace
422422
; GFX11-NEXT: bb.6 (%ir-block.38):
423423
; GFX11-NEXT: $vgpr0 = COPY [[PHI]]
424424
; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0
425-
%ret = atomicrmw fadd ptr addrspace(1) %ptr, float %data syncscope("wavefront") monotonic
425+
%ret = atomicrmw fadd ptr addrspace(1) %ptr, float %data syncscope("wavefront") monotonic, !amdgpu.no.fine.grained.memory !0, !amdgpu.ignore.denormal.mode !0
426426
ret float %ret
427427
}
428428

429429
declare float @llvm.amdgcn.global.atomic.fadd.f32.p1.f32(ptr addrspace(1), float)
430430
declare float @llvm.amdgcn.flat.atomic.fadd.f32.p1.f32(ptr addrspace(1), float)
431431

432-
attributes #0 = {"amdgpu-unsafe-fp-atomics"="true" }
432+
!0 = !{}

llvm/test/CodeGen/AMDGPU/global_atomics_scan_fadd.ll

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ define amdgpu_kernel void @global_atomic_fadd_uni_address_uni_value_agent_scope_
365365
; GFX1132-DPP-NEXT: s_nop 0
366366
; GFX1132-DPP-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
367367
; GFX1132-DPP-NEXT: s_endpgm
368-
%result = atomicrmw fadd ptr addrspace(1) %ptr, float 4.0 syncscope("agent") monotonic, align 4
368+
%result = atomicrmw fadd ptr addrspace(1) %ptr, float 4.0 syncscope("agent") monotonic, align 4, !amdgpu.no.fine.grained.memory !1, !amdgpu.ignore.denormal.mode !1
369369
ret void
370370
}
371371

@@ -1158,7 +1158,7 @@ define amdgpu_kernel void @global_atomic_fadd_uni_address_div_value_agent_scope_
11581158
; GFX1132-DPP-NEXT: .LBB1_2:
11591159
; GFX1132-DPP-NEXT: s_endpgm
11601160
%divValue = call float @div.float.value()
1161-
%result = atomicrmw fadd ptr addrspace(1) %ptr, float %divValue syncscope("agent") monotonic, align 4
1161+
%result = atomicrmw fadd ptr addrspace(1) %ptr, float %divValue syncscope("agent") monotonic, align 4, !amdgpu.no.fine.grained.memory !1, !amdgpu.ignore.denormal.mode !1
11621162
ret void
11631163
}
11641164

@@ -1602,7 +1602,7 @@ define amdgpu_kernel void @global_atomic_fadd_uni_address_uni_value_one_as_scope
16021602
; GFX1132-DPP-NEXT: global_atomic_add_f32 v1, v0, s[0:1]
16031603
; GFX1132-DPP-NEXT: .LBB2_2:
16041604
; GFX1132-DPP-NEXT: s_endpgm
1605-
%result = atomicrmw fadd ptr addrspace(1) %ptr, float 4.0 syncscope("one-as") monotonic
1605+
%result = atomicrmw fadd ptr addrspace(1) %ptr, float 4.0 syncscope("one-as") monotonic, !amdgpu.no.fine.grained.memory !1, !amdgpu.ignore.denormal.mode !1
16061606
ret void
16071607
}
16081608

@@ -2396,7 +2396,7 @@ define amdgpu_kernel void @global_atomic_fadd_uni_address_div_value_one_as_scope
23962396
; GFX1132-DPP-NEXT: .LBB3_2:
23972397
; GFX1132-DPP-NEXT: s_endpgm
23982398
%divValue = call float @div.float.value() strictfp
2399-
%result = atomicrmw fadd ptr addrspace(1) %ptr, float %divValue syncscope("one-as") monotonic
2399+
%result = atomicrmw fadd ptr addrspace(1) %ptr, float %divValue syncscope("one-as") monotonic, !amdgpu.no.fine.grained.memory !1, !amdgpu.ignore.denormal.mode !1
24002400
ret void
24012401
}
24022402

@@ -3694,7 +3694,7 @@ define amdgpu_kernel void @global_atomic_fadd_uni_address_div_value_agent_scope_
36943694
; GFX1132-DPP-NEXT: .LBB5_2:
36953695
; GFX1132-DPP-NEXT: s_endpgm
36963696
%divValue = call float @div.float.value()
3697-
%result = atomicrmw fadd ptr addrspace(1) %ptr, float %divValue syncscope("agent") monotonic
3697+
%result = atomicrmw fadd ptr addrspace(1) %ptr, float %divValue syncscope("agent") monotonic, !amdgpu.no.fine.grained.memory !1, !amdgpu.ignore.denormal.mode !1
36983698
ret void
36993699
}
37003700

@@ -4488,7 +4488,7 @@ define amdgpu_kernel void @global_atomic_fadd_uni_address_div_value_agent_scope_
44884488
; GFX1132-DPP-NEXT: .LBB6_2:
44894489
; GFX1132-DPP-NEXT: s_endpgm
44904490
%divValue = call float @div.float.value() strictfp
4491-
%result = atomicrmw fadd ptr addrspace(1) %ptr, float %divValue syncscope("agent") monotonic
4491+
%result = atomicrmw fadd ptr addrspace(1) %ptr, float %divValue syncscope("agent") monotonic, !amdgpu.no.fine.grained.memory !1, !amdgpu.ignore.denormal.mode !1
44924492
ret void
44934493
}
44944494

@@ -6739,7 +6739,7 @@ define amdgpu_kernel void @global_atomic_fadd_double_uni_address_uni_value_agent
67396739
; GFX1132-DPP-NEXT: .LBB9_3:
67406740
; GFX1132-DPP-NEXT: s_set_inst_prefetch_distance 0x2
67416741
; GFX1132-DPP-NEXT: s_endpgm
6742-
%result = atomicrmw fadd ptr addrspace(1) %ptr, double 4.0 syncscope("agent") monotonic, align 4
6742+
%result = atomicrmw fadd ptr addrspace(1) %ptr, double 4.0 syncscope("agent") monotonic, align 4, !amdgpu.no.fine.grained.memory !1, !amdgpu.ignore.denormal.mode !1
67436743
ret void
67446744
}
67456745

@@ -8066,7 +8066,7 @@ define amdgpu_kernel void @global_atomic_fadd_double_uni_address_div_value_agent
80668066
; GFX1132-DPP-NEXT: s_set_inst_prefetch_distance 0x2
80678067
; GFX1132-DPP-NEXT: s_endpgm
80688068
%divValue = call double @div.float.value()
8069-
%result = atomicrmw fadd ptr addrspace(1) %ptr, double %divValue syncscope("agent") monotonic, align 4
8069+
%result = atomicrmw fadd ptr addrspace(1) %ptr, double %divValue syncscope("agent") monotonic, align 4, !amdgpu.no.fine.grained.memory !1, !amdgpu.ignore.denormal.mode !1
80708070
ret void
80718071
}
80728072

@@ -8584,7 +8584,7 @@ define amdgpu_kernel void @global_atomic_fadd_double_uni_address_uni_value_one_a
85848584
; GFX1132-DPP-NEXT: s_cbranch_execnz .LBB11_2
85858585
; GFX1132-DPP-NEXT: .LBB11_3:
85868586
; GFX1132-DPP-NEXT: s_endpgm
8587-
%result = atomicrmw fadd ptr addrspace(1) %ptr, double 4.0 syncscope("one-as") monotonic
8587+
%result = atomicrmw fadd ptr addrspace(1) %ptr, double 4.0 syncscope("one-as") monotonic, !amdgpu.no.fine.grained.memory !1, !amdgpu.ignore.denormal.mode !1
85888588
ret void
85898589
}
85908590

@@ -9525,7 +9525,7 @@ define amdgpu_kernel void @global_atomic_fadd_double_uni_address_div_value_one_a
95259525
; GFX1132-DPP-NEXT: .LBB12_3:
95269526
; GFX1132-DPP-NEXT: s_endpgm
95279527
%divValue = call double @div.double.value() strictfp
9528-
%result = atomicrmw fadd ptr addrspace(1) %ptr, double %divValue syncscope("one-as") monotonic
9528+
%result = atomicrmw fadd ptr addrspace(1) %ptr, double %divValue syncscope("one-as") monotonic, !amdgpu.no.fine.grained.memory !1, !amdgpu.ignore.denormal.mode !1
95299529
ret void
95309530
}
95319531

@@ -10043,7 +10043,7 @@ define amdgpu_kernel void @global_atomic_fadd_double_uni_address_uni_value_agent
1004310043
; GFX1132-DPP-NEXT: s_cbranch_execnz .LBB13_2
1004410044
; GFX1132-DPP-NEXT: .LBB13_3:
1004510045
; GFX1132-DPP-NEXT: s_endpgm
10046-
%result = atomicrmw fadd ptr addrspace(1) %ptr, double 4.0 syncscope("agent") monotonic
10046+
%result = atomicrmw fadd ptr addrspace(1) %ptr, double 4.0 syncscope("agent") monotonic, !amdgpu.no.fine.grained.memory !1, !amdgpu.ignore.denormal.mode !1
1004710047
ret void
1004810048
}
1004910049

@@ -10984,7 +10984,7 @@ define amdgpu_kernel void @global_atomic_fadd_double_uni_address_div_value_agent
1098410984
; GFX1132-DPP-NEXT: .LBB14_3:
1098510985
; GFX1132-DPP-NEXT: s_endpgm
1098610986
%divValue = call double @div.double.value()
10987-
%result = atomicrmw fadd ptr addrspace(1) %ptr, double %divValue syncscope("agent") monotonic
10987+
%result = atomicrmw fadd ptr addrspace(1) %ptr, double %divValue syncscope("agent") monotonic, !amdgpu.no.fine.grained.memory !1, !amdgpu.ignore.denormal.mode !1
1098810988
ret void
1098910989
}
1099010990

@@ -11925,7 +11925,7 @@ define amdgpu_kernel void @global_atomic_fadd_double_uni_address_div_value_agent
1192511925
; GFX1132-DPP-NEXT: .LBB15_3:
1192611926
; GFX1132-DPP-NEXT: s_endpgm
1192711927
%divValue = call double @div.float.value() strictfp
11928-
%result = atomicrmw fadd ptr addrspace(1) %ptr, double %divValue syncscope("agent") monotonic
11928+
%result = atomicrmw fadd ptr addrspace(1) %ptr, double %divValue syncscope("agent") monotonic, !amdgpu.no.fine.grained.memory !1, !amdgpu.ignore.denormal.mode !1
1192911929
ret void
1193011930
}
1193111931

@@ -12859,7 +12859,7 @@ define amdgpu_kernel void @global_atomic_fadd_double_uni_address_uni_value_defau
1285912859
; GFX1132-DPP-NEXT: .LBB16_3:
1286012860
; GFX1132-DPP-NEXT: s_set_inst_prefetch_distance 0x2
1286112861
; GFX1132-DPP-NEXT: s_endpgm
12862-
%result = atomicrmw fadd ptr addrspace(1) %ptr, double 4.0 monotonic, align 4
12862+
%result = atomicrmw fadd ptr addrspace(1) %ptr, double 4.0 monotonic, align 4, !amdgpu.no.fine.grained.memory !1, !amdgpu.ignore.denormal.mode !1
1286312863
ret void
1286412864
}
1286512865

@@ -14186,7 +14186,7 @@ define amdgpu_kernel void @global_atomic_fadd_double_uni_address_div_value_defau
1418614186
; GFX1132-DPP-NEXT: s_set_inst_prefetch_distance 0x2
1418714187
; GFX1132-DPP-NEXT: s_endpgm
1418814188
%divValue = call double @div.float.value() strictfp
14189-
%result = atomicrmw fadd ptr addrspace(1) %ptr, double %divValue monotonic, align 4
14189+
%result = atomicrmw fadd ptr addrspace(1) %ptr, double %divValue monotonic, align 4, !amdgpu.no.fine.grained.memory !1, !amdgpu.ignore.denormal.mode !1
1419014190
ret void
1419114191
}
1419214192

@@ -14898,8 +14898,8 @@ define amdgpu_kernel void @global_atomic_fadd_uni_address_uni_value_system_scope
1489814898
ret void
1489914899
}
1490014900

14901-
attributes #0 = { "denormal-fp-math-f32"="preserve-sign,preserve-sign" "amdgpu-unsafe-fp-atomics"="true" }
14902-
attributes #1 = { strictfp "denormal-fp-math-f32"="preserve-sign,preserve-sign" "amdgpu-unsafe-fp-atomics"="true" }
14901+
attributes #0 = { "denormal-fp-math-f32"="preserve-sign,preserve-sign" }
14902+
attributes #1 = { strictfp "denormal-fp-math-f32"="preserve-sign,preserve-sign" }
1490314903
attributes #2 = { strictfp }
1490414904

1490514905
!llvm.module.flags = !{!0}

llvm/test/CodeGen/AMDGPU/global_atomics_scan_fmax.ll

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ define amdgpu_kernel void @global_atomic_fmax_uni_address_uni_value_agent_scope_
273273
; GFX1132-DPP-NEXT: s_nop 0
274274
; GFX1132-DPP-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
275275
; GFX1132-DPP-NEXT: s_endpgm
276-
%result = atomicrmw fmax ptr addrspace(1) %ptr, float 4.0 syncscope("agent") monotonic, align 4
276+
%result = atomicrmw fmax ptr addrspace(1) %ptr, float 4.0 syncscope("agent") monotonic, align 4, !amdgpu.no.fine.grained.memory !1
277277
ret void
278278
}
279279

@@ -1075,7 +1075,7 @@ define amdgpu_kernel void @global_atomic_fmax_uni_address_div_value_agent_scope_
10751075
; GFX1132-DPP-NEXT: .LBB1_2:
10761076
; GFX1132-DPP-NEXT: s_endpgm
10771077
%divValue = call float @div.float.value()
1078-
%result = atomicrmw fmax ptr addrspace(1) %ptr, float %divValue syncscope("agent") monotonic, align 4
1078+
%result = atomicrmw fmax ptr addrspace(1) %ptr, float %divValue syncscope("agent") monotonic, align 4, !amdgpu.no.fine.grained.memory !1
10791079
ret void
10801080
}
10811081

@@ -1337,7 +1337,7 @@ define amdgpu_kernel void @global_atomic_fmax_uni_address_uni_value_one_as_scope
13371337
; GFX1132-DPP-NEXT: s_nop 0
13381338
; GFX1132-DPP-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
13391339
; GFX1132-DPP-NEXT: s_endpgm
1340-
%result = atomicrmw fmax ptr addrspace(1) %ptr, float 4.0 syncscope("one-as") monotonic
1340+
%result = atomicrmw fmax ptr addrspace(1) %ptr, float 4.0 syncscope("one-as") monotonic, !amdgpu.no.fine.grained.memory !1
13411341
ret void
13421342
}
13431343

@@ -2140,7 +2140,7 @@ define amdgpu_kernel void @global_atomic_fmax_uni_address_div_value_one_as_scope
21402140
; GFX1132-DPP-NEXT: .LBB3_2:
21412141
; GFX1132-DPP-NEXT: s_endpgm
21422142
%divValue = call float @div.float.value()
2143-
%result = atomicrmw fmax ptr addrspace(1) %ptr, float %divValue syncscope("one-as") monotonic
2143+
%result = atomicrmw fmax ptr addrspace(1) %ptr, float %divValue syncscope("one-as") monotonic, !amdgpu.no.fine.grained.memory !1
21442144
ret void
21452145
}
21462146

@@ -2403,7 +2403,7 @@ define amdgpu_kernel void @global_atomic_fmax_uni_address_uni_value_default_scop
24032403
; GFX1132-DPP-NEXT: s_nop 0
24042404
; GFX1132-DPP-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
24052405
; GFX1132-DPP-NEXT: s_endpgm
2406-
%result = atomicrmw fmax ptr addrspace(1) %ptr, float 4.0 monotonic, align 4
2406+
%result = atomicrmw fmax ptr addrspace(1) %ptr, float 4.0 monotonic, align 4, !amdgpu.no.fine.grained.memory !1
24072407
ret void
24082408
}
24092409

@@ -3205,7 +3205,7 @@ define amdgpu_kernel void @global_atomic_fmax_uni_address_div_value_default_scop
32053205
; GFX1132-DPP-NEXT: .LBB5_2:
32063206
; GFX1132-DPP-NEXT: s_endpgm
32073207
%divValue = call float @div.float.value()
3208-
%result = atomicrmw fmax ptr addrspace(1) %ptr, float %divValue monotonic, align 4
3208+
%result = atomicrmw fmax ptr addrspace(1) %ptr, float %divValue monotonic, align 4, !amdgpu.no.fine.grained.memory !1
32093209
ret void
32103210
}
32113211

@@ -4069,7 +4069,7 @@ define amdgpu_kernel void @global_atomic_fmax_double_uni_address_uni_value_agent
40694069
; GFX1132-DPP-NEXT: .LBB6_3:
40704070
; GFX1132-DPP-NEXT: s_set_inst_prefetch_distance 0x2
40714071
; GFX1132-DPP-NEXT: s_endpgm
4072-
%result = atomicrmw fmax ptr addrspace(1) %ptr, double 4.0 syncscope("agent") monotonic, align 4
4072+
%result = atomicrmw fmax ptr addrspace(1) %ptr, double 4.0 syncscope("agent") monotonic, align 4, !amdgpu.no.fine.grained.memory !1
40734073
ret void
40744074
}
40754075

@@ -5474,7 +5474,7 @@ define amdgpu_kernel void @global_atomic_fmax_double_uni_address_div_value_agent
54745474
; GFX1132-DPP-NEXT: s_set_inst_prefetch_distance 0x2
54755475
; GFX1132-DPP-NEXT: s_endpgm
54765476
%divValue = call double @div.double.value()
5477-
%result = atomicrmw fmax ptr addrspace(1) %ptr, double %divValue syncscope("agent") monotonic, align 4
5477+
%result = atomicrmw fmax ptr addrspace(1) %ptr, double %divValue syncscope("agent") monotonic, align 4, !amdgpu.no.fine.grained.memory !1
54785478
ret void
54795479
}
54805480

@@ -5810,7 +5810,7 @@ define amdgpu_kernel void @global_atomic_fmax_double_uni_address_uni_value_one_a
58105810
; GFX1132-DPP-NEXT: s_cbranch_execnz .LBB8_2
58115811
; GFX1132-DPP-NEXT: .LBB8_3:
58125812
; GFX1132-DPP-NEXT: s_endpgm
5813-
%result = atomicrmw fmax ptr addrspace(1) %ptr, double 4.0 syncscope("one-as") monotonic
5813+
%result = atomicrmw fmax ptr addrspace(1) %ptr, double 4.0 syncscope("one-as") monotonic, !amdgpu.no.fine.grained.memory !1
58145814
ret void
58155815
}
58165816

@@ -6772,7 +6772,7 @@ define amdgpu_kernel void @global_atomic_fmax_double_uni_address_div_value_one_a
67726772
; GFX1132-DPP-NEXT: .LBB9_3:
67736773
; GFX1132-DPP-NEXT: s_endpgm
67746774
%divValue = call double @div.double.value()
6775-
%result = atomicrmw fmax ptr addrspace(1) %ptr, double %divValue syncscope("one-as") monotonic
6775+
%result = atomicrmw fmax ptr addrspace(1) %ptr, double %divValue syncscope("one-as") monotonic, !amdgpu.no.fine.grained.memory !1
67766776
ret void
67776777
}
67786778

@@ -7636,7 +7636,7 @@ define amdgpu_kernel void @global_atomic_fmax_double_uni_address_uni_value_defau
76367636
; GFX1132-DPP-NEXT: .LBB10_3:
76377637
; GFX1132-DPP-NEXT: s_set_inst_prefetch_distance 0x2
76387638
; GFX1132-DPP-NEXT: s_endpgm
7639-
%result = atomicrmw fmax ptr addrspace(1) %ptr, double 4.0 monotonic, align 4
7639+
%result = atomicrmw fmax ptr addrspace(1) %ptr, double 4.0 monotonic, align 4, !amdgpu.no.fine.grained.memory !1
76407640
ret void
76417641
}
76427642

@@ -9041,7 +9041,7 @@ define amdgpu_kernel void @global_atomic_fmax_double_uni_address_div_value_defau
90419041
; GFX1132-DPP-NEXT: s_set_inst_prefetch_distance 0x2
90429042
; GFX1132-DPP-NEXT: s_endpgm
90439043
%divValue = call double @div.double.value()
9044-
%result = atomicrmw fmax ptr addrspace(1) %ptr, double %divValue monotonic, align 4
9044+
%result = atomicrmw fmax ptr addrspace(1) %ptr, double %divValue monotonic, align 4, !amdgpu.no.fine.grained.memory !1
90459045
ret void
90469046
}
90479047

@@ -9569,7 +9569,7 @@ define amdgpu_kernel void @global_atomic_fmax_uni_address_uni_value_system_scope
95699569
ret void
95709570
}
95719571

9572-
attributes #0 = { "denormal-fp-math-f32"="preserve-sign,preserve-sign" "amdgpu-unsafe-fp-atomics"="true" }
9572+
attributes #0 = { "denormal-fp-math-f32"="preserve-sign,preserve-sign" }
95739573

95749574
!llvm.module.flags = !{!0}
95759575
!0 = !{i32 1, !"amdhsa_code_object_version", i32 500}

0 commit comments

Comments
 (0)