brintos

brintos / llvm-project-archived public Read only

0
0
Text · 354.4 KiB · e62d6c5 Raw
7420 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=amdgcn -amdgpu-atomic-optimizer-strategy=Iterative < %s | FileCheck -enable-var-scope -check-prefix=GFX7LESS %s3; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -amdgpu-atomic-optimizer-strategy=Iterative < %s | FileCheck -enable-var-scope -check-prefixes=GFX9 %s4; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -mattr=+wavefrontsize64 -amdgpu-atomic-optimizer-strategy=Iterative < %s | FileCheck -enable-var-scope -check-prefixes=GFX1064 %s5; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -mattr=+wavefrontsize32 -amdgpu-atomic-optimizer-strategy=Iterative < %s | FileCheck -enable-var-scope -check-prefixes=GFX1032 %s6; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -amdgpu-atomic-optimizer-strategy=Iterative < %s | FileCheck -enable-var-scope -check-prefixes=GFX1164 %s7; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32, -amdgpu-atomic-optimizer-strategy=Iterative < %s | FileCheck -enable-var-scope -check-prefixes=GFX1132 %s8; RUN: llc -mtriple=amdgcn -amdgpu-atomic-optimizer-strategy=DPP < %s | FileCheck -enable-var-scope -check-prefix=GFX7LESS-DPP %s9; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -amdgpu-atomic-optimizer-strategy=DPP < %s | FileCheck -enable-var-scope -check-prefixes=GFX9-DPP %s10; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -mattr=+wavefrontsize64 -amdgpu-atomic-optimizer-strategy=DPP < %s | FileCheck -enable-var-scope -check-prefixes=GFX1064-DPP %s11; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -mattr=+wavefrontsize32 -amdgpu-atomic-optimizer-strategy=DPP < %s | FileCheck -enable-var-scope -check-prefixes=GFX1032-DPP %s12; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -amdgpu-atomic-optimizer-strategy=DPP < %s | FileCheck -enable-var-scope -check-prefixes=GFX1164-DPP %s13; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32 -amdgpu-atomic-optimizer-strategy=DPP < %s | FileCheck -enable-var-scope -check-prefixes=GFX1132-DPP %s14 15declare float @div.float.value()16declare float @div.double.value()17 18define amdgpu_kernel void @global_atomic_fmax_uni_address_uni_value_agent_scope_unsafe(ptr addrspace(1) %ptr) #0 {19; GFX7LESS-LABEL: global_atomic_fmax_uni_address_uni_value_agent_scope_unsafe:20; GFX7LESS:       ; %bb.0:21; GFX7LESS-NEXT:    v_mbcnt_lo_u32_b32_e64 v0, exec_lo, 022; GFX7LESS-NEXT:    v_mbcnt_hi_u32_b32_e32 v0, exec_hi, v023; GFX7LESS-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v024; GFX7LESS-NEXT:    s_and_saveexec_b64 s[0:1], vcc25; GFX7LESS-NEXT:    s_cbranch_execz .LBB0_326; GFX7LESS-NEXT:  ; %bb.1:27; GFX7LESS-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x928; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)29; GFX7LESS-NEXT:    s_load_dword s2, s[0:1], 0x030; GFX7LESS-NEXT:    s_mov_b64 s[4:5], 031; GFX7LESS-NEXT:    s_mov_b32 s3, 0xf00032; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)33; GFX7LESS-NEXT:    v_mov_b32_e32 v1, s234; GFX7LESS-NEXT:    s_mov_b32 s2, -135; GFX7LESS-NEXT:  .LBB0_2: ; %atomicrmw.start36; GFX7LESS-NEXT:    ; =>This Inner Loop Header: Depth=137; GFX7LESS-NEXT:    v_mul_f32_e32 v0, 1.0, v138; GFX7LESS-NEXT:    v_max_f32_e32 v0, 4.0, v039; GFX7LESS-NEXT:    s_waitcnt expcnt(0)40; GFX7LESS-NEXT:    v_mov_b32_e32 v3, v141; GFX7LESS-NEXT:    v_mov_b32_e32 v2, v042; GFX7LESS-NEXT:    buffer_atomic_cmpswap v[2:3], off, s[0:3], 0 glc43; GFX7LESS-NEXT:    s_waitcnt vmcnt(0)44; GFX7LESS-NEXT:    v_cmp_eq_u32_e32 vcc, v2, v145; GFX7LESS-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]46; GFX7LESS-NEXT:    v_mov_b32_e32 v1, v247; GFX7LESS-NEXT:    s_andn2_b64 exec, exec, s[4:5]48; GFX7LESS-NEXT:    s_cbranch_execnz .LBB0_249; GFX7LESS-NEXT:  .LBB0_3:50; GFX7LESS-NEXT:    s_endpgm51;52; GFX9-LABEL: global_atomic_fmax_uni_address_uni_value_agent_scope_unsafe:53; GFX9:       ; %bb.0:54; GFX9-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 055; GFX9-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v056; GFX9-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v057; GFX9-NEXT:    s_and_saveexec_b64 s[0:1], vcc58; GFX9-NEXT:    s_cbranch_execz .LBB0_359; GFX9-NEXT:  ; %bb.1:60; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x2461; GFX9-NEXT:    s_mov_b64 s[2:3], 062; GFX9-NEXT:    v_mov_b32_e32 v2, 063; GFX9-NEXT:    s_waitcnt lgkmcnt(0)64; GFX9-NEXT:    s_load_dword s4, s[0:1], 0x065; GFX9-NEXT:    s_waitcnt lgkmcnt(0)66; GFX9-NEXT:    v_mov_b32_e32 v1, s467; GFX9-NEXT:  .LBB0_2: ; %atomicrmw.start68; GFX9-NEXT:    ; =>This Inner Loop Header: Depth=169; GFX9-NEXT:    v_max_f32_e32 v0, v1, v170; GFX9-NEXT:    v_max_f32_e32 v0, 4.0, v071; GFX9-NEXT:    global_atomic_cmpswap v0, v2, v[0:1], s[0:1] glc72; GFX9-NEXT:    s_waitcnt vmcnt(0)73; GFX9-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v174; GFX9-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]75; GFX9-NEXT:    v_mov_b32_e32 v1, v076; GFX9-NEXT:    s_andn2_b64 exec, exec, s[2:3]77; GFX9-NEXT:    s_cbranch_execnz .LBB0_278; GFX9-NEXT:  .LBB0_3:79; GFX9-NEXT:    s_endpgm80;81; GFX1064-LABEL: global_atomic_fmax_uni_address_uni_value_agent_scope_unsafe:82; GFX1064:       ; %bb.0:83; GFX1064-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 084; GFX1064-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v085; GFX1064-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v086; GFX1064-NEXT:    s_and_saveexec_b64 s[0:1], vcc87; GFX1064-NEXT:    s_cbranch_execz .LBB0_288; GFX1064-NEXT:  ; %bb.1:89; GFX1064-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x2490; GFX1064-NEXT:    v_mov_b32_e32 v0, 091; GFX1064-NEXT:    v_mov_b32_e32 v1, 4.092; GFX1064-NEXT:    s_waitcnt lgkmcnt(0)93; GFX1064-NEXT:    global_atomic_fmax v0, v1, s[0:1]94; GFX1064-NEXT:  .LBB0_2:95; GFX1064-NEXT:    s_endpgm96;97; GFX1032-LABEL: global_atomic_fmax_uni_address_uni_value_agent_scope_unsafe:98; GFX1032:       ; %bb.0:99; GFX1032-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 0100; GFX1032-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v0101; GFX1032-NEXT:    s_and_saveexec_b32 s0, vcc_lo102; GFX1032-NEXT:    s_cbranch_execz .LBB0_2103; GFX1032-NEXT:  ; %bb.1:104; GFX1032-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x24105; GFX1032-NEXT:    v_mov_b32_e32 v0, 0106; GFX1032-NEXT:    v_mov_b32_e32 v1, 4.0107; GFX1032-NEXT:    s_waitcnt lgkmcnt(0)108; GFX1032-NEXT:    global_atomic_fmax v0, v1, s[0:1]109; GFX1032-NEXT:  .LBB0_2:110; GFX1032-NEXT:    s_endpgm111;112; GFX1164-LABEL: global_atomic_fmax_uni_address_uni_value_agent_scope_unsafe:113; GFX1164:       ; %bb.0:114; GFX1164-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 0115; GFX1164-NEXT:    s_mov_b64 s[0:1], exec116; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)117; GFX1164-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v0118; GFX1164-NEXT:    v_cmpx_eq_u32_e32 0, v0119; GFX1164-NEXT:    s_cbranch_execz .LBB0_2120; GFX1164-NEXT:  ; %bb.1:121; GFX1164-NEXT:    s_load_b64 s[0:1], s[4:5], 0x24122; GFX1164-NEXT:    v_mov_b32_e32 v0, 0123; GFX1164-NEXT:    v_mov_b32_e32 v1, 4.0124; GFX1164-NEXT:    s_waitcnt lgkmcnt(0)125; GFX1164-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]126; GFX1164-NEXT:  .LBB0_2:127; GFX1164-NEXT:    s_endpgm128;129; GFX1132-LABEL: global_atomic_fmax_uni_address_uni_value_agent_scope_unsafe:130; GFX1132:       ; %bb.0:131; GFX1132-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 0132; GFX1132-NEXT:    s_mov_b32 s0, exec_lo133; GFX1132-NEXT:    s_delay_alu instid0(VALU_DEP_1)134; GFX1132-NEXT:    v_cmpx_eq_u32_e32 0, v0135; GFX1132-NEXT:    s_cbranch_execz .LBB0_2136; GFX1132-NEXT:  ; %bb.1:137; GFX1132-NEXT:    s_load_b64 s[0:1], s[4:5], 0x24138; GFX1132-NEXT:    v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, 4.0139; GFX1132-NEXT:    s_waitcnt lgkmcnt(0)140; GFX1132-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]141; GFX1132-NEXT:  .LBB0_2:142; GFX1132-NEXT:    s_endpgm143;144; GFX7LESS-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_agent_scope_unsafe:145; GFX7LESS-DPP:       ; %bb.0:146; GFX7LESS-DPP-NEXT:    v_mbcnt_lo_u32_b32_e64 v0, exec_lo, 0147; GFX7LESS-DPP-NEXT:    v_mbcnt_hi_u32_b32_e32 v0, exec_hi, v0148; GFX7LESS-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v0149; GFX7LESS-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc150; GFX7LESS-DPP-NEXT:    s_cbranch_execz .LBB0_3151; GFX7LESS-DPP-NEXT:  ; %bb.1:152; GFX7LESS-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x9153; GFX7LESS-DPP-NEXT:    s_waitcnt lgkmcnt(0)154; GFX7LESS-DPP-NEXT:    s_load_dword s2, s[0:1], 0x0155; GFX7LESS-DPP-NEXT:    s_mov_b64 s[4:5], 0156; GFX7LESS-DPP-NEXT:    s_mov_b32 s3, 0xf000157; GFX7LESS-DPP-NEXT:    s_waitcnt lgkmcnt(0)158; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v1, s2159; GFX7LESS-DPP-NEXT:    s_mov_b32 s2, -1160; GFX7LESS-DPP-NEXT:  .LBB0_2: ; %atomicrmw.start161; GFX7LESS-DPP-NEXT:    ; =>This Inner Loop Header: Depth=1162; GFX7LESS-DPP-NEXT:    v_mul_f32_e32 v0, 1.0, v1163; GFX7LESS-DPP-NEXT:    v_max_f32_e32 v0, 4.0, v0164; GFX7LESS-DPP-NEXT:    s_waitcnt expcnt(0)165; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v3, v1166; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v2, v0167; GFX7LESS-DPP-NEXT:    buffer_atomic_cmpswap v[2:3], off, s[0:3], 0 glc168; GFX7LESS-DPP-NEXT:    s_waitcnt vmcnt(0)169; GFX7LESS-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, v2, v1170; GFX7LESS-DPP-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]171; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v1, v2172; GFX7LESS-DPP-NEXT:    s_andn2_b64 exec, exec, s[4:5]173; GFX7LESS-DPP-NEXT:    s_cbranch_execnz .LBB0_2174; GFX7LESS-DPP-NEXT:  .LBB0_3:175; GFX7LESS-DPP-NEXT:    s_endpgm176;177; GFX9-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_agent_scope_unsafe:178; GFX9-DPP:       ; %bb.0:179; GFX9-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 0180; GFX9-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v0181; GFX9-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v0182; GFX9-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc183; GFX9-DPP-NEXT:    s_cbranch_execz .LBB0_3184; GFX9-DPP-NEXT:  ; %bb.1:185; GFX9-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x24186; GFX9-DPP-NEXT:    s_mov_b64 s[2:3], 0187; GFX9-DPP-NEXT:    v_mov_b32_e32 v2, 0188; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)189; GFX9-DPP-NEXT:    s_load_dword s4, s[0:1], 0x0190; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)191; GFX9-DPP-NEXT:    v_mov_b32_e32 v1, s4192; GFX9-DPP-NEXT:  .LBB0_2: ; %atomicrmw.start193; GFX9-DPP-NEXT:    ; =>This Inner Loop Header: Depth=1194; GFX9-DPP-NEXT:    v_max_f32_e32 v0, v1, v1195; GFX9-DPP-NEXT:    v_max_f32_e32 v0, 4.0, v0196; GFX9-DPP-NEXT:    global_atomic_cmpswap v0, v2, v[0:1], s[0:1] glc197; GFX9-DPP-NEXT:    s_waitcnt vmcnt(0)198; GFX9-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v1199; GFX9-DPP-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]200; GFX9-DPP-NEXT:    v_mov_b32_e32 v1, v0201; GFX9-DPP-NEXT:    s_andn2_b64 exec, exec, s[2:3]202; GFX9-DPP-NEXT:    s_cbranch_execnz .LBB0_2203; GFX9-DPP-NEXT:  .LBB0_3:204; GFX9-DPP-NEXT:    s_endpgm205;206; GFX1064-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_agent_scope_unsafe:207; GFX1064-DPP:       ; %bb.0:208; GFX1064-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 0209; GFX1064-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v0210; GFX1064-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v0211; GFX1064-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc212; GFX1064-DPP-NEXT:    s_cbranch_execz .LBB0_2213; GFX1064-DPP-NEXT:  ; %bb.1:214; GFX1064-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x24215; GFX1064-DPP-NEXT:    v_mov_b32_e32 v0, 0216; GFX1064-DPP-NEXT:    v_mov_b32_e32 v1, 4.0217; GFX1064-DPP-NEXT:    s_waitcnt lgkmcnt(0)218; GFX1064-DPP-NEXT:    global_atomic_fmax v0, v1, s[0:1]219; GFX1064-DPP-NEXT:  .LBB0_2:220; GFX1064-DPP-NEXT:    s_endpgm221;222; GFX1032-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_agent_scope_unsafe:223; GFX1032-DPP:       ; %bb.0:224; GFX1032-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 0225; GFX1032-DPP-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v0226; GFX1032-DPP-NEXT:    s_and_saveexec_b32 s0, vcc_lo227; GFX1032-DPP-NEXT:    s_cbranch_execz .LBB0_2228; GFX1032-DPP-NEXT:  ; %bb.1:229; GFX1032-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x24230; GFX1032-DPP-NEXT:    v_mov_b32_e32 v0, 0231; GFX1032-DPP-NEXT:    v_mov_b32_e32 v1, 4.0232; GFX1032-DPP-NEXT:    s_waitcnt lgkmcnt(0)233; GFX1032-DPP-NEXT:    global_atomic_fmax v0, v1, s[0:1]234; GFX1032-DPP-NEXT:  .LBB0_2:235; GFX1032-DPP-NEXT:    s_endpgm236;237; GFX1164-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_agent_scope_unsafe:238; GFX1164-DPP:       ; %bb.0:239; GFX1164-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 0240; GFX1164-DPP-NEXT:    s_mov_b64 s[0:1], exec241; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)242; GFX1164-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v0243; GFX1164-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v0244; GFX1164-DPP-NEXT:    s_cbranch_execz .LBB0_2245; GFX1164-DPP-NEXT:  ; %bb.1:246; GFX1164-DPP-NEXT:    s_load_b64 s[0:1], s[4:5], 0x24247; GFX1164-DPP-NEXT:    v_mov_b32_e32 v0, 0248; GFX1164-DPP-NEXT:    v_mov_b32_e32 v1, 4.0249; GFX1164-DPP-NEXT:    s_waitcnt lgkmcnt(0)250; GFX1164-DPP-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]251; GFX1164-DPP-NEXT:  .LBB0_2:252; GFX1164-DPP-NEXT:    s_endpgm253;254; GFX1132-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_agent_scope_unsafe:255; GFX1132-DPP:       ; %bb.0:256; GFX1132-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 0257; GFX1132-DPP-NEXT:    s_mov_b32 s0, exec_lo258; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1)259; GFX1132-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v0260; GFX1132-DPP-NEXT:    s_cbranch_execz .LBB0_2261; GFX1132-DPP-NEXT:  ; %bb.1:262; GFX1132-DPP-NEXT:    s_load_b64 s[0:1], s[4:5], 0x24263; GFX1132-DPP-NEXT:    v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, 4.0264; GFX1132-DPP-NEXT:    s_waitcnt lgkmcnt(0)265; GFX1132-DPP-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]266; GFX1132-DPP-NEXT:  .LBB0_2:267; GFX1132-DPP-NEXT:    s_endpgm268  %result = atomicrmw fmax ptr addrspace(1) %ptr, float 4.0 syncscope("agent") monotonic, align 4, !amdgpu.no.fine.grained.memory !1269  ret void270}271 272define amdgpu_kernel void @global_atomic_fmax_uni_address_div_value_agent_scope_unsafe(ptr addrspace(1) %ptr) #0 {273; GFX7LESS-LABEL: global_atomic_fmax_uni_address_div_value_agent_scope_unsafe:274; GFX7LESS:       ; %bb.0:275; GFX7LESS-NEXT:    s_mov_b32 s32, 0276; GFX7LESS-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD0277; GFX7LESS-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD1278; GFX7LESS-NEXT:    s_mov_b32 s38, -1279; GFX7LESS-NEXT:    s_mov_b32 s39, 0xe8f000280; GFX7LESS-NEXT:    s_add_u32 s36, s36, s11281; GFX7LESS-NEXT:    s_addc_u32 s37, s37, 0282; GFX7LESS-NEXT:    s_mov_b32 s14, s10283; GFX7LESS-NEXT:    s_mov_b32 s13, s9284; GFX7LESS-NEXT:    s_mov_b32 s12, s8285; GFX7LESS-NEXT:    s_mov_b64 s[10:11], s[6:7]286; GFX7LESS-NEXT:    s_mov_b64 s[34:35], s[4:5]287; GFX7LESS-NEXT:    s_add_u32 s8, s34, 44288; GFX7LESS-NEXT:    s_addc_u32 s9, s35, 0289; GFX7LESS-NEXT:    s_getpc_b64 s[4:5]290; GFX7LESS-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+4291; GFX7LESS-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+12292; GFX7LESS-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x0293; GFX7LESS-NEXT:    v_lshlrev_b32_e32 v2, 20, v2294; GFX7LESS-NEXT:    v_lshlrev_b32_e32 v1, 10, v1295; GFX7LESS-NEXT:    v_or_b32_e32 v0, v0, v1296; GFX7LESS-NEXT:    v_or_b32_e32 v31, v0, v2297; GFX7LESS-NEXT:    s_mov_b64 s[4:5], s[0:1]298; GFX7LESS-NEXT:    s_mov_b64 s[6:7], s[2:3]299; GFX7LESS-NEXT:    s_mov_b64 s[0:1], s[36:37]300; GFX7LESS-NEXT:    s_mov_b64 s[2:3], s[38:39]301; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)302; GFX7LESS-NEXT:    s_swappc_b64 s[30:31], s[16:17]303; GFX7LESS-NEXT:    s_mov_b64 s[0:1], exec304; GFX7LESS-NEXT:    v_mov_b32_e32 v2, 0x7fc00000305; GFX7LESS-NEXT:  .LBB1_1: ; %ComputeLoop306; GFX7LESS-NEXT:    ; =>This Inner Loop Header: Depth=1307; GFX7LESS-NEXT:    s_ff1_i32_b64 s2, s[0:1]308; GFX7LESS-NEXT:    v_mul_f32_e32 v1, 1.0, v2309; GFX7LESS-NEXT:    v_readlane_b32 s4, v0, s2310; GFX7LESS-NEXT:    s_lshl_b64 s[2:3], 1, s2311; GFX7LESS-NEXT:    v_mul_f32_e64 v2, 1.0, s4312; GFX7LESS-NEXT:    s_andn2_b64 s[0:1], s[0:1], s[2:3]313; GFX7LESS-NEXT:    v_cmp_ne_u64_e64 s[2:3], s[0:1], 0314; GFX7LESS-NEXT:    s_and_b64 vcc, exec, s[2:3]315; GFX7LESS-NEXT:    v_max_f32_e32 v2, v1, v2316; GFX7LESS-NEXT:    s_cbranch_vccnz .LBB1_1317; GFX7LESS-NEXT:  ; %bb.2: ; %ComputeEnd318; GFX7LESS-NEXT:    v_mbcnt_lo_u32_b32_e64 v0, exec_lo, 0319; GFX7LESS-NEXT:    v_mbcnt_hi_u32_b32_e32 v0, exec_hi, v0320; GFX7LESS-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v0321; GFX7LESS-NEXT:    s_and_saveexec_b64 s[0:1], vcc322; GFX7LESS-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]323; GFX7LESS-NEXT:    s_cbranch_execz .LBB1_5324; GFX7LESS-NEXT:  ; %bb.3:325; GFX7LESS-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x9326; GFX7LESS-NEXT:    s_mov_b32 s3, 0xf000327; GFX7LESS-NEXT:    s_mov_b32 s2, -1328; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)329; GFX7LESS-NEXT:    buffer_load_dword v1, off, s[0:3], 0330; GFX7LESS-NEXT:    s_mov_b64 s[4:5], 0331; GFX7LESS-NEXT:    v_mul_f32_e32 v2, 1.0, v2332; GFX7LESS-NEXT:  .LBB1_4: ; %atomicrmw.start333; GFX7LESS-NEXT:    ; =>This Inner Loop Header: Depth=1334; GFX7LESS-NEXT:    s_waitcnt vmcnt(0)335; GFX7LESS-NEXT:    v_mul_f32_e32 v0, 1.0, v1336; GFX7LESS-NEXT:    v_max_f32_e32 v0, v0, v2337; GFX7LESS-NEXT:    s_waitcnt expcnt(0)338; GFX7LESS-NEXT:    v_mov_b32_e32 v4, v1339; GFX7LESS-NEXT:    v_mov_b32_e32 v3, v0340; GFX7LESS-NEXT:    buffer_atomic_cmpswap v[3:4], off, s[0:3], 0 glc341; GFX7LESS-NEXT:    s_waitcnt vmcnt(0)342; GFX7LESS-NEXT:    v_cmp_eq_u32_e32 vcc, v3, v1343; GFX7LESS-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]344; GFX7LESS-NEXT:    v_mov_b32_e32 v1, v3345; GFX7LESS-NEXT:    s_andn2_b64 exec, exec, s[4:5]346; GFX7LESS-NEXT:    s_cbranch_execnz .LBB1_4347; GFX7LESS-NEXT:  .LBB1_5:348; GFX7LESS-NEXT:    s_endpgm349;350; GFX9-LABEL: global_atomic_fmax_uni_address_div_value_agent_scope_unsafe:351; GFX9:       ; %bb.0:352; GFX9-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD0353; GFX9-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD1354; GFX9-NEXT:    s_mov_b32 s38, -1355; GFX9-NEXT:    s_mov_b32 s39, 0xe00000356; GFX9-NEXT:    s_add_u32 s36, s36, s11357; GFX9-NEXT:    s_addc_u32 s37, s37, 0358; GFX9-NEXT:    s_mov_b64 s[34:35], s[4:5]359; GFX9-NEXT:    s_mov_b32 s12, s8360; GFX9-NEXT:    s_add_u32 s8, s34, 44361; GFX9-NEXT:    s_mov_b32 s13, s9362; GFX9-NEXT:    s_addc_u32 s9, s35, 0363; GFX9-NEXT:    s_getpc_b64 s[4:5]364; GFX9-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+4365; GFX9-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+12366; GFX9-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x0367; GFX9-NEXT:    s_mov_b32 s14, s10368; GFX9-NEXT:    s_mov_b64 s[10:11], s[6:7]369; GFX9-NEXT:    v_lshlrev_b32_e32 v2, 20, v2370; GFX9-NEXT:    v_lshlrev_b32_e32 v1, 10, v1371; GFX9-NEXT:    s_mov_b64 s[4:5], s[0:1]372; GFX9-NEXT:    s_mov_b64 s[6:7], s[2:3]373; GFX9-NEXT:    s_mov_b64 s[0:1], s[36:37]374; GFX9-NEXT:    v_or3_b32 v31, v0, v1, v2375; GFX9-NEXT:    s_mov_b64 s[2:3], s[38:39]376; GFX9-NEXT:    s_mov_b32 s32, 0377; GFX9-NEXT:    s_waitcnt lgkmcnt(0)378; GFX9-NEXT:    s_swappc_b64 s[30:31], s[16:17]379; GFX9-NEXT:    s_mov_b64 s[0:1], exec380; GFX9-NEXT:    v_mov_b32_e32 v2, 0x7fc00000381; GFX9-NEXT:  .LBB1_1: ; %ComputeLoop382; GFX9-NEXT:    ; =>This Inner Loop Header: Depth=1383; GFX9-NEXT:    s_ff1_i32_b64 s2, s[0:1]384; GFX9-NEXT:    v_readlane_b32 s3, v0, s2385; GFX9-NEXT:    v_max_f32_e64 v1, s3, s3386; GFX9-NEXT:    v_max_f32_e32 v2, v2, v2387; GFX9-NEXT:    s_lshl_b64 s[2:3], 1, s2388; GFX9-NEXT:    s_andn2_b64 s[0:1], s[0:1], s[2:3]389; GFX9-NEXT:    v_max_f32_e32 v2, v2, v1390; GFX9-NEXT:    s_cbranch_scc1 .LBB1_1391; GFX9-NEXT:  ; %bb.2: ; %ComputeEnd392; GFX9-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 0393; GFX9-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v0394; GFX9-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v0395; GFX9-NEXT:    s_and_saveexec_b64 s[0:1], vcc396; GFX9-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]397; GFX9-NEXT:    s_cbranch_execz .LBB1_5398; GFX9-NEXT:  ; %bb.3:399; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x24400; GFX9-NEXT:    v_mov_b32_e32 v3, 0401; GFX9-NEXT:    s_mov_b64 s[2:3], 0402; GFX9-NEXT:    v_max_f32_e32 v2, v2, v2403; GFX9-NEXT:    s_waitcnt lgkmcnt(0)404; GFX9-NEXT:    global_load_dword v1, v3, s[0:1]405; GFX9-NEXT:  .LBB1_4: ; %atomicrmw.start406; GFX9-NEXT:    ; =>This Inner Loop Header: Depth=1407; GFX9-NEXT:    s_waitcnt vmcnt(0)408; GFX9-NEXT:    v_max_f32_e32 v0, v1, v1409; GFX9-NEXT:    v_max_f32_e32 v0, v0, v2410; GFX9-NEXT:    global_atomic_cmpswap v0, v3, v[0:1], s[0:1] glc411; GFX9-NEXT:    s_waitcnt vmcnt(0)412; GFX9-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v1413; GFX9-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]414; GFX9-NEXT:    v_mov_b32_e32 v1, v0415; GFX9-NEXT:    s_andn2_b64 exec, exec, s[2:3]416; GFX9-NEXT:    s_cbranch_execnz .LBB1_4417; GFX9-NEXT:  .LBB1_5:418; GFX9-NEXT:    s_endpgm419;420; GFX1064-LABEL: global_atomic_fmax_uni_address_div_value_agent_scope_unsafe:421; GFX1064:       ; %bb.0:422; GFX1064-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD0423; GFX1064-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD1424; GFX1064-NEXT:    s_mov_b32 s38, -1425; GFX1064-NEXT:    s_mov_b32 s39, 0x31e16000426; GFX1064-NEXT:    s_add_u32 s36, s36, s11427; GFX1064-NEXT:    s_mov_b64 s[34:35], s[4:5]428; GFX1064-NEXT:    s_addc_u32 s37, s37, 0429; GFX1064-NEXT:    s_mov_b32 s12, s8430; GFX1064-NEXT:    s_add_u32 s8, s34, 44431; GFX1064-NEXT:    s_mov_b32 s13, s9432; GFX1064-NEXT:    s_addc_u32 s9, s35, 0433; GFX1064-NEXT:    s_getpc_b64 s[4:5]434; GFX1064-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+4435; GFX1064-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+12436; GFX1064-NEXT:    v_lshlrev_b32_e32 v2, 20, v2437; GFX1064-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x0438; GFX1064-NEXT:    v_lshlrev_b32_e32 v1, 10, v1439; GFX1064-NEXT:    s_mov_b32 s14, s10440; GFX1064-NEXT:    s_mov_b64 s[10:11], s[6:7]441; GFX1064-NEXT:    s_mov_b64 s[4:5], s[0:1]442; GFX1064-NEXT:    s_mov_b64 s[6:7], s[2:3]443; GFX1064-NEXT:    v_or3_b32 v31, v0, v1, v2444; GFX1064-NEXT:    s_mov_b64 s[0:1], s[36:37]445; GFX1064-NEXT:    s_mov_b64 s[2:3], s[38:39]446; GFX1064-NEXT:    s_mov_b32 s32, 0447; GFX1064-NEXT:    s_waitcnt lgkmcnt(0)448; GFX1064-NEXT:    s_swappc_b64 s[30:31], s[16:17]449; GFX1064-NEXT:    v_mov_b32_e32 v1, 0x7fc00000450; GFX1064-NEXT:    s_mov_b64 s[0:1], exec451; GFX1064-NEXT:  .LBB1_1: ; %ComputeLoop452; GFX1064-NEXT:    ; =>This Inner Loop Header: Depth=1453; GFX1064-NEXT:    s_ff1_i32_b64 s2, s[0:1]454; GFX1064-NEXT:    v_max_f32_e32 v1, v1, v1455; GFX1064-NEXT:    v_readlane_b32 s3, v0, s2456; GFX1064-NEXT:    v_max_f32_e64 v2, s3, s3457; GFX1064-NEXT:    s_lshl_b64 s[2:3], 1, s2458; GFX1064-NEXT:    s_andn2_b64 s[0:1], s[0:1], s[2:3]459; GFX1064-NEXT:    v_max_f32_e32 v1, v1, v2460; GFX1064-NEXT:    s_cbranch_scc1 .LBB1_1461; GFX1064-NEXT:  ; %bb.2: ; %ComputeEnd462; GFX1064-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 0463; GFX1064-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v0464; GFX1064-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v0465; GFX1064-NEXT:    s_and_saveexec_b64 s[0:1], vcc466; GFX1064-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]467; GFX1064-NEXT:    s_cbranch_execz .LBB1_4468; GFX1064-NEXT:  ; %bb.3:469; GFX1064-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x24470; GFX1064-NEXT:    v_mov_b32_e32 v0, 0471; GFX1064-NEXT:    s_waitcnt lgkmcnt(0)472; GFX1064-NEXT:    global_atomic_fmax v0, v1, s[0:1]473; GFX1064-NEXT:  .LBB1_4:474; GFX1064-NEXT:    s_endpgm475;476; GFX1032-LABEL: global_atomic_fmax_uni_address_div_value_agent_scope_unsafe:477; GFX1032:       ; %bb.0:478; GFX1032-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD0479; GFX1032-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD1480; GFX1032-NEXT:    s_mov_b32 s38, -1481; GFX1032-NEXT:    s_mov_b32 s39, 0x31c16000482; GFX1032-NEXT:    s_add_u32 s36, s36, s11483; GFX1032-NEXT:    s_mov_b64 s[34:35], s[4:5]484; GFX1032-NEXT:    s_addc_u32 s37, s37, 0485; GFX1032-NEXT:    s_mov_b32 s12, s8486; GFX1032-NEXT:    s_add_u32 s8, s34, 44487; GFX1032-NEXT:    s_mov_b32 s13, s9488; GFX1032-NEXT:    s_addc_u32 s9, s35, 0489; GFX1032-NEXT:    s_getpc_b64 s[4:5]490; GFX1032-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+4491; GFX1032-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+12492; GFX1032-NEXT:    v_lshlrev_b32_e32 v2, 20, v2493; GFX1032-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x0494; GFX1032-NEXT:    v_lshlrev_b32_e32 v1, 10, v1495; GFX1032-NEXT:    s_mov_b32 s14, s10496; GFX1032-NEXT:    s_mov_b64 s[10:11], s[6:7]497; GFX1032-NEXT:    s_mov_b64 s[4:5], s[0:1]498; GFX1032-NEXT:    s_mov_b64 s[6:7], s[2:3]499; GFX1032-NEXT:    v_or3_b32 v31, v0, v1, v2500; GFX1032-NEXT:    s_mov_b64 s[0:1], s[36:37]501; GFX1032-NEXT:    s_mov_b64 s[2:3], s[38:39]502; GFX1032-NEXT:    s_mov_b32 s32, 0503; GFX1032-NEXT:    s_waitcnt lgkmcnt(0)504; GFX1032-NEXT:    s_swappc_b64 s[30:31], s[16:17]505; GFX1032-NEXT:    v_mov_b32_e32 v1, 0x7fc00000506; GFX1032-NEXT:    s_mov_b32 s0, exec_lo507; GFX1032-NEXT:  .LBB1_1: ; %ComputeLoop508; GFX1032-NEXT:    ; =>This Inner Loop Header: Depth=1509; GFX1032-NEXT:    s_ff1_i32_b32 s1, s0510; GFX1032-NEXT:    v_max_f32_e32 v1, v1, v1511; GFX1032-NEXT:    v_readlane_b32 s2, v0, s1512; GFX1032-NEXT:    s_lshl_b32 s1, 1, s1513; GFX1032-NEXT:    s_andn2_b32 s0, s0, s1514; GFX1032-NEXT:    v_max_f32_e64 v2, s2, s2515; GFX1032-NEXT:    v_max_f32_e32 v1, v1, v2516; GFX1032-NEXT:    s_cbranch_scc1 .LBB1_1517; GFX1032-NEXT:  ; %bb.2: ; %ComputeEnd518; GFX1032-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 0519; GFX1032-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v0520; GFX1032-NEXT:    s_and_saveexec_b32 s0, vcc_lo521; GFX1032-NEXT:    s_xor_b32 s0, exec_lo, s0522; GFX1032-NEXT:    s_cbranch_execz .LBB1_4523; GFX1032-NEXT:  ; %bb.3:524; GFX1032-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x24525; GFX1032-NEXT:    v_mov_b32_e32 v0, 0526; GFX1032-NEXT:    s_waitcnt lgkmcnt(0)527; GFX1032-NEXT:    global_atomic_fmax v0, v1, s[0:1]528; GFX1032-NEXT:  .LBB1_4:529; GFX1032-NEXT:    s_endpgm530;531; GFX1164-LABEL: global_atomic_fmax_uni_address_div_value_agent_scope_unsafe:532; GFX1164:       ; %bb.0:533; GFX1164-NEXT:    s_mov_b64 s[34:35], s[4:5]534; GFX1164-NEXT:    s_mov_b32 s12, s8535; GFX1164-NEXT:    s_add_u32 s8, s34, 44536; GFX1164-NEXT:    s_mov_b32 s13, s9537; GFX1164-NEXT:    s_addc_u32 s9, s35, 0538; GFX1164-NEXT:    s_getpc_b64 s[4:5]539; GFX1164-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+4540; GFX1164-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+12541; GFX1164-NEXT:    v_mov_b32_e32 v31, v0542; GFX1164-NEXT:    s_load_b64 s[16:17], s[4:5], 0x0543; GFX1164-NEXT:    s_mov_b32 s14, s10544; GFX1164-NEXT:    s_mov_b64 s[10:11], s[6:7]545; GFX1164-NEXT:    s_mov_b64 s[4:5], s[0:1]546; GFX1164-NEXT:    s_mov_b64 s[6:7], s[2:3]547; GFX1164-NEXT:    s_mov_b32 s32, 0548; GFX1164-NEXT:    s_waitcnt lgkmcnt(0)549; GFX1164-NEXT:    s_swappc_b64 s[30:31], s[16:17]550; GFX1164-NEXT:    v_mov_b32_e32 v1, 0x7fc00000551; GFX1164-NEXT:    s_mov_b64 s[0:1], exec552; GFX1164-NEXT:  .LBB1_1: ; %ComputeLoop553; GFX1164-NEXT:    ; =>This Inner Loop Header: Depth=1554; GFX1164-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_1)555; GFX1164-NEXT:    s_ctz_i32_b64 s2, s[0:1]556; GFX1164-NEXT:    v_max_f32_e32 v1, v1, v1557; GFX1164-NEXT:    v_readlane_b32 s3, v0, s2558; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1)559; GFX1164-NEXT:    v_max_f32_e64 v2, s3, s3560; GFX1164-NEXT:    s_lshl_b64 s[2:3], 1, s2561; GFX1164-NEXT:    s_and_not1_b64 s[0:1], s[0:1], s[2:3]562; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1)563; GFX1164-NEXT:    v_max_f32_e32 v1, v1, v2564; GFX1164-NEXT:    s_cbranch_scc1 .LBB1_1565; GFX1164-NEXT:  ; %bb.2: ; %ComputeEnd566; GFX1164-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 0567; GFX1164-NEXT:    s_mov_b64 s[0:1], exec568; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)569; GFX1164-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v0570; GFX1164-NEXT:    v_cmpx_eq_u32_e32 0, v0571; GFX1164-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]572; GFX1164-NEXT:    s_cbranch_execz .LBB1_4573; GFX1164-NEXT:  ; %bb.3:574; GFX1164-NEXT:    s_load_b64 s[0:1], s[34:35], 0x24575; GFX1164-NEXT:    v_mov_b32_e32 v0, 0576; GFX1164-NEXT:    s_waitcnt lgkmcnt(0)577; GFX1164-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]578; GFX1164-NEXT:  .LBB1_4:579; GFX1164-NEXT:    s_endpgm580;581; GFX1132-LABEL: global_atomic_fmax_uni_address_div_value_agent_scope_unsafe:582; GFX1132:       ; %bb.0:583; GFX1132-NEXT:    s_mov_b64 s[34:35], s[4:5]584; GFX1132-NEXT:    v_mov_b32_e32 v31, v0585; GFX1132-NEXT:    s_add_u32 s8, s34, 44586; GFX1132-NEXT:    s_addc_u32 s9, s35, 0587; GFX1132-NEXT:    s_getpc_b64 s[4:5]588; GFX1132-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+4589; GFX1132-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+12590; GFX1132-NEXT:    s_mov_b32 s12, s13591; GFX1132-NEXT:    s_load_b64 s[16:17], s[4:5], 0x0592; GFX1132-NEXT:    s_mov_b64 s[10:11], s[6:7]593; GFX1132-NEXT:    s_mov_b64 s[4:5], s[0:1]594; GFX1132-NEXT:    s_mov_b64 s[6:7], s[2:3]595; GFX1132-NEXT:    s_mov_b32 s13, s14596; GFX1132-NEXT:    s_mov_b32 s14, s15597; GFX1132-NEXT:    s_mov_b32 s32, 0598; GFX1132-NEXT:    s_waitcnt lgkmcnt(0)599; GFX1132-NEXT:    s_swappc_b64 s[30:31], s[16:17]600; GFX1132-NEXT:    v_mov_b32_e32 v1, 0x7fc00000601; GFX1132-NEXT:    s_mov_b32 s0, exec_lo602; GFX1132-NEXT:  .LBB1_1: ; %ComputeLoop603; GFX1132-NEXT:    ; =>This Inner Loop Header: Depth=1604; GFX1132-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_1)605; GFX1132-NEXT:    s_ctz_i32_b32 s1, s0606; GFX1132-NEXT:    v_max_f32_e32 v1, v1, v1607; GFX1132-NEXT:    v_readlane_b32 s2, v0, s1608; GFX1132-NEXT:    s_lshl_b32 s1, 1, s1609; GFX1132-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_1) | instid1(VALU_DEP_1)610; GFX1132-NEXT:    s_and_not1_b32 s0, s0, s1611; GFX1132-NEXT:    v_max_f32_e64 v2, s2, s2612; GFX1132-NEXT:    v_max_f32_e32 v1, v1, v2613; GFX1132-NEXT:    s_cbranch_scc1 .LBB1_1614; GFX1132-NEXT:  ; %bb.2: ; %ComputeEnd615; GFX1132-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 0616; GFX1132-NEXT:    s_mov_b32 s0, exec_lo617; GFX1132-NEXT:    s_delay_alu instid0(VALU_DEP_1)618; GFX1132-NEXT:    v_cmpx_eq_u32_e32 0, v0619; GFX1132-NEXT:    s_xor_b32 s0, exec_lo, s0620; GFX1132-NEXT:    s_cbranch_execz .LBB1_4621; GFX1132-NEXT:  ; %bb.3:622; GFX1132-NEXT:    s_load_b64 s[0:1], s[34:35], 0x24623; GFX1132-NEXT:    v_mov_b32_e32 v0, 0624; GFX1132-NEXT:    s_waitcnt lgkmcnt(0)625; GFX1132-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]626; GFX1132-NEXT:  .LBB1_4:627; GFX1132-NEXT:    s_endpgm628;629; GFX7LESS-DPP-LABEL: global_atomic_fmax_uni_address_div_value_agent_scope_unsafe:630; GFX7LESS-DPP:       ; %bb.0:631; GFX7LESS-DPP-NEXT:    s_mov_b32 s32, 0632; GFX7LESS-DPP-NEXT:    s_mov_b32 s48, SCRATCH_RSRC_DWORD0633; GFX7LESS-DPP-NEXT:    s_mov_b32 s49, SCRATCH_RSRC_DWORD1634; GFX7LESS-DPP-NEXT:    s_mov_b32 s50, -1635; GFX7LESS-DPP-NEXT:    s_mov_b32 s51, 0xe8f000636; GFX7LESS-DPP-NEXT:    s_add_u32 s48, s48, s11637; GFX7LESS-DPP-NEXT:    s_addc_u32 s49, s49, 0638; GFX7LESS-DPP-NEXT:    s_mov_b32 s14, s10639; GFX7LESS-DPP-NEXT:    s_mov_b32 s13, s9640; GFX7LESS-DPP-NEXT:    s_mov_b32 s12, s8641; GFX7LESS-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]642; GFX7LESS-DPP-NEXT:    s_load_dwordx2 s[36:37], s[4:5], 0x9643; GFX7LESS-DPP-NEXT:    s_mov_b32 s39, 0xf000644; GFX7LESS-DPP-NEXT:    s_mov_b32 s38, -1645; GFX7LESS-DPP-NEXT:    s_add_u32 s8, s4, 44646; GFX7LESS-DPP-NEXT:    s_addc_u32 s9, s5, 0647; GFX7LESS-DPP-NEXT:    s_getpc_b64 s[4:5]648; GFX7LESS-DPP-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+4649; GFX7LESS-DPP-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+12650; GFX7LESS-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x0651; GFX7LESS-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v2652; GFX7LESS-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v1653; GFX7LESS-DPP-NEXT:    v_or_b32_e32 v0, v0, v1654; GFX7LESS-DPP-NEXT:    v_or_b32_e32 v31, v0, v2655; GFX7LESS-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]656; GFX7LESS-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]657; GFX7LESS-DPP-NEXT:    s_mov_b64 s[0:1], s[48:49]658; GFX7LESS-DPP-NEXT:    s_mov_b64 s[2:3], s[50:51]659; GFX7LESS-DPP-NEXT:    s_waitcnt lgkmcnt(0)660; GFX7LESS-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]661; GFX7LESS-DPP-NEXT:    buffer_load_dword v1, off, s[36:39], 0662; GFX7LESS-DPP-NEXT:    s_mov_b64 s[0:1], 0663; GFX7LESS-DPP-NEXT:    v_mul_f32_e32 v2, 1.0, v0664; GFX7LESS-DPP-NEXT:  .LBB1_1: ; %atomicrmw.start665; GFX7LESS-DPP-NEXT:    ; =>This Inner Loop Header: Depth=1666; GFX7LESS-DPP-NEXT:    s_waitcnt vmcnt(0)667; GFX7LESS-DPP-NEXT:    v_mul_f32_e32 v0, 1.0, v1668; GFX7LESS-DPP-NEXT:    v_max_f32_e32 v0, v0, v2669; GFX7LESS-DPP-NEXT:    s_waitcnt expcnt(0)670; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v4, v1671; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v3, v0672; GFX7LESS-DPP-NEXT:    buffer_atomic_cmpswap v[3:4], off, s[36:39], 0 glc673; GFX7LESS-DPP-NEXT:    s_waitcnt vmcnt(0)674; GFX7LESS-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, v3, v1675; GFX7LESS-DPP-NEXT:    s_or_b64 s[0:1], vcc, s[0:1]676; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v1, v3677; GFX7LESS-DPP-NEXT:    s_andn2_b64 exec, exec, s[0:1]678; GFX7LESS-DPP-NEXT:    s_cbranch_execnz .LBB1_1679; GFX7LESS-DPP-NEXT:  ; %bb.2: ; %atomicrmw.end680; GFX7LESS-DPP-NEXT:    s_endpgm681;682; GFX9-DPP-LABEL: global_atomic_fmax_uni_address_div_value_agent_scope_unsafe:683; GFX9-DPP:       ; %bb.0:684; GFX9-DPP-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD0685; GFX9-DPP-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD1686; GFX9-DPP-NEXT:    s_mov_b32 s38, -1687; GFX9-DPP-NEXT:    s_mov_b32 s39, 0xe00000688; GFX9-DPP-NEXT:    s_add_u32 s36, s36, s11689; GFX9-DPP-NEXT:    s_addc_u32 s37, s37, 0690; GFX9-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]691; GFX9-DPP-NEXT:    s_mov_b32 s12, s8692; GFX9-DPP-NEXT:    s_add_u32 s8, s34, 44693; GFX9-DPP-NEXT:    s_mov_b32 s13, s9694; GFX9-DPP-NEXT:    s_addc_u32 s9, s35, 0695; GFX9-DPP-NEXT:    s_getpc_b64 s[4:5]696; GFX9-DPP-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+4697; GFX9-DPP-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+12698; GFX9-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x0699; GFX9-DPP-NEXT:    s_mov_b32 s14, s10700; GFX9-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]701; GFX9-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v2702; GFX9-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v1703; GFX9-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]704; GFX9-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]705; GFX9-DPP-NEXT:    s_mov_b64 s[0:1], s[36:37]706; GFX9-DPP-NEXT:    v_or3_b32 v31, v0, v1, v2707; GFX9-DPP-NEXT:    s_mov_b64 s[2:3], s[38:39]708; GFX9-DPP-NEXT:    s_mov_b32 s32, 0709; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)710; GFX9-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]711; GFX9-DPP-NEXT:    v_mbcnt_lo_u32_b32 v1, exec_lo, 0712; GFX9-DPP-NEXT:    v_mbcnt_hi_u32_b32 v1, exec_hi, v1713; GFX9-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -1714; GFX9-DPP-NEXT:    v_mov_b32_e32 v3, 0x7fc00000715; GFX9-DPP-NEXT:    v_cndmask_b32_e64 v4, v3, v0, s[0:1]716; GFX9-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc00000717; GFX9-DPP-NEXT:    s_nop 1718; GFX9-DPP-NEXT:    v_mov_b32_dpp v5, v4 row_shr:1 row_mask:0xf bank_mask:0xf719; GFX9-DPP-NEXT:    v_max_f32_e32 v4, v4, v4720; GFX9-DPP-NEXT:    v_max_f32_e32 v5, v5, v5721; GFX9-DPP-NEXT:    v_max_f32_e32 v4, v4, v5722; GFX9-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc00000723; GFX9-DPP-NEXT:    s_nop 1724; GFX9-DPP-NEXT:    v_mov_b32_dpp v5, v4 row_shr:2 row_mask:0xf bank_mask:0xf725; GFX9-DPP-NEXT:    v_max_f32_e32 v5, v5, v5726; GFX9-DPP-NEXT:    v_max_f32_e32 v4, v4, v5727; GFX9-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc00000728; GFX9-DPP-NEXT:    s_nop 1729; GFX9-DPP-NEXT:    v_mov_b32_dpp v5, v4 row_shr:4 row_mask:0xf bank_mask:0xf730; GFX9-DPP-NEXT:    v_max_f32_e32 v5, v5, v5731; GFX9-DPP-NEXT:    v_max_f32_e32 v4, v4, v5732; GFX9-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc00000733; GFX9-DPP-NEXT:    s_nop 1734; GFX9-DPP-NEXT:    v_mov_b32_dpp v5, v4 row_shr:8 row_mask:0xf bank_mask:0xf735; GFX9-DPP-NEXT:    v_max_f32_e32 v5, v5, v5736; GFX9-DPP-NEXT:    v_max_f32_e32 v4, v4, v5737; GFX9-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc00000738; GFX9-DPP-NEXT:    s_nop 1739; GFX9-DPP-NEXT:    v_mov_b32_dpp v5, v4 row_bcast:15 row_mask:0xa bank_mask:0xf740; GFX9-DPP-NEXT:    v_max_f32_e32 v5, v5, v5741; GFX9-DPP-NEXT:    v_max_f32_e32 v4, v4, v5742; GFX9-DPP-NEXT:    s_nop 1743; GFX9-DPP-NEXT:    v_mov_b32_dpp v3, v4 row_bcast:31 row_mask:0xc bank_mask:0xf744; GFX9-DPP-NEXT:    v_max_f32_e32 v3, v3, v3745; GFX9-DPP-NEXT:    v_max_f32_e32 v3, v4, v3746; GFX9-DPP-NEXT:    v_readlane_b32 s4, v3, 63747; GFX9-DPP-NEXT:    s_mov_b64 exec, s[0:1]748; GFX9-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v1749; GFX9-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc750; GFX9-DPP-NEXT:    s_cbranch_execz .LBB1_3751; GFX9-DPP-NEXT:  ; %bb.1:752; GFX9-DPP-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x24753; GFX9-DPP-NEXT:    v_mov_b32_e32 v2, 0754; GFX9-DPP-NEXT:    s_mov_b64 s[2:3], 0755; GFX9-DPP-NEXT:    v_max_f32_e64 v6, s4, s4756; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)757; GFX9-DPP-NEXT:    global_load_dword v1, v2, s[0:1]758; GFX9-DPP-NEXT:  .LBB1_2: ; %atomicrmw.start759; GFX9-DPP-NEXT:    ; =>This Inner Loop Header: Depth=1760; GFX9-DPP-NEXT:    s_waitcnt vmcnt(0)761; GFX9-DPP-NEXT:    v_max_f32_e32 v0, v1, v1762; GFX9-DPP-NEXT:    v_max_f32_e32 v0, v0, v6763; GFX9-DPP-NEXT:    global_atomic_cmpswap v0, v2, v[0:1], s[0:1] glc764; GFX9-DPP-NEXT:    s_waitcnt vmcnt(0)765; GFX9-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v1766; GFX9-DPP-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]767; GFX9-DPP-NEXT:    v_mov_b32_e32 v1, v0768; GFX9-DPP-NEXT:    s_andn2_b64 exec, exec, s[2:3]769; GFX9-DPP-NEXT:    s_cbranch_execnz .LBB1_2770; GFX9-DPP-NEXT:  .LBB1_3:771; GFX9-DPP-NEXT:    s_endpgm772;773; GFX1064-DPP-LABEL: global_atomic_fmax_uni_address_div_value_agent_scope_unsafe:774; GFX1064-DPP:       ; %bb.0:775; GFX1064-DPP-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD0776; GFX1064-DPP-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD1777; GFX1064-DPP-NEXT:    s_mov_b32 s38, -1778; GFX1064-DPP-NEXT:    s_mov_b32 s39, 0x31e16000779; GFX1064-DPP-NEXT:    s_add_u32 s36, s36, s11780; GFX1064-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]781; GFX1064-DPP-NEXT:    s_addc_u32 s37, s37, 0782; GFX1064-DPP-NEXT:    s_mov_b32 s12, s8783; GFX1064-DPP-NEXT:    s_add_u32 s8, s34, 44784; GFX1064-DPP-NEXT:    s_mov_b32 s13, s9785; GFX1064-DPP-NEXT:    s_addc_u32 s9, s35, 0786; GFX1064-DPP-NEXT:    s_getpc_b64 s[4:5]787; GFX1064-DPP-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+4788; GFX1064-DPP-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+12789; GFX1064-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v2790; GFX1064-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x0791; GFX1064-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v1792; GFX1064-DPP-NEXT:    s_mov_b32 s14, s10793; GFX1064-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]794; GFX1064-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]795; GFX1064-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]796; GFX1064-DPP-NEXT:    v_or3_b32 v31, v0, v1, v2797; GFX1064-DPP-NEXT:    s_mov_b64 s[0:1], s[36:37]798; GFX1064-DPP-NEXT:    s_mov_b64 s[2:3], s[38:39]799; GFX1064-DPP-NEXT:    s_mov_b32 s32, 0800; GFX1064-DPP-NEXT:    s_waitcnt lgkmcnt(0)801; GFX1064-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]802; GFX1064-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -1803; GFX1064-DPP-NEXT:    v_mov_b32_e32 v3, 0x7fc00000804; GFX1064-DPP-NEXT:    v_cndmask_b32_e64 v4, 0x7fc00000, v0, s[0:1]805; GFX1064-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc00000806; GFX1064-DPP-NEXT:    v_mov_b32_dpp v3, v4 row_xmask:1 row_mask:0xf bank_mask:0xf807; GFX1064-DPP-NEXT:    v_max_f32_e32 v4, v4, v4808; GFX1064-DPP-NEXT:    v_max_f32_e32 v3, v3, v3809; GFX1064-DPP-NEXT:    v_max_f32_e32 v3, v4, v3810; GFX1064-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:2 row_mask:0xf bank_mask:0xf811; GFX1064-DPP-NEXT:    v_max_f32_e32 v4, v5, v5812; GFX1064-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc00000813; GFX1064-DPP-NEXT:    v_max_f32_e32 v3, v3, v4814; GFX1064-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:4 row_mask:0xf bank_mask:0xf815; GFX1064-DPP-NEXT:    v_max_f32_e32 v4, v5, v5816; GFX1064-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc00000817; GFX1064-DPP-NEXT:    v_max_f32_e32 v3, v3, v4818; GFX1064-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:8 row_mask:0xf bank_mask:0xf819; GFX1064-DPP-NEXT:    v_max_f32_e32 v4, v5, v5820; GFX1064-DPP-NEXT:    v_max_f32_e32 v3, v3, v4821; GFX1064-DPP-NEXT:    v_permlanex16_b32 v4, v3, 0, 0822; GFX1064-DPP-NEXT:    v_max_f32_e32 v4, v4, v4823; GFX1064-DPP-NEXT:    v_max_f32_e32 v3, v3, v4824; GFX1064-DPP-NEXT:    v_readlane_b32 s2, v3, 32825; GFX1064-DPP-NEXT:    v_readlane_b32 s3, v3, 0826; GFX1064-DPP-NEXT:    v_max_f32_e64 v3, s2, s2827; GFX1064-DPP-NEXT:    v_max_f32_e64 v4, s3, s3828; GFX1064-DPP-NEXT:    s_mov_b64 exec, s[0:1]829; GFX1064-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 0830; GFX1064-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -1831; GFX1064-DPP-NEXT:    v_max_f32_e32 v3, v4, v3832; GFX1064-DPP-NEXT:    s_mov_b64 exec, s[0:1]833; GFX1064-DPP-NEXT:    v_mbcnt_hi_u32_b32 v1, exec_hi, v0834; GFX1064-DPP-NEXT:    v_mov_b32_e32 v0, v3835; GFX1064-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v1836; GFX1064-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc837; GFX1064-DPP-NEXT:    s_cbranch_execz .LBB1_2838; GFX1064-DPP-NEXT:  ; %bb.1:839; GFX1064-DPP-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x24840; GFX1064-DPP-NEXT:    v_mov_b32_e32 v1, 0841; GFX1064-DPP-NEXT:    s_waitcnt lgkmcnt(0)842; GFX1064-DPP-NEXT:    global_atomic_fmax v1, v0, s[0:1]843; GFX1064-DPP-NEXT:  .LBB1_2:844; GFX1064-DPP-NEXT:    s_endpgm845;846; GFX1032-DPP-LABEL: global_atomic_fmax_uni_address_div_value_agent_scope_unsafe:847; GFX1032-DPP:       ; %bb.0:848; GFX1032-DPP-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD0849; GFX1032-DPP-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD1850; GFX1032-DPP-NEXT:    s_mov_b32 s38, -1851; GFX1032-DPP-NEXT:    s_mov_b32 s39, 0x31c16000852; GFX1032-DPP-NEXT:    s_add_u32 s36, s36, s11853; GFX1032-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]854; GFX1032-DPP-NEXT:    s_addc_u32 s37, s37, 0855; GFX1032-DPP-NEXT:    s_mov_b32 s12, s8856; GFX1032-DPP-NEXT:    s_add_u32 s8, s34, 44857; GFX1032-DPP-NEXT:    s_mov_b32 s13, s9858; GFX1032-DPP-NEXT:    s_addc_u32 s9, s35, 0859; GFX1032-DPP-NEXT:    s_getpc_b64 s[4:5]860; GFX1032-DPP-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+4861; GFX1032-DPP-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+12862; GFX1032-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v2863; GFX1032-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x0864; GFX1032-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v1865; GFX1032-DPP-NEXT:    s_mov_b32 s14, s10866; GFX1032-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]867; GFX1032-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]868; GFX1032-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]869; GFX1032-DPP-NEXT:    v_or3_b32 v31, v0, v1, v2870; GFX1032-DPP-NEXT:    s_mov_b64 s[0:1], s[36:37]871; GFX1032-DPP-NEXT:    s_mov_b64 s[2:3], s[38:39]872; GFX1032-DPP-NEXT:    s_mov_b32 s32, 0873; GFX1032-DPP-NEXT:    s_waitcnt lgkmcnt(0)874; GFX1032-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]875; GFX1032-DPP-NEXT:    s_or_saveexec_b32 s0, -1876; GFX1032-DPP-NEXT:    v_mov_b32_e32 v3, 0x7fc00000877; GFX1032-DPP-NEXT:    v_cndmask_b32_e64 v4, 0x7fc00000, v0, s0878; GFX1032-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc00000879; GFX1032-DPP-NEXT:    v_mov_b32_dpp v3, v4 row_xmask:1 row_mask:0xf bank_mask:0xf880; GFX1032-DPP-NEXT:    v_max_f32_e32 v4, v4, v4881; GFX1032-DPP-NEXT:    v_max_f32_e32 v3, v3, v3882; GFX1032-DPP-NEXT:    v_max_f32_e32 v3, v4, v3883; GFX1032-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:2 row_mask:0xf bank_mask:0xf884; GFX1032-DPP-NEXT:    v_max_f32_e32 v4, v5, v5885; GFX1032-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc00000886; GFX1032-DPP-NEXT:    v_max_f32_e32 v3, v3, v4887; GFX1032-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:4 row_mask:0xf bank_mask:0xf888; GFX1032-DPP-NEXT:    v_max_f32_e32 v4, v5, v5889; GFX1032-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc00000890; GFX1032-DPP-NEXT:    v_max_f32_e32 v3, v3, v4891; GFX1032-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:8 row_mask:0xf bank_mask:0xf892; GFX1032-DPP-NEXT:    v_max_f32_e32 v4, v5, v5893; GFX1032-DPP-NEXT:    v_max_f32_e32 v3, v3, v4894; GFX1032-DPP-NEXT:    v_permlanex16_b32 v4, v3, 0, 0895; GFX1032-DPP-NEXT:    v_max_f32_e32 v4, v4, v4896; GFX1032-DPP-NEXT:    v_max_f32_e32 v3, v3, v4897; GFX1032-DPP-NEXT:    s_mov_b32 exec_lo, s0898; GFX1032-DPP-NEXT:    v_mbcnt_lo_u32_b32 v1, exec_lo, 0899; GFX1032-DPP-NEXT:    v_mov_b32_e32 v0, v3900; GFX1032-DPP-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v1901; GFX1032-DPP-NEXT:    s_and_saveexec_b32 s0, vcc_lo902; GFX1032-DPP-NEXT:    s_cbranch_execz .LBB1_2903; GFX1032-DPP-NEXT:  ; %bb.1:904; GFX1032-DPP-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x24905; GFX1032-DPP-NEXT:    v_mov_b32_e32 v1, 0906; GFX1032-DPP-NEXT:    s_waitcnt lgkmcnt(0)907; GFX1032-DPP-NEXT:    global_atomic_fmax v1, v0, s[0:1]908; GFX1032-DPP-NEXT:  .LBB1_2:909; GFX1032-DPP-NEXT:    s_endpgm910;911; GFX1164-DPP-LABEL: global_atomic_fmax_uni_address_div_value_agent_scope_unsafe:912; GFX1164-DPP:       ; %bb.0:913; GFX1164-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]914; GFX1164-DPP-NEXT:    s_mov_b32 s12, s8915; GFX1164-DPP-NEXT:    s_add_u32 s8, s34, 44916; GFX1164-DPP-NEXT:    s_mov_b32 s13, s9917; GFX1164-DPP-NEXT:    s_addc_u32 s9, s35, 0918; GFX1164-DPP-NEXT:    s_getpc_b64 s[4:5]919; GFX1164-DPP-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+4920; GFX1164-DPP-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+12921; GFX1164-DPP-NEXT:    v_mov_b32_e32 v31, v0922; GFX1164-DPP-NEXT:    s_load_b64 s[16:17], s[4:5], 0x0923; GFX1164-DPP-NEXT:    s_mov_b32 s14, s10924; GFX1164-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]925; GFX1164-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]926; GFX1164-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]927; GFX1164-DPP-NEXT:    s_mov_b32 s32, 0928; GFX1164-DPP-NEXT:    s_waitcnt lgkmcnt(0)929; GFX1164-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]930; GFX1164-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -1931; GFX1164-DPP-NEXT:    v_mov_b32_e32 v1, 0x7fc00000932; GFX1164-DPP-NEXT:    v_cndmask_b32_e64 v2, 0x7fc00000, v0, s[0:1]933; GFX1164-DPP-NEXT:    v_mov_b32_e32 v3, 0x7fc00000934; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_1) | instid1(VALU_DEP_2)935; GFX1164-DPP-NEXT:    v_mov_b32_dpp v1, v2 row_xmask:1 row_mask:0xf bank_mask:0xf936; GFX1164-DPP-NEXT:    v_max_f32_e32 v2, v2, v2937; GFX1164-DPP-NEXT:    v_max_f32_e32 v1, v1, v1938; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)939; GFX1164-DPP-NEXT:    v_max_f32_e32 v1, v2, v1940; GFX1164-DPP-NEXT:    v_mov_b32_dpp v3, v1 row_xmask:2 row_mask:0xf bank_mask:0xf941; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)942; GFX1164-DPP-NEXT:    v_max_f32_e32 v2, v3, v3943; GFX1164-DPP-NEXT:    v_mov_b32_e32 v3, 0x7fc00000944; GFX1164-DPP-NEXT:    v_max_f32_e32 v1, v1, v2945; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)946; GFX1164-DPP-NEXT:    v_mov_b32_dpp v3, v1 row_xmask:4 row_mask:0xf bank_mask:0xf947; GFX1164-DPP-NEXT:    v_max_f32_e32 v2, v3, v3948; GFX1164-DPP-NEXT:    v_mov_b32_e32 v3, 0x7fc00000949; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)950; GFX1164-DPP-NEXT:    v_max_f32_e32 v1, v1, v2951; GFX1164-DPP-NEXT:    v_mov_b32_dpp v3, v1 row_xmask:8 row_mask:0xf bank_mask:0xf952; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)953; GFX1164-DPP-NEXT:    v_max_f32_e32 v2, v3, v3954; GFX1164-DPP-NEXT:    v_max_f32_e32 v1, v1, v2955; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)956; GFX1164-DPP-NEXT:    v_permlanex16_b32 v2, v1, 0, 0957; GFX1164-DPP-NEXT:    v_max_f32_e32 v2, v2, v2958; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)959; GFX1164-DPP-NEXT:    v_max_f32_e32 v1, v1, v2960; GFX1164-DPP-NEXT:    v_permlane64_b32 v2, v1961; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1)962; GFX1164-DPP-NEXT:    v_max_f32_e32 v2, v2, v2963; GFX1164-DPP-NEXT:    s_mov_b64 exec, s[0:1]964; GFX1164-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 0965; GFX1164-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -1966; GFX1164-DPP-NEXT:    s_waitcnt_depctr depctr_sa_sdst(0)967; GFX1164-DPP-NEXT:    v_max_f32_e32 v1, v1, v2968; GFX1164-DPP-NEXT:    s_mov_b64 exec, s[0:1]969; GFX1164-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_2)970; GFX1164-DPP-NEXT:    v_mbcnt_hi_u32_b32 v4, exec_hi, v0971; GFX1164-DPP-NEXT:    v_mov_b32_e32 v0, v1972; GFX1164-DPP-NEXT:    s_mov_b64 s[0:1], exec973; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2)974; GFX1164-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v4975; GFX1164-DPP-NEXT:    s_cbranch_execz .LBB1_2976; GFX1164-DPP-NEXT:  ; %bb.1:977; GFX1164-DPP-NEXT:    s_load_b64 s[0:1], s[34:35], 0x24978; GFX1164-DPP-NEXT:    v_mov_b32_e32 v4, 0979; GFX1164-DPP-NEXT:    s_waitcnt lgkmcnt(0)980; GFX1164-DPP-NEXT:    global_atomic_max_f32 v4, v0, s[0:1]981; GFX1164-DPP-NEXT:  .LBB1_2:982; GFX1164-DPP-NEXT:    s_endpgm983;984; GFX1132-DPP-LABEL: global_atomic_fmax_uni_address_div_value_agent_scope_unsafe:985; GFX1132-DPP:       ; %bb.0:986; GFX1132-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]987; GFX1132-DPP-NEXT:    v_mov_b32_e32 v31, v0988; GFX1132-DPP-NEXT:    s_add_u32 s8, s34, 44989; GFX1132-DPP-NEXT:    s_addc_u32 s9, s35, 0990; GFX1132-DPP-NEXT:    s_getpc_b64 s[4:5]991; GFX1132-DPP-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+4992; GFX1132-DPP-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+12993; GFX1132-DPP-NEXT:    s_mov_b32 s12, s13994; GFX1132-DPP-NEXT:    s_load_b64 s[16:17], s[4:5], 0x0995; GFX1132-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]996; GFX1132-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]997; GFX1132-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]998; GFX1132-DPP-NEXT:    s_mov_b32 s13, s14999; GFX1132-DPP-NEXT:    s_mov_b32 s14, s151000; GFX1132-DPP-NEXT:    s_mov_b32 s32, 01001; GFX1132-DPP-NEXT:    s_waitcnt lgkmcnt(0)1002; GFX1132-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]1003; GFX1132-DPP-NEXT:    s_or_saveexec_b32 s0, -11004; GFX1132-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_2) | instid1(VALU_DEP_2)1005; GFX1132-DPP-NEXT:    v_cndmask_b32_e64 v2, 0x7fc00000, v0, s01006; GFX1132-DPP-NEXT:    v_mov_b32_e32 v1, 0x7fc000001007; GFX1132-DPP-NEXT:    v_mov_b32_e32 v3, 0x7fc000001008; GFX1132-DPP-NEXT:    v_mov_b32_dpp v1, v2 row_xmask:1 row_mask:0xf bank_mask:0xf1009; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1010; GFX1132-DPP-NEXT:    v_dual_max_f32 v2, v2, v2 :: v_dual_max_f32 v1, v1, v11011; GFX1132-DPP-NEXT:    v_max_f32_e32 v1, v2, v11012; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1013; GFX1132-DPP-NEXT:    v_mov_b32_dpp v3, v1 row_xmask:2 row_mask:0xf bank_mask:0xf1014; GFX1132-DPP-NEXT:    v_dual_max_f32 v2, v3, v3 :: v_dual_mov_b32 v3, 0x7fc000001015; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1016; GFX1132-DPP-NEXT:    v_max_f32_e32 v1, v1, v21017; GFX1132-DPP-NEXT:    v_mov_b32_dpp v3, v1 row_xmask:4 row_mask:0xf bank_mask:0xf1018; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1019; GFX1132-DPP-NEXT:    v_dual_max_f32 v2, v3, v3 :: v_dual_mov_b32 v3, 0x7fc000001020; GFX1132-DPP-NEXT:    v_max_f32_e32 v1, v1, v21021; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1022; GFX1132-DPP-NEXT:    v_mov_b32_dpp v3, v1 row_xmask:8 row_mask:0xf bank_mask:0xf1023; GFX1132-DPP-NEXT:    v_max_f32_e32 v2, v3, v31024; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1025; GFX1132-DPP-NEXT:    v_max_f32_e32 v1, v1, v21026; GFX1132-DPP-NEXT:    v_permlanex16_b32 v2, v1, 0, 01027; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1028; GFX1132-DPP-NEXT:    v_max_f32_e32 v2, v2, v21029; GFX1132-DPP-NEXT:    v_max_f32_e32 v1, v1, v21030; GFX1132-DPP-NEXT:    s_mov_b32 exec_lo, s01031; GFX1132-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_2)1032; GFX1132-DPP-NEXT:    v_mbcnt_lo_u32_b32 v4, exec_lo, 01033; GFX1132-DPP-NEXT:    v_mov_b32_e32 v0, v11034; GFX1132-DPP-NEXT:    s_mov_b32 s0, exec_lo1035; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2)1036; GFX1132-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v41037; GFX1132-DPP-NEXT:    s_cbranch_execz .LBB1_21038; GFX1132-DPP-NEXT:  ; %bb.1:1039; GFX1132-DPP-NEXT:    s_load_b64 s[0:1], s[34:35], 0x241040; GFX1132-DPP-NEXT:    v_mov_b32_e32 v4, 01041; GFX1132-DPP-NEXT:    s_waitcnt lgkmcnt(0)1042; GFX1132-DPP-NEXT:    global_atomic_max_f32 v4, v0, s[0:1]1043; GFX1132-DPP-NEXT:  .LBB1_2:1044; GFX1132-DPP-NEXT:    s_endpgm1045  %divValue = call float @div.float.value()1046  %result = atomicrmw fmax ptr addrspace(1) %ptr, float %divValue syncscope("agent") monotonic, align 4, !amdgpu.no.fine.grained.memory !11047  ret void1048}1049 1050define amdgpu_kernel void @global_atomic_fmax_uni_address_uni_value_one_as_scope_unsafe(ptr addrspace(1) %ptr) #0 {1051; GFX7LESS-LABEL: global_atomic_fmax_uni_address_uni_value_one_as_scope_unsafe:1052; GFX7LESS:       ; %bb.0:1053; GFX7LESS-NEXT:    v_mbcnt_lo_u32_b32_e64 v0, exec_lo, 01054; GFX7LESS-NEXT:    v_mbcnt_hi_u32_b32_e32 v0, exec_hi, v01055; GFX7LESS-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v01056; GFX7LESS-NEXT:    s_and_saveexec_b64 s[0:1], vcc1057; GFX7LESS-NEXT:    s_cbranch_execz .LBB2_31058; GFX7LESS-NEXT:  ; %bb.1:1059; GFX7LESS-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x91060; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)1061; GFX7LESS-NEXT:    s_load_dword s2, s[0:1], 0x01062; GFX7LESS-NEXT:    s_mov_b64 s[4:5], 01063; GFX7LESS-NEXT:    s_mov_b32 s3, 0xf0001064; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)1065; GFX7LESS-NEXT:    v_mov_b32_e32 v1, s21066; GFX7LESS-NEXT:    s_mov_b32 s2, -11067; GFX7LESS-NEXT:  .LBB2_2: ; %atomicrmw.start1068; GFX7LESS-NEXT:    ; =>This Inner Loop Header: Depth=11069; GFX7LESS-NEXT:    v_mul_f32_e32 v0, 1.0, v11070; GFX7LESS-NEXT:    v_max_f32_e32 v0, 4.0, v01071; GFX7LESS-NEXT:    s_waitcnt expcnt(0)1072; GFX7LESS-NEXT:    v_mov_b32_e32 v3, v11073; GFX7LESS-NEXT:    v_mov_b32_e32 v2, v01074; GFX7LESS-NEXT:    buffer_atomic_cmpswap v[2:3], off, s[0:3], 0 glc1075; GFX7LESS-NEXT:    s_waitcnt vmcnt(0)1076; GFX7LESS-NEXT:    v_cmp_eq_u32_e32 vcc, v2, v11077; GFX7LESS-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]1078; GFX7LESS-NEXT:    v_mov_b32_e32 v1, v21079; GFX7LESS-NEXT:    s_andn2_b64 exec, exec, s[4:5]1080; GFX7LESS-NEXT:    s_cbranch_execnz .LBB2_21081; GFX7LESS-NEXT:  .LBB2_3:1082; GFX7LESS-NEXT:    s_endpgm1083;1084; GFX9-LABEL: global_atomic_fmax_uni_address_uni_value_one_as_scope_unsafe:1085; GFX9:       ; %bb.0:1086; GFX9-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 01087; GFX9-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v01088; GFX9-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v01089; GFX9-NEXT:    s_and_saveexec_b64 s[0:1], vcc1090; GFX9-NEXT:    s_cbranch_execz .LBB2_31091; GFX9-NEXT:  ; %bb.1:1092; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x241093; GFX9-NEXT:    s_mov_b64 s[2:3], 01094; GFX9-NEXT:    v_mov_b32_e32 v2, 01095; GFX9-NEXT:    s_waitcnt lgkmcnt(0)1096; GFX9-NEXT:    s_load_dword s4, s[0:1], 0x01097; GFX9-NEXT:    s_waitcnt lgkmcnt(0)1098; GFX9-NEXT:    v_mov_b32_e32 v1, s41099; GFX9-NEXT:  .LBB2_2: ; %atomicrmw.start1100; GFX9-NEXT:    ; =>This Inner Loop Header: Depth=11101; GFX9-NEXT:    v_max_f32_e32 v0, v1, v11102; GFX9-NEXT:    v_max_f32_e32 v0, 4.0, v01103; GFX9-NEXT:    global_atomic_cmpswap v0, v2, v[0:1], s[0:1] glc1104; GFX9-NEXT:    s_waitcnt vmcnt(0)1105; GFX9-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v11106; GFX9-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]1107; GFX9-NEXT:    v_mov_b32_e32 v1, v01108; GFX9-NEXT:    s_andn2_b64 exec, exec, s[2:3]1109; GFX9-NEXT:    s_cbranch_execnz .LBB2_21110; GFX9-NEXT:  .LBB2_3:1111; GFX9-NEXT:    s_endpgm1112;1113; GFX1064-LABEL: global_atomic_fmax_uni_address_uni_value_one_as_scope_unsafe:1114; GFX1064:       ; %bb.0:1115; GFX1064-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 01116; GFX1064-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v01117; GFX1064-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v01118; GFX1064-NEXT:    s_and_saveexec_b64 s[0:1], vcc1119; GFX1064-NEXT:    s_cbranch_execz .LBB2_21120; GFX1064-NEXT:  ; %bb.1:1121; GFX1064-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x241122; GFX1064-NEXT:    v_mov_b32_e32 v0, 01123; GFX1064-NEXT:    v_mov_b32_e32 v1, 4.01124; GFX1064-NEXT:    s_waitcnt lgkmcnt(0)1125; GFX1064-NEXT:    global_atomic_fmax v0, v1, s[0:1]1126; GFX1064-NEXT:  .LBB2_2:1127; GFX1064-NEXT:    s_endpgm1128;1129; GFX1032-LABEL: global_atomic_fmax_uni_address_uni_value_one_as_scope_unsafe:1130; GFX1032:       ; %bb.0:1131; GFX1032-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 01132; GFX1032-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v01133; GFX1032-NEXT:    s_and_saveexec_b32 s0, vcc_lo1134; GFX1032-NEXT:    s_cbranch_execz .LBB2_21135; GFX1032-NEXT:  ; %bb.1:1136; GFX1032-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x241137; GFX1032-NEXT:    v_mov_b32_e32 v0, 01138; GFX1032-NEXT:    v_mov_b32_e32 v1, 4.01139; GFX1032-NEXT:    s_waitcnt lgkmcnt(0)1140; GFX1032-NEXT:    global_atomic_fmax v0, v1, s[0:1]1141; GFX1032-NEXT:  .LBB2_2:1142; GFX1032-NEXT:    s_endpgm1143;1144; GFX1164-LABEL: global_atomic_fmax_uni_address_uni_value_one_as_scope_unsafe:1145; GFX1164:       ; %bb.0:1146; GFX1164-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 01147; GFX1164-NEXT:    s_mov_b64 s[0:1], exec1148; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1149; GFX1164-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v01150; GFX1164-NEXT:    v_cmpx_eq_u32_e32 0, v01151; GFX1164-NEXT:    s_cbranch_execz .LBB2_21152; GFX1164-NEXT:  ; %bb.1:1153; GFX1164-NEXT:    s_load_b64 s[0:1], s[4:5], 0x241154; GFX1164-NEXT:    v_mov_b32_e32 v0, 01155; GFX1164-NEXT:    v_mov_b32_e32 v1, 4.01156; GFX1164-NEXT:    s_waitcnt lgkmcnt(0)1157; GFX1164-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]1158; GFX1164-NEXT:  .LBB2_2:1159; GFX1164-NEXT:    s_endpgm1160;1161; GFX1132-LABEL: global_atomic_fmax_uni_address_uni_value_one_as_scope_unsafe:1162; GFX1132:       ; %bb.0:1163; GFX1132-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 01164; GFX1132-NEXT:    s_mov_b32 s0, exec_lo1165; GFX1132-NEXT:    s_delay_alu instid0(VALU_DEP_1)1166; GFX1132-NEXT:    v_cmpx_eq_u32_e32 0, v01167; GFX1132-NEXT:    s_cbranch_execz .LBB2_21168; GFX1132-NEXT:  ; %bb.1:1169; GFX1132-NEXT:    s_load_b64 s[0:1], s[4:5], 0x241170; GFX1132-NEXT:    v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, 4.01171; GFX1132-NEXT:    s_waitcnt lgkmcnt(0)1172; GFX1132-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]1173; GFX1132-NEXT:  .LBB2_2:1174; GFX1132-NEXT:    s_endpgm1175;1176; GFX7LESS-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_one_as_scope_unsafe:1177; GFX7LESS-DPP:       ; %bb.0:1178; GFX7LESS-DPP-NEXT:    v_mbcnt_lo_u32_b32_e64 v0, exec_lo, 01179; GFX7LESS-DPP-NEXT:    v_mbcnt_hi_u32_b32_e32 v0, exec_hi, v01180; GFX7LESS-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v01181; GFX7LESS-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc1182; GFX7LESS-DPP-NEXT:    s_cbranch_execz .LBB2_31183; GFX7LESS-DPP-NEXT:  ; %bb.1:1184; GFX7LESS-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x91185; GFX7LESS-DPP-NEXT:    s_waitcnt lgkmcnt(0)1186; GFX7LESS-DPP-NEXT:    s_load_dword s2, s[0:1], 0x01187; GFX7LESS-DPP-NEXT:    s_mov_b64 s[4:5], 01188; GFX7LESS-DPP-NEXT:    s_mov_b32 s3, 0xf0001189; GFX7LESS-DPP-NEXT:    s_waitcnt lgkmcnt(0)1190; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v1, s21191; GFX7LESS-DPP-NEXT:    s_mov_b32 s2, -11192; GFX7LESS-DPP-NEXT:  .LBB2_2: ; %atomicrmw.start1193; GFX7LESS-DPP-NEXT:    ; =>This Inner Loop Header: Depth=11194; GFX7LESS-DPP-NEXT:    v_mul_f32_e32 v0, 1.0, v11195; GFX7LESS-DPP-NEXT:    v_max_f32_e32 v0, 4.0, v01196; GFX7LESS-DPP-NEXT:    s_waitcnt expcnt(0)1197; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v3, v11198; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v2, v01199; GFX7LESS-DPP-NEXT:    buffer_atomic_cmpswap v[2:3], off, s[0:3], 0 glc1200; GFX7LESS-DPP-NEXT:    s_waitcnt vmcnt(0)1201; GFX7LESS-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, v2, v11202; GFX7LESS-DPP-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]1203; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v1, v21204; GFX7LESS-DPP-NEXT:    s_andn2_b64 exec, exec, s[4:5]1205; GFX7LESS-DPP-NEXT:    s_cbranch_execnz .LBB2_21206; GFX7LESS-DPP-NEXT:  .LBB2_3:1207; GFX7LESS-DPP-NEXT:    s_endpgm1208;1209; GFX9-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_one_as_scope_unsafe:1210; GFX9-DPP:       ; %bb.0:1211; GFX9-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 01212; GFX9-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v01213; GFX9-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v01214; GFX9-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc1215; GFX9-DPP-NEXT:    s_cbranch_execz .LBB2_31216; GFX9-DPP-NEXT:  ; %bb.1:1217; GFX9-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x241218; GFX9-DPP-NEXT:    s_mov_b64 s[2:3], 01219; GFX9-DPP-NEXT:    v_mov_b32_e32 v2, 01220; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)1221; GFX9-DPP-NEXT:    s_load_dword s4, s[0:1], 0x01222; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)1223; GFX9-DPP-NEXT:    v_mov_b32_e32 v1, s41224; GFX9-DPP-NEXT:  .LBB2_2: ; %atomicrmw.start1225; GFX9-DPP-NEXT:    ; =>This Inner Loop Header: Depth=11226; GFX9-DPP-NEXT:    v_max_f32_e32 v0, v1, v11227; GFX9-DPP-NEXT:    v_max_f32_e32 v0, 4.0, v01228; GFX9-DPP-NEXT:    global_atomic_cmpswap v0, v2, v[0:1], s[0:1] glc1229; GFX9-DPP-NEXT:    s_waitcnt vmcnt(0)1230; GFX9-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v11231; GFX9-DPP-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]1232; GFX9-DPP-NEXT:    v_mov_b32_e32 v1, v01233; GFX9-DPP-NEXT:    s_andn2_b64 exec, exec, s[2:3]1234; GFX9-DPP-NEXT:    s_cbranch_execnz .LBB2_21235; GFX9-DPP-NEXT:  .LBB2_3:1236; GFX9-DPP-NEXT:    s_endpgm1237;1238; GFX1064-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_one_as_scope_unsafe:1239; GFX1064-DPP:       ; %bb.0:1240; GFX1064-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 01241; GFX1064-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v01242; GFX1064-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v01243; GFX1064-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc1244; GFX1064-DPP-NEXT:    s_cbranch_execz .LBB2_21245; GFX1064-DPP-NEXT:  ; %bb.1:1246; GFX1064-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x241247; GFX1064-DPP-NEXT:    v_mov_b32_e32 v0, 01248; GFX1064-DPP-NEXT:    v_mov_b32_e32 v1, 4.01249; GFX1064-DPP-NEXT:    s_waitcnt lgkmcnt(0)1250; GFX1064-DPP-NEXT:    global_atomic_fmax v0, v1, s[0:1]1251; GFX1064-DPP-NEXT:  .LBB2_2:1252; GFX1064-DPP-NEXT:    s_endpgm1253;1254; GFX1032-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_one_as_scope_unsafe:1255; GFX1032-DPP:       ; %bb.0:1256; GFX1032-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 01257; GFX1032-DPP-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v01258; GFX1032-DPP-NEXT:    s_and_saveexec_b32 s0, vcc_lo1259; GFX1032-DPP-NEXT:    s_cbranch_execz .LBB2_21260; GFX1032-DPP-NEXT:  ; %bb.1:1261; GFX1032-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x241262; GFX1032-DPP-NEXT:    v_mov_b32_e32 v0, 01263; GFX1032-DPP-NEXT:    v_mov_b32_e32 v1, 4.01264; GFX1032-DPP-NEXT:    s_waitcnt lgkmcnt(0)1265; GFX1032-DPP-NEXT:    global_atomic_fmax v0, v1, s[0:1]1266; GFX1032-DPP-NEXT:  .LBB2_2:1267; GFX1032-DPP-NEXT:    s_endpgm1268;1269; GFX1164-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_one_as_scope_unsafe:1270; GFX1164-DPP:       ; %bb.0:1271; GFX1164-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 01272; GFX1164-DPP-NEXT:    s_mov_b64 s[0:1], exec1273; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1274; GFX1164-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v01275; GFX1164-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v01276; GFX1164-DPP-NEXT:    s_cbranch_execz .LBB2_21277; GFX1164-DPP-NEXT:  ; %bb.1:1278; GFX1164-DPP-NEXT:    s_load_b64 s[0:1], s[4:5], 0x241279; GFX1164-DPP-NEXT:    v_mov_b32_e32 v0, 01280; GFX1164-DPP-NEXT:    v_mov_b32_e32 v1, 4.01281; GFX1164-DPP-NEXT:    s_waitcnt lgkmcnt(0)1282; GFX1164-DPP-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]1283; GFX1164-DPP-NEXT:  .LBB2_2:1284; GFX1164-DPP-NEXT:    s_endpgm1285;1286; GFX1132-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_one_as_scope_unsafe:1287; GFX1132-DPP:       ; %bb.0:1288; GFX1132-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 01289; GFX1132-DPP-NEXT:    s_mov_b32 s0, exec_lo1290; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1)1291; GFX1132-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v01292; GFX1132-DPP-NEXT:    s_cbranch_execz .LBB2_21293; GFX1132-DPP-NEXT:  ; %bb.1:1294; GFX1132-DPP-NEXT:    s_load_b64 s[0:1], s[4:5], 0x241295; GFX1132-DPP-NEXT:    v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, 4.01296; GFX1132-DPP-NEXT:    s_waitcnt lgkmcnt(0)1297; GFX1132-DPP-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]1298; GFX1132-DPP-NEXT:  .LBB2_2:1299; GFX1132-DPP-NEXT:    s_endpgm1300  %result = atomicrmw fmax ptr addrspace(1) %ptr, float 4.0 syncscope("one-as") monotonic, !amdgpu.no.fine.grained.memory !11301  ret void1302}1303 1304 1305define amdgpu_kernel void @global_atomic_fmax_uni_address_div_value_one_as_scope_unsafe(ptr addrspace(1) %ptr) #0 {1306; GFX7LESS-LABEL: global_atomic_fmax_uni_address_div_value_one_as_scope_unsafe:1307; GFX7LESS:       ; %bb.0:1308; GFX7LESS-NEXT:    s_mov_b32 s32, 01309; GFX7LESS-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD01310; GFX7LESS-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD11311; GFX7LESS-NEXT:    s_mov_b32 s38, -11312; GFX7LESS-NEXT:    s_mov_b32 s39, 0xe8f0001313; GFX7LESS-NEXT:    s_add_u32 s36, s36, s111314; GFX7LESS-NEXT:    s_addc_u32 s37, s37, 01315; GFX7LESS-NEXT:    s_mov_b32 s14, s101316; GFX7LESS-NEXT:    s_mov_b32 s13, s91317; GFX7LESS-NEXT:    s_mov_b32 s12, s81318; GFX7LESS-NEXT:    s_mov_b64 s[10:11], s[6:7]1319; GFX7LESS-NEXT:    s_mov_b64 s[34:35], s[4:5]1320; GFX7LESS-NEXT:    s_add_u32 s8, s34, 441321; GFX7LESS-NEXT:    s_addc_u32 s9, s35, 01322; GFX7LESS-NEXT:    s_getpc_b64 s[4:5]1323; GFX7LESS-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+41324; GFX7LESS-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+121325; GFX7LESS-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x01326; GFX7LESS-NEXT:    v_lshlrev_b32_e32 v2, 20, v21327; GFX7LESS-NEXT:    v_lshlrev_b32_e32 v1, 10, v11328; GFX7LESS-NEXT:    v_or_b32_e32 v0, v0, v11329; GFX7LESS-NEXT:    v_or_b32_e32 v31, v0, v21330; GFX7LESS-NEXT:    s_mov_b64 s[4:5], s[0:1]1331; GFX7LESS-NEXT:    s_mov_b64 s[6:7], s[2:3]1332; GFX7LESS-NEXT:    s_mov_b64 s[0:1], s[36:37]1333; GFX7LESS-NEXT:    s_mov_b64 s[2:3], s[38:39]1334; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)1335; GFX7LESS-NEXT:    s_swappc_b64 s[30:31], s[16:17]1336; GFX7LESS-NEXT:    s_mov_b64 s[0:1], exec1337; GFX7LESS-NEXT:    v_mov_b32_e32 v2, 0x7fc000001338; GFX7LESS-NEXT:  .LBB3_1: ; %ComputeLoop1339; GFX7LESS-NEXT:    ; =>This Inner Loop Header: Depth=11340; GFX7LESS-NEXT:    s_ff1_i32_b64 s2, s[0:1]1341; GFX7LESS-NEXT:    v_mul_f32_e32 v1, 1.0, v21342; GFX7LESS-NEXT:    v_readlane_b32 s4, v0, s21343; GFX7LESS-NEXT:    s_lshl_b64 s[2:3], 1, s21344; GFX7LESS-NEXT:    v_mul_f32_e64 v2, 1.0, s41345; GFX7LESS-NEXT:    s_andn2_b64 s[0:1], s[0:1], s[2:3]1346; GFX7LESS-NEXT:    v_cmp_ne_u64_e64 s[2:3], s[0:1], 01347; GFX7LESS-NEXT:    s_and_b64 vcc, exec, s[2:3]1348; GFX7LESS-NEXT:    v_max_f32_e32 v2, v1, v21349; GFX7LESS-NEXT:    s_cbranch_vccnz .LBB3_11350; GFX7LESS-NEXT:  ; %bb.2: ; %ComputeEnd1351; GFX7LESS-NEXT:    v_mbcnt_lo_u32_b32_e64 v0, exec_lo, 01352; GFX7LESS-NEXT:    v_mbcnt_hi_u32_b32_e32 v0, exec_hi, v01353; GFX7LESS-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v01354; GFX7LESS-NEXT:    s_and_saveexec_b64 s[0:1], vcc1355; GFX7LESS-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]1356; GFX7LESS-NEXT:    s_cbranch_execz .LBB3_51357; GFX7LESS-NEXT:  ; %bb.3:1358; GFX7LESS-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x91359; GFX7LESS-NEXT:    s_mov_b32 s3, 0xf0001360; GFX7LESS-NEXT:    s_mov_b32 s2, -11361; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)1362; GFX7LESS-NEXT:    buffer_load_dword v1, off, s[0:3], 01363; GFX7LESS-NEXT:    s_mov_b64 s[4:5], 01364; GFX7LESS-NEXT:    v_mul_f32_e32 v2, 1.0, v21365; GFX7LESS-NEXT:  .LBB3_4: ; %atomicrmw.start1366; GFX7LESS-NEXT:    ; =>This Inner Loop Header: Depth=11367; GFX7LESS-NEXT:    s_waitcnt vmcnt(0)1368; GFX7LESS-NEXT:    v_mul_f32_e32 v0, 1.0, v11369; GFX7LESS-NEXT:    v_max_f32_e32 v0, v0, v21370; GFX7LESS-NEXT:    s_waitcnt expcnt(0)1371; GFX7LESS-NEXT:    v_mov_b32_e32 v4, v11372; GFX7LESS-NEXT:    v_mov_b32_e32 v3, v01373; GFX7LESS-NEXT:    buffer_atomic_cmpswap v[3:4], off, s[0:3], 0 glc1374; GFX7LESS-NEXT:    s_waitcnt vmcnt(0)1375; GFX7LESS-NEXT:    v_cmp_eq_u32_e32 vcc, v3, v11376; GFX7LESS-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]1377; GFX7LESS-NEXT:    v_mov_b32_e32 v1, v31378; GFX7LESS-NEXT:    s_andn2_b64 exec, exec, s[4:5]1379; GFX7LESS-NEXT:    s_cbranch_execnz .LBB3_41380; GFX7LESS-NEXT:  .LBB3_5:1381; GFX7LESS-NEXT:    s_endpgm1382;1383; GFX9-LABEL: global_atomic_fmax_uni_address_div_value_one_as_scope_unsafe:1384; GFX9:       ; %bb.0:1385; GFX9-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD01386; GFX9-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD11387; GFX9-NEXT:    s_mov_b32 s38, -11388; GFX9-NEXT:    s_mov_b32 s39, 0xe000001389; GFX9-NEXT:    s_add_u32 s36, s36, s111390; GFX9-NEXT:    s_addc_u32 s37, s37, 01391; GFX9-NEXT:    s_mov_b64 s[34:35], s[4:5]1392; GFX9-NEXT:    s_mov_b32 s12, s81393; GFX9-NEXT:    s_add_u32 s8, s34, 441394; GFX9-NEXT:    s_mov_b32 s13, s91395; GFX9-NEXT:    s_addc_u32 s9, s35, 01396; GFX9-NEXT:    s_getpc_b64 s[4:5]1397; GFX9-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+41398; GFX9-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+121399; GFX9-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x01400; GFX9-NEXT:    s_mov_b32 s14, s101401; GFX9-NEXT:    s_mov_b64 s[10:11], s[6:7]1402; GFX9-NEXT:    v_lshlrev_b32_e32 v2, 20, v21403; GFX9-NEXT:    v_lshlrev_b32_e32 v1, 10, v11404; GFX9-NEXT:    s_mov_b64 s[4:5], s[0:1]1405; GFX9-NEXT:    s_mov_b64 s[6:7], s[2:3]1406; GFX9-NEXT:    s_mov_b64 s[0:1], s[36:37]1407; GFX9-NEXT:    v_or3_b32 v31, v0, v1, v21408; GFX9-NEXT:    s_mov_b64 s[2:3], s[38:39]1409; GFX9-NEXT:    s_mov_b32 s32, 01410; GFX9-NEXT:    s_waitcnt lgkmcnt(0)1411; GFX9-NEXT:    s_swappc_b64 s[30:31], s[16:17]1412; GFX9-NEXT:    s_mov_b64 s[0:1], exec1413; GFX9-NEXT:    v_mov_b32_e32 v2, 0x7fc000001414; GFX9-NEXT:  .LBB3_1: ; %ComputeLoop1415; GFX9-NEXT:    ; =>This Inner Loop Header: Depth=11416; GFX9-NEXT:    s_ff1_i32_b64 s2, s[0:1]1417; GFX9-NEXT:    v_readlane_b32 s3, v0, s21418; GFX9-NEXT:    v_max_f32_e64 v1, s3, s31419; GFX9-NEXT:    v_max_f32_e32 v2, v2, v21420; GFX9-NEXT:    s_lshl_b64 s[2:3], 1, s21421; GFX9-NEXT:    s_andn2_b64 s[0:1], s[0:1], s[2:3]1422; GFX9-NEXT:    v_max_f32_e32 v2, v2, v11423; GFX9-NEXT:    s_cbranch_scc1 .LBB3_11424; GFX9-NEXT:  ; %bb.2: ; %ComputeEnd1425; GFX9-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 01426; GFX9-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v01427; GFX9-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v01428; GFX9-NEXT:    s_and_saveexec_b64 s[0:1], vcc1429; GFX9-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]1430; GFX9-NEXT:    s_cbranch_execz .LBB3_51431; GFX9-NEXT:  ; %bb.3:1432; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x241433; GFX9-NEXT:    v_mov_b32_e32 v3, 01434; GFX9-NEXT:    s_mov_b64 s[2:3], 01435; GFX9-NEXT:    v_max_f32_e32 v2, v2, v21436; GFX9-NEXT:    s_waitcnt lgkmcnt(0)1437; GFX9-NEXT:    global_load_dword v1, v3, s[0:1]1438; GFX9-NEXT:  .LBB3_4: ; %atomicrmw.start1439; GFX9-NEXT:    ; =>This Inner Loop Header: Depth=11440; GFX9-NEXT:    s_waitcnt vmcnt(0)1441; GFX9-NEXT:    v_max_f32_e32 v0, v1, v11442; GFX9-NEXT:    v_max_f32_e32 v0, v0, v21443; GFX9-NEXT:    global_atomic_cmpswap v0, v3, v[0:1], s[0:1] glc1444; GFX9-NEXT:    s_waitcnt vmcnt(0)1445; GFX9-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v11446; GFX9-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]1447; GFX9-NEXT:    v_mov_b32_e32 v1, v01448; GFX9-NEXT:    s_andn2_b64 exec, exec, s[2:3]1449; GFX9-NEXT:    s_cbranch_execnz .LBB3_41450; GFX9-NEXT:  .LBB3_5:1451; GFX9-NEXT:    s_endpgm1452;1453; GFX1064-LABEL: global_atomic_fmax_uni_address_div_value_one_as_scope_unsafe:1454; GFX1064:       ; %bb.0:1455; GFX1064-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD01456; GFX1064-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD11457; GFX1064-NEXT:    s_mov_b32 s38, -11458; GFX1064-NEXT:    s_mov_b32 s39, 0x31e160001459; GFX1064-NEXT:    s_add_u32 s36, s36, s111460; GFX1064-NEXT:    s_mov_b64 s[34:35], s[4:5]1461; GFX1064-NEXT:    s_addc_u32 s37, s37, 01462; GFX1064-NEXT:    s_mov_b32 s12, s81463; GFX1064-NEXT:    s_add_u32 s8, s34, 441464; GFX1064-NEXT:    s_mov_b32 s13, s91465; GFX1064-NEXT:    s_addc_u32 s9, s35, 01466; GFX1064-NEXT:    s_getpc_b64 s[4:5]1467; GFX1064-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+41468; GFX1064-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+121469; GFX1064-NEXT:    v_lshlrev_b32_e32 v2, 20, v21470; GFX1064-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x01471; GFX1064-NEXT:    v_lshlrev_b32_e32 v1, 10, v11472; GFX1064-NEXT:    s_mov_b32 s14, s101473; GFX1064-NEXT:    s_mov_b64 s[10:11], s[6:7]1474; GFX1064-NEXT:    s_mov_b64 s[4:5], s[0:1]1475; GFX1064-NEXT:    s_mov_b64 s[6:7], s[2:3]1476; GFX1064-NEXT:    v_or3_b32 v31, v0, v1, v21477; GFX1064-NEXT:    s_mov_b64 s[0:1], s[36:37]1478; GFX1064-NEXT:    s_mov_b64 s[2:3], s[38:39]1479; GFX1064-NEXT:    s_mov_b32 s32, 01480; GFX1064-NEXT:    s_waitcnt lgkmcnt(0)1481; GFX1064-NEXT:    s_swappc_b64 s[30:31], s[16:17]1482; GFX1064-NEXT:    v_mov_b32_e32 v1, 0x7fc000001483; GFX1064-NEXT:    s_mov_b64 s[0:1], exec1484; GFX1064-NEXT:  .LBB3_1: ; %ComputeLoop1485; GFX1064-NEXT:    ; =>This Inner Loop Header: Depth=11486; GFX1064-NEXT:    s_ff1_i32_b64 s2, s[0:1]1487; GFX1064-NEXT:    v_max_f32_e32 v1, v1, v11488; GFX1064-NEXT:    v_readlane_b32 s3, v0, s21489; GFX1064-NEXT:    v_max_f32_e64 v2, s3, s31490; GFX1064-NEXT:    s_lshl_b64 s[2:3], 1, s21491; GFX1064-NEXT:    s_andn2_b64 s[0:1], s[0:1], s[2:3]1492; GFX1064-NEXT:    v_max_f32_e32 v1, v1, v21493; GFX1064-NEXT:    s_cbranch_scc1 .LBB3_11494; GFX1064-NEXT:  ; %bb.2: ; %ComputeEnd1495; GFX1064-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 01496; GFX1064-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v01497; GFX1064-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v01498; GFX1064-NEXT:    s_and_saveexec_b64 s[0:1], vcc1499; GFX1064-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]1500; GFX1064-NEXT:    s_cbranch_execz .LBB3_41501; GFX1064-NEXT:  ; %bb.3:1502; GFX1064-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x241503; GFX1064-NEXT:    v_mov_b32_e32 v0, 01504; GFX1064-NEXT:    s_waitcnt lgkmcnt(0)1505; GFX1064-NEXT:    global_atomic_fmax v0, v1, s[0:1]1506; GFX1064-NEXT:  .LBB3_4:1507; GFX1064-NEXT:    s_endpgm1508;1509; GFX1032-LABEL: global_atomic_fmax_uni_address_div_value_one_as_scope_unsafe:1510; GFX1032:       ; %bb.0:1511; GFX1032-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD01512; GFX1032-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD11513; GFX1032-NEXT:    s_mov_b32 s38, -11514; GFX1032-NEXT:    s_mov_b32 s39, 0x31c160001515; GFX1032-NEXT:    s_add_u32 s36, s36, s111516; GFX1032-NEXT:    s_mov_b64 s[34:35], s[4:5]1517; GFX1032-NEXT:    s_addc_u32 s37, s37, 01518; GFX1032-NEXT:    s_mov_b32 s12, s81519; GFX1032-NEXT:    s_add_u32 s8, s34, 441520; GFX1032-NEXT:    s_mov_b32 s13, s91521; GFX1032-NEXT:    s_addc_u32 s9, s35, 01522; GFX1032-NEXT:    s_getpc_b64 s[4:5]1523; GFX1032-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+41524; GFX1032-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+121525; GFX1032-NEXT:    v_lshlrev_b32_e32 v2, 20, v21526; GFX1032-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x01527; GFX1032-NEXT:    v_lshlrev_b32_e32 v1, 10, v11528; GFX1032-NEXT:    s_mov_b32 s14, s101529; GFX1032-NEXT:    s_mov_b64 s[10:11], s[6:7]1530; GFX1032-NEXT:    s_mov_b64 s[4:5], s[0:1]1531; GFX1032-NEXT:    s_mov_b64 s[6:7], s[2:3]1532; GFX1032-NEXT:    v_or3_b32 v31, v0, v1, v21533; GFX1032-NEXT:    s_mov_b64 s[0:1], s[36:37]1534; GFX1032-NEXT:    s_mov_b64 s[2:3], s[38:39]1535; GFX1032-NEXT:    s_mov_b32 s32, 01536; GFX1032-NEXT:    s_waitcnt lgkmcnt(0)1537; GFX1032-NEXT:    s_swappc_b64 s[30:31], s[16:17]1538; GFX1032-NEXT:    v_mov_b32_e32 v1, 0x7fc000001539; GFX1032-NEXT:    s_mov_b32 s0, exec_lo1540; GFX1032-NEXT:  .LBB3_1: ; %ComputeLoop1541; GFX1032-NEXT:    ; =>This Inner Loop Header: Depth=11542; GFX1032-NEXT:    s_ff1_i32_b32 s1, s01543; GFX1032-NEXT:    v_max_f32_e32 v1, v1, v11544; GFX1032-NEXT:    v_readlane_b32 s2, v0, s11545; GFX1032-NEXT:    s_lshl_b32 s1, 1, s11546; GFX1032-NEXT:    s_andn2_b32 s0, s0, s11547; GFX1032-NEXT:    v_max_f32_e64 v2, s2, s21548; GFX1032-NEXT:    v_max_f32_e32 v1, v1, v21549; GFX1032-NEXT:    s_cbranch_scc1 .LBB3_11550; GFX1032-NEXT:  ; %bb.2: ; %ComputeEnd1551; GFX1032-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 01552; GFX1032-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v01553; GFX1032-NEXT:    s_and_saveexec_b32 s0, vcc_lo1554; GFX1032-NEXT:    s_xor_b32 s0, exec_lo, s01555; GFX1032-NEXT:    s_cbranch_execz .LBB3_41556; GFX1032-NEXT:  ; %bb.3:1557; GFX1032-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x241558; GFX1032-NEXT:    v_mov_b32_e32 v0, 01559; GFX1032-NEXT:    s_waitcnt lgkmcnt(0)1560; GFX1032-NEXT:    global_atomic_fmax v0, v1, s[0:1]1561; GFX1032-NEXT:  .LBB3_4:1562; GFX1032-NEXT:    s_endpgm1563;1564; GFX1164-LABEL: global_atomic_fmax_uni_address_div_value_one_as_scope_unsafe:1565; GFX1164:       ; %bb.0:1566; GFX1164-NEXT:    s_mov_b64 s[34:35], s[4:5]1567; GFX1164-NEXT:    s_mov_b32 s12, s81568; GFX1164-NEXT:    s_add_u32 s8, s34, 441569; GFX1164-NEXT:    s_mov_b32 s13, s91570; GFX1164-NEXT:    s_addc_u32 s9, s35, 01571; GFX1164-NEXT:    s_getpc_b64 s[4:5]1572; GFX1164-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+41573; GFX1164-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+121574; GFX1164-NEXT:    v_mov_b32_e32 v31, v01575; GFX1164-NEXT:    s_load_b64 s[16:17], s[4:5], 0x01576; GFX1164-NEXT:    s_mov_b32 s14, s101577; GFX1164-NEXT:    s_mov_b64 s[10:11], s[6:7]1578; GFX1164-NEXT:    s_mov_b64 s[4:5], s[0:1]1579; GFX1164-NEXT:    s_mov_b64 s[6:7], s[2:3]1580; GFX1164-NEXT:    s_mov_b32 s32, 01581; GFX1164-NEXT:    s_waitcnt lgkmcnt(0)1582; GFX1164-NEXT:    s_swappc_b64 s[30:31], s[16:17]1583; GFX1164-NEXT:    v_mov_b32_e32 v1, 0x7fc000001584; GFX1164-NEXT:    s_mov_b64 s[0:1], exec1585; GFX1164-NEXT:  .LBB3_1: ; %ComputeLoop1586; GFX1164-NEXT:    ; =>This Inner Loop Header: Depth=11587; GFX1164-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_1)1588; GFX1164-NEXT:    s_ctz_i32_b64 s2, s[0:1]1589; GFX1164-NEXT:    v_max_f32_e32 v1, v1, v11590; GFX1164-NEXT:    v_readlane_b32 s3, v0, s21591; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1)1592; GFX1164-NEXT:    v_max_f32_e64 v2, s3, s31593; GFX1164-NEXT:    s_lshl_b64 s[2:3], 1, s21594; GFX1164-NEXT:    s_and_not1_b64 s[0:1], s[0:1], s[2:3]1595; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1)1596; GFX1164-NEXT:    v_max_f32_e32 v1, v1, v21597; GFX1164-NEXT:    s_cbranch_scc1 .LBB3_11598; GFX1164-NEXT:  ; %bb.2: ; %ComputeEnd1599; GFX1164-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 01600; GFX1164-NEXT:    s_mov_b64 s[0:1], exec1601; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1602; GFX1164-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v01603; GFX1164-NEXT:    v_cmpx_eq_u32_e32 0, v01604; GFX1164-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]1605; GFX1164-NEXT:    s_cbranch_execz .LBB3_41606; GFX1164-NEXT:  ; %bb.3:1607; GFX1164-NEXT:    s_load_b64 s[0:1], s[34:35], 0x241608; GFX1164-NEXT:    v_mov_b32_e32 v0, 01609; GFX1164-NEXT:    s_waitcnt lgkmcnt(0)1610; GFX1164-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]1611; GFX1164-NEXT:  .LBB3_4:1612; GFX1164-NEXT:    s_endpgm1613;1614; GFX1132-LABEL: global_atomic_fmax_uni_address_div_value_one_as_scope_unsafe:1615; GFX1132:       ; %bb.0:1616; GFX1132-NEXT:    s_mov_b64 s[34:35], s[4:5]1617; GFX1132-NEXT:    v_mov_b32_e32 v31, v01618; GFX1132-NEXT:    s_add_u32 s8, s34, 441619; GFX1132-NEXT:    s_addc_u32 s9, s35, 01620; GFX1132-NEXT:    s_getpc_b64 s[4:5]1621; GFX1132-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+41622; GFX1132-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+121623; GFX1132-NEXT:    s_mov_b32 s12, s131624; GFX1132-NEXT:    s_load_b64 s[16:17], s[4:5], 0x01625; GFX1132-NEXT:    s_mov_b64 s[10:11], s[6:7]1626; GFX1132-NEXT:    s_mov_b64 s[4:5], s[0:1]1627; GFX1132-NEXT:    s_mov_b64 s[6:7], s[2:3]1628; GFX1132-NEXT:    s_mov_b32 s13, s141629; GFX1132-NEXT:    s_mov_b32 s14, s151630; GFX1132-NEXT:    s_mov_b32 s32, 01631; GFX1132-NEXT:    s_waitcnt lgkmcnt(0)1632; GFX1132-NEXT:    s_swappc_b64 s[30:31], s[16:17]1633; GFX1132-NEXT:    v_mov_b32_e32 v1, 0x7fc000001634; GFX1132-NEXT:    s_mov_b32 s0, exec_lo1635; GFX1132-NEXT:  .LBB3_1: ; %ComputeLoop1636; GFX1132-NEXT:    ; =>This Inner Loop Header: Depth=11637; GFX1132-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_1)1638; GFX1132-NEXT:    s_ctz_i32_b32 s1, s01639; GFX1132-NEXT:    v_max_f32_e32 v1, v1, v11640; GFX1132-NEXT:    v_readlane_b32 s2, v0, s11641; GFX1132-NEXT:    s_lshl_b32 s1, 1, s11642; GFX1132-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_1) | instid1(VALU_DEP_1)1643; GFX1132-NEXT:    s_and_not1_b32 s0, s0, s11644; GFX1132-NEXT:    v_max_f32_e64 v2, s2, s21645; GFX1132-NEXT:    v_max_f32_e32 v1, v1, v21646; GFX1132-NEXT:    s_cbranch_scc1 .LBB3_11647; GFX1132-NEXT:  ; %bb.2: ; %ComputeEnd1648; GFX1132-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 01649; GFX1132-NEXT:    s_mov_b32 s0, exec_lo1650; GFX1132-NEXT:    s_delay_alu instid0(VALU_DEP_1)1651; GFX1132-NEXT:    v_cmpx_eq_u32_e32 0, v01652; GFX1132-NEXT:    s_xor_b32 s0, exec_lo, s01653; GFX1132-NEXT:    s_cbranch_execz .LBB3_41654; GFX1132-NEXT:  ; %bb.3:1655; GFX1132-NEXT:    s_load_b64 s[0:1], s[34:35], 0x241656; GFX1132-NEXT:    v_mov_b32_e32 v0, 01657; GFX1132-NEXT:    s_waitcnt lgkmcnt(0)1658; GFX1132-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]1659; GFX1132-NEXT:  .LBB3_4:1660; GFX1132-NEXT:    s_endpgm1661;1662; GFX7LESS-DPP-LABEL: global_atomic_fmax_uni_address_div_value_one_as_scope_unsafe:1663; GFX7LESS-DPP:       ; %bb.0:1664; GFX7LESS-DPP-NEXT:    s_mov_b32 s32, 01665; GFX7LESS-DPP-NEXT:    s_mov_b32 s48, SCRATCH_RSRC_DWORD01666; GFX7LESS-DPP-NEXT:    s_mov_b32 s49, SCRATCH_RSRC_DWORD11667; GFX7LESS-DPP-NEXT:    s_mov_b32 s50, -11668; GFX7LESS-DPP-NEXT:    s_mov_b32 s51, 0xe8f0001669; GFX7LESS-DPP-NEXT:    s_add_u32 s48, s48, s111670; GFX7LESS-DPP-NEXT:    s_addc_u32 s49, s49, 01671; GFX7LESS-DPP-NEXT:    s_mov_b32 s14, s101672; GFX7LESS-DPP-NEXT:    s_mov_b32 s13, s91673; GFX7LESS-DPP-NEXT:    s_mov_b32 s12, s81674; GFX7LESS-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]1675; GFX7LESS-DPP-NEXT:    s_load_dwordx2 s[36:37], s[4:5], 0x91676; GFX7LESS-DPP-NEXT:    s_mov_b32 s39, 0xf0001677; GFX7LESS-DPP-NEXT:    s_mov_b32 s38, -11678; GFX7LESS-DPP-NEXT:    s_add_u32 s8, s4, 441679; GFX7LESS-DPP-NEXT:    s_addc_u32 s9, s5, 01680; GFX7LESS-DPP-NEXT:    s_getpc_b64 s[4:5]1681; GFX7LESS-DPP-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+41682; GFX7LESS-DPP-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+121683; GFX7LESS-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x01684; GFX7LESS-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v21685; GFX7LESS-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v11686; GFX7LESS-DPP-NEXT:    v_or_b32_e32 v0, v0, v11687; GFX7LESS-DPP-NEXT:    v_or_b32_e32 v31, v0, v21688; GFX7LESS-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]1689; GFX7LESS-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]1690; GFX7LESS-DPP-NEXT:    s_mov_b64 s[0:1], s[48:49]1691; GFX7LESS-DPP-NEXT:    s_mov_b64 s[2:3], s[50:51]1692; GFX7LESS-DPP-NEXT:    s_waitcnt lgkmcnt(0)1693; GFX7LESS-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]1694; GFX7LESS-DPP-NEXT:    buffer_load_dword v1, off, s[36:39], 01695; GFX7LESS-DPP-NEXT:    s_mov_b64 s[0:1], 01696; GFX7LESS-DPP-NEXT:    v_mul_f32_e32 v2, 1.0, v01697; GFX7LESS-DPP-NEXT:  .LBB3_1: ; %atomicrmw.start1698; GFX7LESS-DPP-NEXT:    ; =>This Inner Loop Header: Depth=11699; GFX7LESS-DPP-NEXT:    s_waitcnt vmcnt(0)1700; GFX7LESS-DPP-NEXT:    v_mul_f32_e32 v0, 1.0, v11701; GFX7LESS-DPP-NEXT:    v_max_f32_e32 v0, v0, v21702; GFX7LESS-DPP-NEXT:    s_waitcnt expcnt(0)1703; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v4, v11704; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v3, v01705; GFX7LESS-DPP-NEXT:    buffer_atomic_cmpswap v[3:4], off, s[36:39], 0 glc1706; GFX7LESS-DPP-NEXT:    s_waitcnt vmcnt(0)1707; GFX7LESS-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, v3, v11708; GFX7LESS-DPP-NEXT:    s_or_b64 s[0:1], vcc, s[0:1]1709; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v1, v31710; GFX7LESS-DPP-NEXT:    s_andn2_b64 exec, exec, s[0:1]1711; GFX7LESS-DPP-NEXT:    s_cbranch_execnz .LBB3_11712; GFX7LESS-DPP-NEXT:  ; %bb.2: ; %atomicrmw.end1713; GFX7LESS-DPP-NEXT:    s_endpgm1714;1715; GFX9-DPP-LABEL: global_atomic_fmax_uni_address_div_value_one_as_scope_unsafe:1716; GFX9-DPP:       ; %bb.0:1717; GFX9-DPP-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD01718; GFX9-DPP-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD11719; GFX9-DPP-NEXT:    s_mov_b32 s38, -11720; GFX9-DPP-NEXT:    s_mov_b32 s39, 0xe000001721; GFX9-DPP-NEXT:    s_add_u32 s36, s36, s111722; GFX9-DPP-NEXT:    s_addc_u32 s37, s37, 01723; GFX9-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]1724; GFX9-DPP-NEXT:    s_mov_b32 s12, s81725; GFX9-DPP-NEXT:    s_add_u32 s8, s34, 441726; GFX9-DPP-NEXT:    s_mov_b32 s13, s91727; GFX9-DPP-NEXT:    s_addc_u32 s9, s35, 01728; GFX9-DPP-NEXT:    s_getpc_b64 s[4:5]1729; GFX9-DPP-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+41730; GFX9-DPP-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+121731; GFX9-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x01732; GFX9-DPP-NEXT:    s_mov_b32 s14, s101733; GFX9-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]1734; GFX9-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v21735; GFX9-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v11736; GFX9-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]1737; GFX9-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]1738; GFX9-DPP-NEXT:    s_mov_b64 s[0:1], s[36:37]1739; GFX9-DPP-NEXT:    v_or3_b32 v31, v0, v1, v21740; GFX9-DPP-NEXT:    s_mov_b64 s[2:3], s[38:39]1741; GFX9-DPP-NEXT:    s_mov_b32 s32, 01742; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)1743; GFX9-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]1744; GFX9-DPP-NEXT:    v_mbcnt_lo_u32_b32 v1, exec_lo, 01745; GFX9-DPP-NEXT:    v_mbcnt_hi_u32_b32 v1, exec_hi, v11746; GFX9-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -11747; GFX9-DPP-NEXT:    v_mov_b32_e32 v3, 0x7fc000001748; GFX9-DPP-NEXT:    v_cndmask_b32_e64 v4, v3, v0, s[0:1]1749; GFX9-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc000001750; GFX9-DPP-NEXT:    s_nop 11751; GFX9-DPP-NEXT:    v_mov_b32_dpp v5, v4 row_shr:1 row_mask:0xf bank_mask:0xf1752; GFX9-DPP-NEXT:    v_max_f32_e32 v4, v4, v41753; GFX9-DPP-NEXT:    v_max_f32_e32 v5, v5, v51754; GFX9-DPP-NEXT:    v_max_f32_e32 v4, v4, v51755; GFX9-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc000001756; GFX9-DPP-NEXT:    s_nop 11757; GFX9-DPP-NEXT:    v_mov_b32_dpp v5, v4 row_shr:2 row_mask:0xf bank_mask:0xf1758; GFX9-DPP-NEXT:    v_max_f32_e32 v5, v5, v51759; GFX9-DPP-NEXT:    v_max_f32_e32 v4, v4, v51760; GFX9-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc000001761; GFX9-DPP-NEXT:    s_nop 11762; GFX9-DPP-NEXT:    v_mov_b32_dpp v5, v4 row_shr:4 row_mask:0xf bank_mask:0xf1763; GFX9-DPP-NEXT:    v_max_f32_e32 v5, v5, v51764; GFX9-DPP-NEXT:    v_max_f32_e32 v4, v4, v51765; GFX9-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc000001766; GFX9-DPP-NEXT:    s_nop 11767; GFX9-DPP-NEXT:    v_mov_b32_dpp v5, v4 row_shr:8 row_mask:0xf bank_mask:0xf1768; GFX9-DPP-NEXT:    v_max_f32_e32 v5, v5, v51769; GFX9-DPP-NEXT:    v_max_f32_e32 v4, v4, v51770; GFX9-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc000001771; GFX9-DPP-NEXT:    s_nop 11772; GFX9-DPP-NEXT:    v_mov_b32_dpp v5, v4 row_bcast:15 row_mask:0xa bank_mask:0xf1773; GFX9-DPP-NEXT:    v_max_f32_e32 v5, v5, v51774; GFX9-DPP-NEXT:    v_max_f32_e32 v4, v4, v51775; GFX9-DPP-NEXT:    s_nop 11776; GFX9-DPP-NEXT:    v_mov_b32_dpp v3, v4 row_bcast:31 row_mask:0xc bank_mask:0xf1777; GFX9-DPP-NEXT:    v_max_f32_e32 v3, v3, v31778; GFX9-DPP-NEXT:    v_max_f32_e32 v3, v4, v31779; GFX9-DPP-NEXT:    v_readlane_b32 s4, v3, 631780; GFX9-DPP-NEXT:    s_mov_b64 exec, s[0:1]1781; GFX9-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v11782; GFX9-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc1783; GFX9-DPP-NEXT:    s_cbranch_execz .LBB3_31784; GFX9-DPP-NEXT:  ; %bb.1:1785; GFX9-DPP-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x241786; GFX9-DPP-NEXT:    v_mov_b32_e32 v2, 01787; GFX9-DPP-NEXT:    s_mov_b64 s[2:3], 01788; GFX9-DPP-NEXT:    v_max_f32_e64 v6, s4, s41789; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)1790; GFX9-DPP-NEXT:    global_load_dword v1, v2, s[0:1]1791; GFX9-DPP-NEXT:  .LBB3_2: ; %atomicrmw.start1792; GFX9-DPP-NEXT:    ; =>This Inner Loop Header: Depth=11793; GFX9-DPP-NEXT:    s_waitcnt vmcnt(0)1794; GFX9-DPP-NEXT:    v_max_f32_e32 v0, v1, v11795; GFX9-DPP-NEXT:    v_max_f32_e32 v0, v0, v61796; GFX9-DPP-NEXT:    global_atomic_cmpswap v0, v2, v[0:1], s[0:1] glc1797; GFX9-DPP-NEXT:    s_waitcnt vmcnt(0)1798; GFX9-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v11799; GFX9-DPP-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]1800; GFX9-DPP-NEXT:    v_mov_b32_e32 v1, v01801; GFX9-DPP-NEXT:    s_andn2_b64 exec, exec, s[2:3]1802; GFX9-DPP-NEXT:    s_cbranch_execnz .LBB3_21803; GFX9-DPP-NEXT:  .LBB3_3:1804; GFX9-DPP-NEXT:    s_endpgm1805;1806; GFX1064-DPP-LABEL: global_atomic_fmax_uni_address_div_value_one_as_scope_unsafe:1807; GFX1064-DPP:       ; %bb.0:1808; GFX1064-DPP-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD01809; GFX1064-DPP-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD11810; GFX1064-DPP-NEXT:    s_mov_b32 s38, -11811; GFX1064-DPP-NEXT:    s_mov_b32 s39, 0x31e160001812; GFX1064-DPP-NEXT:    s_add_u32 s36, s36, s111813; GFX1064-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]1814; GFX1064-DPP-NEXT:    s_addc_u32 s37, s37, 01815; GFX1064-DPP-NEXT:    s_mov_b32 s12, s81816; GFX1064-DPP-NEXT:    s_add_u32 s8, s34, 441817; GFX1064-DPP-NEXT:    s_mov_b32 s13, s91818; GFX1064-DPP-NEXT:    s_addc_u32 s9, s35, 01819; GFX1064-DPP-NEXT:    s_getpc_b64 s[4:5]1820; GFX1064-DPP-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+41821; GFX1064-DPP-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+121822; GFX1064-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v21823; GFX1064-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x01824; GFX1064-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v11825; GFX1064-DPP-NEXT:    s_mov_b32 s14, s101826; GFX1064-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]1827; GFX1064-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]1828; GFX1064-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]1829; GFX1064-DPP-NEXT:    v_or3_b32 v31, v0, v1, v21830; GFX1064-DPP-NEXT:    s_mov_b64 s[0:1], s[36:37]1831; GFX1064-DPP-NEXT:    s_mov_b64 s[2:3], s[38:39]1832; GFX1064-DPP-NEXT:    s_mov_b32 s32, 01833; GFX1064-DPP-NEXT:    s_waitcnt lgkmcnt(0)1834; GFX1064-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]1835; GFX1064-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -11836; GFX1064-DPP-NEXT:    v_mov_b32_e32 v3, 0x7fc000001837; GFX1064-DPP-NEXT:    v_cndmask_b32_e64 v4, 0x7fc00000, v0, s[0:1]1838; GFX1064-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc000001839; GFX1064-DPP-NEXT:    v_mov_b32_dpp v3, v4 row_xmask:1 row_mask:0xf bank_mask:0xf1840; GFX1064-DPP-NEXT:    v_max_f32_e32 v4, v4, v41841; GFX1064-DPP-NEXT:    v_max_f32_e32 v3, v3, v31842; GFX1064-DPP-NEXT:    v_max_f32_e32 v3, v4, v31843; GFX1064-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:2 row_mask:0xf bank_mask:0xf1844; GFX1064-DPP-NEXT:    v_max_f32_e32 v4, v5, v51845; GFX1064-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc000001846; GFX1064-DPP-NEXT:    v_max_f32_e32 v3, v3, v41847; GFX1064-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:4 row_mask:0xf bank_mask:0xf1848; GFX1064-DPP-NEXT:    v_max_f32_e32 v4, v5, v51849; GFX1064-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc000001850; GFX1064-DPP-NEXT:    v_max_f32_e32 v3, v3, v41851; GFX1064-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:8 row_mask:0xf bank_mask:0xf1852; GFX1064-DPP-NEXT:    v_max_f32_e32 v4, v5, v51853; GFX1064-DPP-NEXT:    v_max_f32_e32 v3, v3, v41854; GFX1064-DPP-NEXT:    v_permlanex16_b32 v4, v3, 0, 01855; GFX1064-DPP-NEXT:    v_max_f32_e32 v4, v4, v41856; GFX1064-DPP-NEXT:    v_max_f32_e32 v3, v3, v41857; GFX1064-DPP-NEXT:    v_readlane_b32 s2, v3, 321858; GFX1064-DPP-NEXT:    v_readlane_b32 s3, v3, 01859; GFX1064-DPP-NEXT:    v_max_f32_e64 v3, s2, s21860; GFX1064-DPP-NEXT:    v_max_f32_e64 v4, s3, s31861; GFX1064-DPP-NEXT:    s_mov_b64 exec, s[0:1]1862; GFX1064-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 01863; GFX1064-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -11864; GFX1064-DPP-NEXT:    v_max_f32_e32 v3, v4, v31865; GFX1064-DPP-NEXT:    s_mov_b64 exec, s[0:1]1866; GFX1064-DPP-NEXT:    v_mbcnt_hi_u32_b32 v1, exec_hi, v01867; GFX1064-DPP-NEXT:    v_mov_b32_e32 v0, v31868; GFX1064-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v11869; GFX1064-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc1870; GFX1064-DPP-NEXT:    s_cbranch_execz .LBB3_21871; GFX1064-DPP-NEXT:  ; %bb.1:1872; GFX1064-DPP-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x241873; GFX1064-DPP-NEXT:    v_mov_b32_e32 v1, 01874; GFX1064-DPP-NEXT:    s_waitcnt lgkmcnt(0)1875; GFX1064-DPP-NEXT:    global_atomic_fmax v1, v0, s[0:1]1876; GFX1064-DPP-NEXT:  .LBB3_2:1877; GFX1064-DPP-NEXT:    s_endpgm1878;1879; GFX1032-DPP-LABEL: global_atomic_fmax_uni_address_div_value_one_as_scope_unsafe:1880; GFX1032-DPP:       ; %bb.0:1881; GFX1032-DPP-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD01882; GFX1032-DPP-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD11883; GFX1032-DPP-NEXT:    s_mov_b32 s38, -11884; GFX1032-DPP-NEXT:    s_mov_b32 s39, 0x31c160001885; GFX1032-DPP-NEXT:    s_add_u32 s36, s36, s111886; GFX1032-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]1887; GFX1032-DPP-NEXT:    s_addc_u32 s37, s37, 01888; GFX1032-DPP-NEXT:    s_mov_b32 s12, s81889; GFX1032-DPP-NEXT:    s_add_u32 s8, s34, 441890; GFX1032-DPP-NEXT:    s_mov_b32 s13, s91891; GFX1032-DPP-NEXT:    s_addc_u32 s9, s35, 01892; GFX1032-DPP-NEXT:    s_getpc_b64 s[4:5]1893; GFX1032-DPP-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+41894; GFX1032-DPP-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+121895; GFX1032-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v21896; GFX1032-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x01897; GFX1032-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v11898; GFX1032-DPP-NEXT:    s_mov_b32 s14, s101899; GFX1032-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]1900; GFX1032-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]1901; GFX1032-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]1902; GFX1032-DPP-NEXT:    v_or3_b32 v31, v0, v1, v21903; GFX1032-DPP-NEXT:    s_mov_b64 s[0:1], s[36:37]1904; GFX1032-DPP-NEXT:    s_mov_b64 s[2:3], s[38:39]1905; GFX1032-DPP-NEXT:    s_mov_b32 s32, 01906; GFX1032-DPP-NEXT:    s_waitcnt lgkmcnt(0)1907; GFX1032-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]1908; GFX1032-DPP-NEXT:    s_or_saveexec_b32 s0, -11909; GFX1032-DPP-NEXT:    v_mov_b32_e32 v3, 0x7fc000001910; GFX1032-DPP-NEXT:    v_cndmask_b32_e64 v4, 0x7fc00000, v0, s01911; GFX1032-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc000001912; GFX1032-DPP-NEXT:    v_mov_b32_dpp v3, v4 row_xmask:1 row_mask:0xf bank_mask:0xf1913; GFX1032-DPP-NEXT:    v_max_f32_e32 v4, v4, v41914; GFX1032-DPP-NEXT:    v_max_f32_e32 v3, v3, v31915; GFX1032-DPP-NEXT:    v_max_f32_e32 v3, v4, v31916; GFX1032-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:2 row_mask:0xf bank_mask:0xf1917; GFX1032-DPP-NEXT:    v_max_f32_e32 v4, v5, v51918; GFX1032-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc000001919; GFX1032-DPP-NEXT:    v_max_f32_e32 v3, v3, v41920; GFX1032-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:4 row_mask:0xf bank_mask:0xf1921; GFX1032-DPP-NEXT:    v_max_f32_e32 v4, v5, v51922; GFX1032-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc000001923; GFX1032-DPP-NEXT:    v_max_f32_e32 v3, v3, v41924; GFX1032-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:8 row_mask:0xf bank_mask:0xf1925; GFX1032-DPP-NEXT:    v_max_f32_e32 v4, v5, v51926; GFX1032-DPP-NEXT:    v_max_f32_e32 v3, v3, v41927; GFX1032-DPP-NEXT:    v_permlanex16_b32 v4, v3, 0, 01928; GFX1032-DPP-NEXT:    v_max_f32_e32 v4, v4, v41929; GFX1032-DPP-NEXT:    v_max_f32_e32 v3, v3, v41930; GFX1032-DPP-NEXT:    s_mov_b32 exec_lo, s01931; GFX1032-DPP-NEXT:    v_mbcnt_lo_u32_b32 v1, exec_lo, 01932; GFX1032-DPP-NEXT:    v_mov_b32_e32 v0, v31933; GFX1032-DPP-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v11934; GFX1032-DPP-NEXT:    s_and_saveexec_b32 s0, vcc_lo1935; GFX1032-DPP-NEXT:    s_cbranch_execz .LBB3_21936; GFX1032-DPP-NEXT:  ; %bb.1:1937; GFX1032-DPP-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x241938; GFX1032-DPP-NEXT:    v_mov_b32_e32 v1, 01939; GFX1032-DPP-NEXT:    s_waitcnt lgkmcnt(0)1940; GFX1032-DPP-NEXT:    global_atomic_fmax v1, v0, s[0:1]1941; GFX1032-DPP-NEXT:  .LBB3_2:1942; GFX1032-DPP-NEXT:    s_endpgm1943;1944; GFX1164-DPP-LABEL: global_atomic_fmax_uni_address_div_value_one_as_scope_unsafe:1945; GFX1164-DPP:       ; %bb.0:1946; GFX1164-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]1947; GFX1164-DPP-NEXT:    s_mov_b32 s12, s81948; GFX1164-DPP-NEXT:    s_add_u32 s8, s34, 441949; GFX1164-DPP-NEXT:    s_mov_b32 s13, s91950; GFX1164-DPP-NEXT:    s_addc_u32 s9, s35, 01951; GFX1164-DPP-NEXT:    s_getpc_b64 s[4:5]1952; GFX1164-DPP-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+41953; GFX1164-DPP-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+121954; GFX1164-DPP-NEXT:    v_mov_b32_e32 v31, v01955; GFX1164-DPP-NEXT:    s_load_b64 s[16:17], s[4:5], 0x01956; GFX1164-DPP-NEXT:    s_mov_b32 s14, s101957; GFX1164-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]1958; GFX1164-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]1959; GFX1164-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]1960; GFX1164-DPP-NEXT:    s_mov_b32 s32, 01961; GFX1164-DPP-NEXT:    s_waitcnt lgkmcnt(0)1962; GFX1164-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]1963; GFX1164-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -11964; GFX1164-DPP-NEXT:    v_mov_b32_e32 v1, 0x7fc000001965; GFX1164-DPP-NEXT:    v_cndmask_b32_e64 v2, 0x7fc00000, v0, s[0:1]1966; GFX1164-DPP-NEXT:    v_mov_b32_e32 v3, 0x7fc000001967; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_1) | instid1(VALU_DEP_2)1968; GFX1164-DPP-NEXT:    v_mov_b32_dpp v1, v2 row_xmask:1 row_mask:0xf bank_mask:0xf1969; GFX1164-DPP-NEXT:    v_max_f32_e32 v2, v2, v21970; GFX1164-DPP-NEXT:    v_max_f32_e32 v1, v1, v11971; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1972; GFX1164-DPP-NEXT:    v_max_f32_e32 v1, v2, v11973; GFX1164-DPP-NEXT:    v_mov_b32_dpp v3, v1 row_xmask:2 row_mask:0xf bank_mask:0xf1974; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)1975; GFX1164-DPP-NEXT:    v_max_f32_e32 v2, v3, v31976; GFX1164-DPP-NEXT:    v_mov_b32_e32 v3, 0x7fc000001977; GFX1164-DPP-NEXT:    v_max_f32_e32 v1, v1, v21978; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1979; GFX1164-DPP-NEXT:    v_mov_b32_dpp v3, v1 row_xmask:4 row_mask:0xf bank_mask:0xf1980; GFX1164-DPP-NEXT:    v_max_f32_e32 v2, v3, v31981; GFX1164-DPP-NEXT:    v_mov_b32_e32 v3, 0x7fc000001982; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)1983; GFX1164-DPP-NEXT:    v_max_f32_e32 v1, v1, v21984; GFX1164-DPP-NEXT:    v_mov_b32_dpp v3, v1 row_xmask:8 row_mask:0xf bank_mask:0xf1985; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1986; GFX1164-DPP-NEXT:    v_max_f32_e32 v2, v3, v31987; GFX1164-DPP-NEXT:    v_max_f32_e32 v1, v1, v21988; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1989; GFX1164-DPP-NEXT:    v_permlanex16_b32 v2, v1, 0, 01990; GFX1164-DPP-NEXT:    v_max_f32_e32 v2, v2, v21991; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1992; GFX1164-DPP-NEXT:    v_max_f32_e32 v1, v1, v21993; GFX1164-DPP-NEXT:    v_permlane64_b32 v2, v11994; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1)1995; GFX1164-DPP-NEXT:    v_max_f32_e32 v2, v2, v21996; GFX1164-DPP-NEXT:    s_mov_b64 exec, s[0:1]1997; GFX1164-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 01998; GFX1164-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -11999; GFX1164-DPP-NEXT:    s_waitcnt_depctr depctr_sa_sdst(0)2000; GFX1164-DPP-NEXT:    v_max_f32_e32 v1, v1, v22001; GFX1164-DPP-NEXT:    s_mov_b64 exec, s[0:1]2002; GFX1164-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_2)2003; GFX1164-DPP-NEXT:    v_mbcnt_hi_u32_b32 v4, exec_hi, v02004; GFX1164-DPP-NEXT:    v_mov_b32_e32 v0, v12005; GFX1164-DPP-NEXT:    s_mov_b64 s[0:1], exec2006; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2)2007; GFX1164-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v42008; GFX1164-DPP-NEXT:    s_cbranch_execz .LBB3_22009; GFX1164-DPP-NEXT:  ; %bb.1:2010; GFX1164-DPP-NEXT:    s_load_b64 s[0:1], s[34:35], 0x242011; GFX1164-DPP-NEXT:    v_mov_b32_e32 v4, 02012; GFX1164-DPP-NEXT:    s_waitcnt lgkmcnt(0)2013; GFX1164-DPP-NEXT:    global_atomic_max_f32 v4, v0, s[0:1]2014; GFX1164-DPP-NEXT:  .LBB3_2:2015; GFX1164-DPP-NEXT:    s_endpgm2016;2017; GFX1132-DPP-LABEL: global_atomic_fmax_uni_address_div_value_one_as_scope_unsafe:2018; GFX1132-DPP:       ; %bb.0:2019; GFX1132-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]2020; GFX1132-DPP-NEXT:    v_mov_b32_e32 v31, v02021; GFX1132-DPP-NEXT:    s_add_u32 s8, s34, 442022; GFX1132-DPP-NEXT:    s_addc_u32 s9, s35, 02023; GFX1132-DPP-NEXT:    s_getpc_b64 s[4:5]2024; GFX1132-DPP-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+42025; GFX1132-DPP-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+122026; GFX1132-DPP-NEXT:    s_mov_b32 s12, s132027; GFX1132-DPP-NEXT:    s_load_b64 s[16:17], s[4:5], 0x02028; GFX1132-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]2029; GFX1132-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]2030; GFX1132-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]2031; GFX1132-DPP-NEXT:    s_mov_b32 s13, s142032; GFX1132-DPP-NEXT:    s_mov_b32 s14, s152033; GFX1132-DPP-NEXT:    s_mov_b32 s32, 02034; GFX1132-DPP-NEXT:    s_waitcnt lgkmcnt(0)2035; GFX1132-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]2036; GFX1132-DPP-NEXT:    s_or_saveexec_b32 s0, -12037; GFX1132-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_2) | instid1(VALU_DEP_2)2038; GFX1132-DPP-NEXT:    v_cndmask_b32_e64 v2, 0x7fc00000, v0, s02039; GFX1132-DPP-NEXT:    v_mov_b32_e32 v1, 0x7fc000002040; GFX1132-DPP-NEXT:    v_mov_b32_e32 v3, 0x7fc000002041; GFX1132-DPP-NEXT:    v_mov_b32_dpp v1, v2 row_xmask:1 row_mask:0xf bank_mask:0xf2042; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2043; GFX1132-DPP-NEXT:    v_dual_max_f32 v2, v2, v2 :: v_dual_max_f32 v1, v1, v12044; GFX1132-DPP-NEXT:    v_max_f32_e32 v1, v2, v12045; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2046; GFX1132-DPP-NEXT:    v_mov_b32_dpp v3, v1 row_xmask:2 row_mask:0xf bank_mask:0xf2047; GFX1132-DPP-NEXT:    v_dual_max_f32 v2, v3, v3 :: v_dual_mov_b32 v3, 0x7fc000002048; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2049; GFX1132-DPP-NEXT:    v_max_f32_e32 v1, v1, v22050; GFX1132-DPP-NEXT:    v_mov_b32_dpp v3, v1 row_xmask:4 row_mask:0xf bank_mask:0xf2051; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2052; GFX1132-DPP-NEXT:    v_dual_max_f32 v2, v3, v3 :: v_dual_mov_b32 v3, 0x7fc000002053; GFX1132-DPP-NEXT:    v_max_f32_e32 v1, v1, v22054; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2055; GFX1132-DPP-NEXT:    v_mov_b32_dpp v3, v1 row_xmask:8 row_mask:0xf bank_mask:0xf2056; GFX1132-DPP-NEXT:    v_max_f32_e32 v2, v3, v32057; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2058; GFX1132-DPP-NEXT:    v_max_f32_e32 v1, v1, v22059; GFX1132-DPP-NEXT:    v_permlanex16_b32 v2, v1, 0, 02060; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2061; GFX1132-DPP-NEXT:    v_max_f32_e32 v2, v2, v22062; GFX1132-DPP-NEXT:    v_max_f32_e32 v1, v1, v22063; GFX1132-DPP-NEXT:    s_mov_b32 exec_lo, s02064; GFX1132-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_2)2065; GFX1132-DPP-NEXT:    v_mbcnt_lo_u32_b32 v4, exec_lo, 02066; GFX1132-DPP-NEXT:    v_mov_b32_e32 v0, v12067; GFX1132-DPP-NEXT:    s_mov_b32 s0, exec_lo2068; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2)2069; GFX1132-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v42070; GFX1132-DPP-NEXT:    s_cbranch_execz .LBB3_22071; GFX1132-DPP-NEXT:  ; %bb.1:2072; GFX1132-DPP-NEXT:    s_load_b64 s[0:1], s[34:35], 0x242073; GFX1132-DPP-NEXT:    v_mov_b32_e32 v4, 02074; GFX1132-DPP-NEXT:    s_waitcnt lgkmcnt(0)2075; GFX1132-DPP-NEXT:    global_atomic_max_f32 v4, v0, s[0:1]2076; GFX1132-DPP-NEXT:  .LBB3_2:2077; GFX1132-DPP-NEXT:    s_endpgm2078  %divValue = call float @div.float.value()2079  %result = atomicrmw fmax ptr addrspace(1) %ptr, float %divValue syncscope("one-as") monotonic, !amdgpu.no.fine.grained.memory !12080  ret void2081}2082 2083 2084define amdgpu_kernel void @global_atomic_fmax_uni_address_uni_value_default_scope_unsafe(ptr addrspace(1) %ptr) #0 {2085; GFX7LESS-LABEL: global_atomic_fmax_uni_address_uni_value_default_scope_unsafe:2086; GFX7LESS:       ; %bb.0:2087; GFX7LESS-NEXT:    v_mbcnt_lo_u32_b32_e64 v0, exec_lo, 02088; GFX7LESS-NEXT:    v_mbcnt_hi_u32_b32_e32 v0, exec_hi, v02089; GFX7LESS-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v02090; GFX7LESS-NEXT:    s_and_saveexec_b64 s[0:1], vcc2091; GFX7LESS-NEXT:    s_cbranch_execz .LBB4_32092; GFX7LESS-NEXT:  ; %bb.1:2093; GFX7LESS-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x92094; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)2095; GFX7LESS-NEXT:    s_load_dword s2, s[0:1], 0x02096; GFX7LESS-NEXT:    s_mov_b64 s[4:5], 02097; GFX7LESS-NEXT:    s_mov_b32 s3, 0xf0002098; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)2099; GFX7LESS-NEXT:    v_mov_b32_e32 v1, s22100; GFX7LESS-NEXT:    s_mov_b32 s2, -12101; GFX7LESS-NEXT:  .LBB4_2: ; %atomicrmw.start2102; GFX7LESS-NEXT:    ; =>This Inner Loop Header: Depth=12103; GFX7LESS-NEXT:    v_mul_f32_e32 v0, 1.0, v12104; GFX7LESS-NEXT:    v_max_f32_e32 v0, 4.0, v02105; GFX7LESS-NEXT:    s_waitcnt expcnt(0)2106; GFX7LESS-NEXT:    v_mov_b32_e32 v3, v12107; GFX7LESS-NEXT:    v_mov_b32_e32 v2, v02108; GFX7LESS-NEXT:    buffer_atomic_cmpswap v[2:3], off, s[0:3], 0 glc2109; GFX7LESS-NEXT:    s_waitcnt vmcnt(0)2110; GFX7LESS-NEXT:    v_cmp_eq_u32_e32 vcc, v2, v12111; GFX7LESS-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]2112; GFX7LESS-NEXT:    v_mov_b32_e32 v1, v22113; GFX7LESS-NEXT:    s_andn2_b64 exec, exec, s[4:5]2114; GFX7LESS-NEXT:    s_cbranch_execnz .LBB4_22115; GFX7LESS-NEXT:  .LBB4_3:2116; GFX7LESS-NEXT:    s_endpgm2117;2118; GFX9-LABEL: global_atomic_fmax_uni_address_uni_value_default_scope_unsafe:2119; GFX9:       ; %bb.0:2120; GFX9-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 02121; GFX9-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v02122; GFX9-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v02123; GFX9-NEXT:    s_and_saveexec_b64 s[0:1], vcc2124; GFX9-NEXT:    s_cbranch_execz .LBB4_32125; GFX9-NEXT:  ; %bb.1:2126; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x242127; GFX9-NEXT:    s_mov_b64 s[2:3], 02128; GFX9-NEXT:    v_mov_b32_e32 v2, 02129; GFX9-NEXT:    s_waitcnt lgkmcnt(0)2130; GFX9-NEXT:    s_load_dword s4, s[0:1], 0x02131; GFX9-NEXT:    s_waitcnt lgkmcnt(0)2132; GFX9-NEXT:    v_mov_b32_e32 v1, s42133; GFX9-NEXT:  .LBB4_2: ; %atomicrmw.start2134; GFX9-NEXT:    ; =>This Inner Loop Header: Depth=12135; GFX9-NEXT:    v_max_f32_e32 v0, v1, v12136; GFX9-NEXT:    v_max_f32_e32 v0, 4.0, v02137; GFX9-NEXT:    global_atomic_cmpswap v0, v2, v[0:1], s[0:1] glc2138; GFX9-NEXT:    s_waitcnt vmcnt(0)2139; GFX9-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v12140; GFX9-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]2141; GFX9-NEXT:    v_mov_b32_e32 v1, v02142; GFX9-NEXT:    s_andn2_b64 exec, exec, s[2:3]2143; GFX9-NEXT:    s_cbranch_execnz .LBB4_22144; GFX9-NEXT:  .LBB4_3:2145; GFX9-NEXT:    s_endpgm2146;2147; GFX1064-LABEL: global_atomic_fmax_uni_address_uni_value_default_scope_unsafe:2148; GFX1064:       ; %bb.0:2149; GFX1064-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 02150; GFX1064-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v02151; GFX1064-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v02152; GFX1064-NEXT:    s_and_saveexec_b64 s[0:1], vcc2153; GFX1064-NEXT:    s_cbranch_execz .LBB4_22154; GFX1064-NEXT:  ; %bb.1:2155; GFX1064-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x242156; GFX1064-NEXT:    v_mov_b32_e32 v0, 02157; GFX1064-NEXT:    v_mov_b32_e32 v1, 4.02158; GFX1064-NEXT:    s_waitcnt lgkmcnt(0)2159; GFX1064-NEXT:    global_atomic_fmax v0, v1, s[0:1]2160; GFX1064-NEXT:  .LBB4_2:2161; GFX1064-NEXT:    s_endpgm2162;2163; GFX1032-LABEL: global_atomic_fmax_uni_address_uni_value_default_scope_unsafe:2164; GFX1032:       ; %bb.0:2165; GFX1032-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 02166; GFX1032-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v02167; GFX1032-NEXT:    s_and_saveexec_b32 s0, vcc_lo2168; GFX1032-NEXT:    s_cbranch_execz .LBB4_22169; GFX1032-NEXT:  ; %bb.1:2170; GFX1032-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x242171; GFX1032-NEXT:    v_mov_b32_e32 v0, 02172; GFX1032-NEXT:    v_mov_b32_e32 v1, 4.02173; GFX1032-NEXT:    s_waitcnt lgkmcnt(0)2174; GFX1032-NEXT:    global_atomic_fmax v0, v1, s[0:1]2175; GFX1032-NEXT:  .LBB4_2:2176; GFX1032-NEXT:    s_endpgm2177;2178; GFX1164-LABEL: global_atomic_fmax_uni_address_uni_value_default_scope_unsafe:2179; GFX1164:       ; %bb.0:2180; GFX1164-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 02181; GFX1164-NEXT:    s_mov_b64 s[0:1], exec2182; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2183; GFX1164-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v02184; GFX1164-NEXT:    v_cmpx_eq_u32_e32 0, v02185; GFX1164-NEXT:    s_cbranch_execz .LBB4_22186; GFX1164-NEXT:  ; %bb.1:2187; GFX1164-NEXT:    s_load_b64 s[0:1], s[4:5], 0x242188; GFX1164-NEXT:    v_mov_b32_e32 v0, 02189; GFX1164-NEXT:    v_mov_b32_e32 v1, 4.02190; GFX1164-NEXT:    s_waitcnt lgkmcnt(0)2191; GFX1164-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]2192; GFX1164-NEXT:  .LBB4_2:2193; GFX1164-NEXT:    s_endpgm2194;2195; GFX1132-LABEL: global_atomic_fmax_uni_address_uni_value_default_scope_unsafe:2196; GFX1132:       ; %bb.0:2197; GFX1132-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 02198; GFX1132-NEXT:    s_mov_b32 s0, exec_lo2199; GFX1132-NEXT:    s_delay_alu instid0(VALU_DEP_1)2200; GFX1132-NEXT:    v_cmpx_eq_u32_e32 0, v02201; GFX1132-NEXT:    s_cbranch_execz .LBB4_22202; GFX1132-NEXT:  ; %bb.1:2203; GFX1132-NEXT:    s_load_b64 s[0:1], s[4:5], 0x242204; GFX1132-NEXT:    v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, 4.02205; GFX1132-NEXT:    s_waitcnt lgkmcnt(0)2206; GFX1132-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]2207; GFX1132-NEXT:  .LBB4_2:2208; GFX1132-NEXT:    s_endpgm2209;2210; GFX7LESS-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_default_scope_unsafe:2211; GFX7LESS-DPP:       ; %bb.0:2212; GFX7LESS-DPP-NEXT:    v_mbcnt_lo_u32_b32_e64 v0, exec_lo, 02213; GFX7LESS-DPP-NEXT:    v_mbcnt_hi_u32_b32_e32 v0, exec_hi, v02214; GFX7LESS-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v02215; GFX7LESS-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc2216; GFX7LESS-DPP-NEXT:    s_cbranch_execz .LBB4_32217; GFX7LESS-DPP-NEXT:  ; %bb.1:2218; GFX7LESS-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x92219; GFX7LESS-DPP-NEXT:    s_waitcnt lgkmcnt(0)2220; GFX7LESS-DPP-NEXT:    s_load_dword s2, s[0:1], 0x02221; GFX7LESS-DPP-NEXT:    s_mov_b64 s[4:5], 02222; GFX7LESS-DPP-NEXT:    s_mov_b32 s3, 0xf0002223; GFX7LESS-DPP-NEXT:    s_waitcnt lgkmcnt(0)2224; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v1, s22225; GFX7LESS-DPP-NEXT:    s_mov_b32 s2, -12226; GFX7LESS-DPP-NEXT:  .LBB4_2: ; %atomicrmw.start2227; GFX7LESS-DPP-NEXT:    ; =>This Inner Loop Header: Depth=12228; GFX7LESS-DPP-NEXT:    v_mul_f32_e32 v0, 1.0, v12229; GFX7LESS-DPP-NEXT:    v_max_f32_e32 v0, 4.0, v02230; GFX7LESS-DPP-NEXT:    s_waitcnt expcnt(0)2231; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v3, v12232; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v2, v02233; GFX7LESS-DPP-NEXT:    buffer_atomic_cmpswap v[2:3], off, s[0:3], 0 glc2234; GFX7LESS-DPP-NEXT:    s_waitcnt vmcnt(0)2235; GFX7LESS-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, v2, v12236; GFX7LESS-DPP-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]2237; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v1, v22238; GFX7LESS-DPP-NEXT:    s_andn2_b64 exec, exec, s[4:5]2239; GFX7LESS-DPP-NEXT:    s_cbranch_execnz .LBB4_22240; GFX7LESS-DPP-NEXT:  .LBB4_3:2241; GFX7LESS-DPP-NEXT:    s_endpgm2242;2243; GFX9-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_default_scope_unsafe:2244; GFX9-DPP:       ; %bb.0:2245; GFX9-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 02246; GFX9-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v02247; GFX9-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v02248; GFX9-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc2249; GFX9-DPP-NEXT:    s_cbranch_execz .LBB4_32250; GFX9-DPP-NEXT:  ; %bb.1:2251; GFX9-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x242252; GFX9-DPP-NEXT:    s_mov_b64 s[2:3], 02253; GFX9-DPP-NEXT:    v_mov_b32_e32 v2, 02254; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)2255; GFX9-DPP-NEXT:    s_load_dword s4, s[0:1], 0x02256; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)2257; GFX9-DPP-NEXT:    v_mov_b32_e32 v1, s42258; GFX9-DPP-NEXT:  .LBB4_2: ; %atomicrmw.start2259; GFX9-DPP-NEXT:    ; =>This Inner Loop Header: Depth=12260; GFX9-DPP-NEXT:    v_max_f32_e32 v0, v1, v12261; GFX9-DPP-NEXT:    v_max_f32_e32 v0, 4.0, v02262; GFX9-DPP-NEXT:    global_atomic_cmpswap v0, v2, v[0:1], s[0:1] glc2263; GFX9-DPP-NEXT:    s_waitcnt vmcnt(0)2264; GFX9-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v12265; GFX9-DPP-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]2266; GFX9-DPP-NEXT:    v_mov_b32_e32 v1, v02267; GFX9-DPP-NEXT:    s_andn2_b64 exec, exec, s[2:3]2268; GFX9-DPP-NEXT:    s_cbranch_execnz .LBB4_22269; GFX9-DPP-NEXT:  .LBB4_3:2270; GFX9-DPP-NEXT:    s_endpgm2271;2272; GFX1064-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_default_scope_unsafe:2273; GFX1064-DPP:       ; %bb.0:2274; GFX1064-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 02275; GFX1064-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v02276; GFX1064-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v02277; GFX1064-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc2278; GFX1064-DPP-NEXT:    s_cbranch_execz .LBB4_22279; GFX1064-DPP-NEXT:  ; %bb.1:2280; GFX1064-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x242281; GFX1064-DPP-NEXT:    v_mov_b32_e32 v0, 02282; GFX1064-DPP-NEXT:    v_mov_b32_e32 v1, 4.02283; GFX1064-DPP-NEXT:    s_waitcnt lgkmcnt(0)2284; GFX1064-DPP-NEXT:    global_atomic_fmax v0, v1, s[0:1]2285; GFX1064-DPP-NEXT:  .LBB4_2:2286; GFX1064-DPP-NEXT:    s_endpgm2287;2288; GFX1032-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_default_scope_unsafe:2289; GFX1032-DPP:       ; %bb.0:2290; GFX1032-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 02291; GFX1032-DPP-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v02292; GFX1032-DPP-NEXT:    s_and_saveexec_b32 s0, vcc_lo2293; GFX1032-DPP-NEXT:    s_cbranch_execz .LBB4_22294; GFX1032-DPP-NEXT:  ; %bb.1:2295; GFX1032-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x242296; GFX1032-DPP-NEXT:    v_mov_b32_e32 v0, 02297; GFX1032-DPP-NEXT:    v_mov_b32_e32 v1, 4.02298; GFX1032-DPP-NEXT:    s_waitcnt lgkmcnt(0)2299; GFX1032-DPP-NEXT:    global_atomic_fmax v0, v1, s[0:1]2300; GFX1032-DPP-NEXT:  .LBB4_2:2301; GFX1032-DPP-NEXT:    s_endpgm2302;2303; GFX1164-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_default_scope_unsafe:2304; GFX1164-DPP:       ; %bb.0:2305; GFX1164-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 02306; GFX1164-DPP-NEXT:    s_mov_b64 s[0:1], exec2307; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2308; GFX1164-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v02309; GFX1164-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v02310; GFX1164-DPP-NEXT:    s_cbranch_execz .LBB4_22311; GFX1164-DPP-NEXT:  ; %bb.1:2312; GFX1164-DPP-NEXT:    s_load_b64 s[0:1], s[4:5], 0x242313; GFX1164-DPP-NEXT:    v_mov_b32_e32 v0, 02314; GFX1164-DPP-NEXT:    v_mov_b32_e32 v1, 4.02315; GFX1164-DPP-NEXT:    s_waitcnt lgkmcnt(0)2316; GFX1164-DPP-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]2317; GFX1164-DPP-NEXT:  .LBB4_2:2318; GFX1164-DPP-NEXT:    s_endpgm2319;2320; GFX1132-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_default_scope_unsafe:2321; GFX1132-DPP:       ; %bb.0:2322; GFX1132-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 02323; GFX1132-DPP-NEXT:    s_mov_b32 s0, exec_lo2324; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1)2325; GFX1132-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v02326; GFX1132-DPP-NEXT:    s_cbranch_execz .LBB4_22327; GFX1132-DPP-NEXT:  ; %bb.1:2328; GFX1132-DPP-NEXT:    s_load_b64 s[0:1], s[4:5], 0x242329; GFX1132-DPP-NEXT:    v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, 4.02330; GFX1132-DPP-NEXT:    s_waitcnt lgkmcnt(0)2331; GFX1132-DPP-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]2332; GFX1132-DPP-NEXT:  .LBB4_2:2333; GFX1132-DPP-NEXT:    s_endpgm2334  %result = atomicrmw fmax ptr addrspace(1) %ptr, float 4.0 monotonic, align 4, !amdgpu.no.fine.grained.memory !12335  ret void2336}2337 2338define amdgpu_kernel void @global_atomic_fmax_uni_address_div_value_default_scope_unsafe(ptr addrspace(1) %ptr) #0 {2339; GFX7LESS-LABEL: global_atomic_fmax_uni_address_div_value_default_scope_unsafe:2340; GFX7LESS:       ; %bb.0:2341; GFX7LESS-NEXT:    s_mov_b32 s32, 02342; GFX7LESS-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD02343; GFX7LESS-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD12344; GFX7LESS-NEXT:    s_mov_b32 s38, -12345; GFX7LESS-NEXT:    s_mov_b32 s39, 0xe8f0002346; GFX7LESS-NEXT:    s_add_u32 s36, s36, s112347; GFX7LESS-NEXT:    s_addc_u32 s37, s37, 02348; GFX7LESS-NEXT:    s_mov_b32 s14, s102349; GFX7LESS-NEXT:    s_mov_b32 s13, s92350; GFX7LESS-NEXT:    s_mov_b32 s12, s82351; GFX7LESS-NEXT:    s_mov_b64 s[10:11], s[6:7]2352; GFX7LESS-NEXT:    s_mov_b64 s[34:35], s[4:5]2353; GFX7LESS-NEXT:    s_add_u32 s8, s34, 442354; GFX7LESS-NEXT:    s_addc_u32 s9, s35, 02355; GFX7LESS-NEXT:    s_getpc_b64 s[4:5]2356; GFX7LESS-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+42357; GFX7LESS-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+122358; GFX7LESS-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x02359; GFX7LESS-NEXT:    v_lshlrev_b32_e32 v2, 20, v22360; GFX7LESS-NEXT:    v_lshlrev_b32_e32 v1, 10, v12361; GFX7LESS-NEXT:    v_or_b32_e32 v0, v0, v12362; GFX7LESS-NEXT:    v_or_b32_e32 v31, v0, v22363; GFX7LESS-NEXT:    s_mov_b64 s[4:5], s[0:1]2364; GFX7LESS-NEXT:    s_mov_b64 s[6:7], s[2:3]2365; GFX7LESS-NEXT:    s_mov_b64 s[0:1], s[36:37]2366; GFX7LESS-NEXT:    s_mov_b64 s[2:3], s[38:39]2367; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)2368; GFX7LESS-NEXT:    s_swappc_b64 s[30:31], s[16:17]2369; GFX7LESS-NEXT:    s_mov_b64 s[0:1], exec2370; GFX7LESS-NEXT:    v_mov_b32_e32 v2, 0x7fc000002371; GFX7LESS-NEXT:  .LBB5_1: ; %ComputeLoop2372; GFX7LESS-NEXT:    ; =>This Inner Loop Header: Depth=12373; GFX7LESS-NEXT:    s_ff1_i32_b64 s2, s[0:1]2374; GFX7LESS-NEXT:    v_mul_f32_e32 v1, 1.0, v22375; GFX7LESS-NEXT:    v_readlane_b32 s4, v0, s22376; GFX7LESS-NEXT:    s_lshl_b64 s[2:3], 1, s22377; GFX7LESS-NEXT:    v_mul_f32_e64 v2, 1.0, s42378; GFX7LESS-NEXT:    s_andn2_b64 s[0:1], s[0:1], s[2:3]2379; GFX7LESS-NEXT:    v_cmp_ne_u64_e64 s[2:3], s[0:1], 02380; GFX7LESS-NEXT:    s_and_b64 vcc, exec, s[2:3]2381; GFX7LESS-NEXT:    v_max_f32_e32 v2, v1, v22382; GFX7LESS-NEXT:    s_cbranch_vccnz .LBB5_12383; GFX7LESS-NEXT:  ; %bb.2: ; %ComputeEnd2384; GFX7LESS-NEXT:    v_mbcnt_lo_u32_b32_e64 v0, exec_lo, 02385; GFX7LESS-NEXT:    v_mbcnt_hi_u32_b32_e32 v0, exec_hi, v02386; GFX7LESS-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v02387; GFX7LESS-NEXT:    s_and_saveexec_b64 s[0:1], vcc2388; GFX7LESS-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]2389; GFX7LESS-NEXT:    s_cbranch_execz .LBB5_52390; GFX7LESS-NEXT:  ; %bb.3:2391; GFX7LESS-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x92392; GFX7LESS-NEXT:    s_mov_b32 s3, 0xf0002393; GFX7LESS-NEXT:    s_mov_b32 s2, -12394; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)2395; GFX7LESS-NEXT:    buffer_load_dword v1, off, s[0:3], 02396; GFX7LESS-NEXT:    s_mov_b64 s[4:5], 02397; GFX7LESS-NEXT:    v_mul_f32_e32 v2, 1.0, v22398; GFX7LESS-NEXT:  .LBB5_4: ; %atomicrmw.start2399; GFX7LESS-NEXT:    ; =>This Inner Loop Header: Depth=12400; GFX7LESS-NEXT:    s_waitcnt vmcnt(0)2401; GFX7LESS-NEXT:    v_mul_f32_e32 v0, 1.0, v12402; GFX7LESS-NEXT:    v_max_f32_e32 v0, v0, v22403; GFX7LESS-NEXT:    s_waitcnt expcnt(0)2404; GFX7LESS-NEXT:    v_mov_b32_e32 v4, v12405; GFX7LESS-NEXT:    v_mov_b32_e32 v3, v02406; GFX7LESS-NEXT:    buffer_atomic_cmpswap v[3:4], off, s[0:3], 0 glc2407; GFX7LESS-NEXT:    s_waitcnt vmcnt(0)2408; GFX7LESS-NEXT:    v_cmp_eq_u32_e32 vcc, v3, v12409; GFX7LESS-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]2410; GFX7LESS-NEXT:    v_mov_b32_e32 v1, v32411; GFX7LESS-NEXT:    s_andn2_b64 exec, exec, s[4:5]2412; GFX7LESS-NEXT:    s_cbranch_execnz .LBB5_42413; GFX7LESS-NEXT:  .LBB5_5:2414; GFX7LESS-NEXT:    s_endpgm2415;2416; GFX9-LABEL: global_atomic_fmax_uni_address_div_value_default_scope_unsafe:2417; GFX9:       ; %bb.0:2418; GFX9-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD02419; GFX9-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD12420; GFX9-NEXT:    s_mov_b32 s38, -12421; GFX9-NEXT:    s_mov_b32 s39, 0xe000002422; GFX9-NEXT:    s_add_u32 s36, s36, s112423; GFX9-NEXT:    s_addc_u32 s37, s37, 02424; GFX9-NEXT:    s_mov_b64 s[34:35], s[4:5]2425; GFX9-NEXT:    s_mov_b32 s12, s82426; GFX9-NEXT:    s_add_u32 s8, s34, 442427; GFX9-NEXT:    s_mov_b32 s13, s92428; GFX9-NEXT:    s_addc_u32 s9, s35, 02429; GFX9-NEXT:    s_getpc_b64 s[4:5]2430; GFX9-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+42431; GFX9-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+122432; GFX9-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x02433; GFX9-NEXT:    s_mov_b32 s14, s102434; GFX9-NEXT:    s_mov_b64 s[10:11], s[6:7]2435; GFX9-NEXT:    v_lshlrev_b32_e32 v2, 20, v22436; GFX9-NEXT:    v_lshlrev_b32_e32 v1, 10, v12437; GFX9-NEXT:    s_mov_b64 s[4:5], s[0:1]2438; GFX9-NEXT:    s_mov_b64 s[6:7], s[2:3]2439; GFX9-NEXT:    s_mov_b64 s[0:1], s[36:37]2440; GFX9-NEXT:    v_or3_b32 v31, v0, v1, v22441; GFX9-NEXT:    s_mov_b64 s[2:3], s[38:39]2442; GFX9-NEXT:    s_mov_b32 s32, 02443; GFX9-NEXT:    s_waitcnt lgkmcnt(0)2444; GFX9-NEXT:    s_swappc_b64 s[30:31], s[16:17]2445; GFX9-NEXT:    s_mov_b64 s[0:1], exec2446; GFX9-NEXT:    v_mov_b32_e32 v2, 0x7fc000002447; GFX9-NEXT:  .LBB5_1: ; %ComputeLoop2448; GFX9-NEXT:    ; =>This Inner Loop Header: Depth=12449; GFX9-NEXT:    s_ff1_i32_b64 s2, s[0:1]2450; GFX9-NEXT:    v_readlane_b32 s3, v0, s22451; GFX9-NEXT:    v_max_f32_e64 v1, s3, s32452; GFX9-NEXT:    v_max_f32_e32 v2, v2, v22453; GFX9-NEXT:    s_lshl_b64 s[2:3], 1, s22454; GFX9-NEXT:    s_andn2_b64 s[0:1], s[0:1], s[2:3]2455; GFX9-NEXT:    v_max_f32_e32 v2, v2, v12456; GFX9-NEXT:    s_cbranch_scc1 .LBB5_12457; GFX9-NEXT:  ; %bb.2: ; %ComputeEnd2458; GFX9-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 02459; GFX9-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v02460; GFX9-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v02461; GFX9-NEXT:    s_and_saveexec_b64 s[0:1], vcc2462; GFX9-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]2463; GFX9-NEXT:    s_cbranch_execz .LBB5_52464; GFX9-NEXT:  ; %bb.3:2465; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x242466; GFX9-NEXT:    v_mov_b32_e32 v3, 02467; GFX9-NEXT:    s_mov_b64 s[2:3], 02468; GFX9-NEXT:    v_max_f32_e32 v2, v2, v22469; GFX9-NEXT:    s_waitcnt lgkmcnt(0)2470; GFX9-NEXT:    global_load_dword v1, v3, s[0:1]2471; GFX9-NEXT:  .LBB5_4: ; %atomicrmw.start2472; GFX9-NEXT:    ; =>This Inner Loop Header: Depth=12473; GFX9-NEXT:    s_waitcnt vmcnt(0)2474; GFX9-NEXT:    v_max_f32_e32 v0, v1, v12475; GFX9-NEXT:    v_max_f32_e32 v0, v0, v22476; GFX9-NEXT:    global_atomic_cmpswap v0, v3, v[0:1], s[0:1] glc2477; GFX9-NEXT:    s_waitcnt vmcnt(0)2478; GFX9-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v12479; GFX9-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]2480; GFX9-NEXT:    v_mov_b32_e32 v1, v02481; GFX9-NEXT:    s_andn2_b64 exec, exec, s[2:3]2482; GFX9-NEXT:    s_cbranch_execnz .LBB5_42483; GFX9-NEXT:  .LBB5_5:2484; GFX9-NEXT:    s_endpgm2485;2486; GFX1064-LABEL: global_atomic_fmax_uni_address_div_value_default_scope_unsafe:2487; GFX1064:       ; %bb.0:2488; GFX1064-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD02489; GFX1064-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD12490; GFX1064-NEXT:    s_mov_b32 s38, -12491; GFX1064-NEXT:    s_mov_b32 s39, 0x31e160002492; GFX1064-NEXT:    s_add_u32 s36, s36, s112493; GFX1064-NEXT:    s_mov_b64 s[34:35], s[4:5]2494; GFX1064-NEXT:    s_addc_u32 s37, s37, 02495; GFX1064-NEXT:    s_mov_b32 s12, s82496; GFX1064-NEXT:    s_add_u32 s8, s34, 442497; GFX1064-NEXT:    s_mov_b32 s13, s92498; GFX1064-NEXT:    s_addc_u32 s9, s35, 02499; GFX1064-NEXT:    s_getpc_b64 s[4:5]2500; GFX1064-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+42501; GFX1064-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+122502; GFX1064-NEXT:    v_lshlrev_b32_e32 v2, 20, v22503; GFX1064-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x02504; GFX1064-NEXT:    v_lshlrev_b32_e32 v1, 10, v12505; GFX1064-NEXT:    s_mov_b32 s14, s102506; GFX1064-NEXT:    s_mov_b64 s[10:11], s[6:7]2507; GFX1064-NEXT:    s_mov_b64 s[4:5], s[0:1]2508; GFX1064-NEXT:    s_mov_b64 s[6:7], s[2:3]2509; GFX1064-NEXT:    v_or3_b32 v31, v0, v1, v22510; GFX1064-NEXT:    s_mov_b64 s[0:1], s[36:37]2511; GFX1064-NEXT:    s_mov_b64 s[2:3], s[38:39]2512; GFX1064-NEXT:    s_mov_b32 s32, 02513; GFX1064-NEXT:    s_waitcnt lgkmcnt(0)2514; GFX1064-NEXT:    s_swappc_b64 s[30:31], s[16:17]2515; GFX1064-NEXT:    v_mov_b32_e32 v1, 0x7fc000002516; GFX1064-NEXT:    s_mov_b64 s[0:1], exec2517; GFX1064-NEXT:  .LBB5_1: ; %ComputeLoop2518; GFX1064-NEXT:    ; =>This Inner Loop Header: Depth=12519; GFX1064-NEXT:    s_ff1_i32_b64 s2, s[0:1]2520; GFX1064-NEXT:    v_max_f32_e32 v1, v1, v12521; GFX1064-NEXT:    v_readlane_b32 s3, v0, s22522; GFX1064-NEXT:    v_max_f32_e64 v2, s3, s32523; GFX1064-NEXT:    s_lshl_b64 s[2:3], 1, s22524; GFX1064-NEXT:    s_andn2_b64 s[0:1], s[0:1], s[2:3]2525; GFX1064-NEXT:    v_max_f32_e32 v1, v1, v22526; GFX1064-NEXT:    s_cbranch_scc1 .LBB5_12527; GFX1064-NEXT:  ; %bb.2: ; %ComputeEnd2528; GFX1064-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 02529; GFX1064-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v02530; GFX1064-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v02531; GFX1064-NEXT:    s_and_saveexec_b64 s[0:1], vcc2532; GFX1064-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]2533; GFX1064-NEXT:    s_cbranch_execz .LBB5_42534; GFX1064-NEXT:  ; %bb.3:2535; GFX1064-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x242536; GFX1064-NEXT:    v_mov_b32_e32 v0, 02537; GFX1064-NEXT:    s_waitcnt lgkmcnt(0)2538; GFX1064-NEXT:    global_atomic_fmax v0, v1, s[0:1]2539; GFX1064-NEXT:  .LBB5_4:2540; GFX1064-NEXT:    s_endpgm2541;2542; GFX1032-LABEL: global_atomic_fmax_uni_address_div_value_default_scope_unsafe:2543; GFX1032:       ; %bb.0:2544; GFX1032-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD02545; GFX1032-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD12546; GFX1032-NEXT:    s_mov_b32 s38, -12547; GFX1032-NEXT:    s_mov_b32 s39, 0x31c160002548; GFX1032-NEXT:    s_add_u32 s36, s36, s112549; GFX1032-NEXT:    s_mov_b64 s[34:35], s[4:5]2550; GFX1032-NEXT:    s_addc_u32 s37, s37, 02551; GFX1032-NEXT:    s_mov_b32 s12, s82552; GFX1032-NEXT:    s_add_u32 s8, s34, 442553; GFX1032-NEXT:    s_mov_b32 s13, s92554; GFX1032-NEXT:    s_addc_u32 s9, s35, 02555; GFX1032-NEXT:    s_getpc_b64 s[4:5]2556; GFX1032-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+42557; GFX1032-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+122558; GFX1032-NEXT:    v_lshlrev_b32_e32 v2, 20, v22559; GFX1032-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x02560; GFX1032-NEXT:    v_lshlrev_b32_e32 v1, 10, v12561; GFX1032-NEXT:    s_mov_b32 s14, s102562; GFX1032-NEXT:    s_mov_b64 s[10:11], s[6:7]2563; GFX1032-NEXT:    s_mov_b64 s[4:5], s[0:1]2564; GFX1032-NEXT:    s_mov_b64 s[6:7], s[2:3]2565; GFX1032-NEXT:    v_or3_b32 v31, v0, v1, v22566; GFX1032-NEXT:    s_mov_b64 s[0:1], s[36:37]2567; GFX1032-NEXT:    s_mov_b64 s[2:3], s[38:39]2568; GFX1032-NEXT:    s_mov_b32 s32, 02569; GFX1032-NEXT:    s_waitcnt lgkmcnt(0)2570; GFX1032-NEXT:    s_swappc_b64 s[30:31], s[16:17]2571; GFX1032-NEXT:    v_mov_b32_e32 v1, 0x7fc000002572; GFX1032-NEXT:    s_mov_b32 s0, exec_lo2573; GFX1032-NEXT:  .LBB5_1: ; %ComputeLoop2574; GFX1032-NEXT:    ; =>This Inner Loop Header: Depth=12575; GFX1032-NEXT:    s_ff1_i32_b32 s1, s02576; GFX1032-NEXT:    v_max_f32_e32 v1, v1, v12577; GFX1032-NEXT:    v_readlane_b32 s2, v0, s12578; GFX1032-NEXT:    s_lshl_b32 s1, 1, s12579; GFX1032-NEXT:    s_andn2_b32 s0, s0, s12580; GFX1032-NEXT:    v_max_f32_e64 v2, s2, s22581; GFX1032-NEXT:    v_max_f32_e32 v1, v1, v22582; GFX1032-NEXT:    s_cbranch_scc1 .LBB5_12583; GFX1032-NEXT:  ; %bb.2: ; %ComputeEnd2584; GFX1032-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 02585; GFX1032-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v02586; GFX1032-NEXT:    s_and_saveexec_b32 s0, vcc_lo2587; GFX1032-NEXT:    s_xor_b32 s0, exec_lo, s02588; GFX1032-NEXT:    s_cbranch_execz .LBB5_42589; GFX1032-NEXT:  ; %bb.3:2590; GFX1032-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x242591; GFX1032-NEXT:    v_mov_b32_e32 v0, 02592; GFX1032-NEXT:    s_waitcnt lgkmcnt(0)2593; GFX1032-NEXT:    global_atomic_fmax v0, v1, s[0:1]2594; GFX1032-NEXT:  .LBB5_4:2595; GFX1032-NEXT:    s_endpgm2596;2597; GFX1164-LABEL: global_atomic_fmax_uni_address_div_value_default_scope_unsafe:2598; GFX1164:       ; %bb.0:2599; GFX1164-NEXT:    s_mov_b64 s[34:35], s[4:5]2600; GFX1164-NEXT:    s_mov_b32 s12, s82601; GFX1164-NEXT:    s_add_u32 s8, s34, 442602; GFX1164-NEXT:    s_mov_b32 s13, s92603; GFX1164-NEXT:    s_addc_u32 s9, s35, 02604; GFX1164-NEXT:    s_getpc_b64 s[4:5]2605; GFX1164-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+42606; GFX1164-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+122607; GFX1164-NEXT:    v_mov_b32_e32 v31, v02608; GFX1164-NEXT:    s_load_b64 s[16:17], s[4:5], 0x02609; GFX1164-NEXT:    s_mov_b32 s14, s102610; GFX1164-NEXT:    s_mov_b64 s[10:11], s[6:7]2611; GFX1164-NEXT:    s_mov_b64 s[4:5], s[0:1]2612; GFX1164-NEXT:    s_mov_b64 s[6:7], s[2:3]2613; GFX1164-NEXT:    s_mov_b32 s32, 02614; GFX1164-NEXT:    s_waitcnt lgkmcnt(0)2615; GFX1164-NEXT:    s_swappc_b64 s[30:31], s[16:17]2616; GFX1164-NEXT:    v_mov_b32_e32 v1, 0x7fc000002617; GFX1164-NEXT:    s_mov_b64 s[0:1], exec2618; GFX1164-NEXT:  .LBB5_1: ; %ComputeLoop2619; GFX1164-NEXT:    ; =>This Inner Loop Header: Depth=12620; GFX1164-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_1)2621; GFX1164-NEXT:    s_ctz_i32_b64 s2, s[0:1]2622; GFX1164-NEXT:    v_max_f32_e32 v1, v1, v12623; GFX1164-NEXT:    v_readlane_b32 s3, v0, s22624; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1)2625; GFX1164-NEXT:    v_max_f32_e64 v2, s3, s32626; GFX1164-NEXT:    s_lshl_b64 s[2:3], 1, s22627; GFX1164-NEXT:    s_and_not1_b64 s[0:1], s[0:1], s[2:3]2628; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1)2629; GFX1164-NEXT:    v_max_f32_e32 v1, v1, v22630; GFX1164-NEXT:    s_cbranch_scc1 .LBB5_12631; GFX1164-NEXT:  ; %bb.2: ; %ComputeEnd2632; GFX1164-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 02633; GFX1164-NEXT:    s_mov_b64 s[0:1], exec2634; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2635; GFX1164-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v02636; GFX1164-NEXT:    v_cmpx_eq_u32_e32 0, v02637; GFX1164-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]2638; GFX1164-NEXT:    s_cbranch_execz .LBB5_42639; GFX1164-NEXT:  ; %bb.3:2640; GFX1164-NEXT:    s_load_b64 s[0:1], s[34:35], 0x242641; GFX1164-NEXT:    v_mov_b32_e32 v0, 02642; GFX1164-NEXT:    s_waitcnt lgkmcnt(0)2643; GFX1164-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]2644; GFX1164-NEXT:  .LBB5_4:2645; GFX1164-NEXT:    s_endpgm2646;2647; GFX1132-LABEL: global_atomic_fmax_uni_address_div_value_default_scope_unsafe:2648; GFX1132:       ; %bb.0:2649; GFX1132-NEXT:    s_mov_b64 s[34:35], s[4:5]2650; GFX1132-NEXT:    v_mov_b32_e32 v31, v02651; GFX1132-NEXT:    s_add_u32 s8, s34, 442652; GFX1132-NEXT:    s_addc_u32 s9, s35, 02653; GFX1132-NEXT:    s_getpc_b64 s[4:5]2654; GFX1132-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+42655; GFX1132-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+122656; GFX1132-NEXT:    s_mov_b32 s12, s132657; GFX1132-NEXT:    s_load_b64 s[16:17], s[4:5], 0x02658; GFX1132-NEXT:    s_mov_b64 s[10:11], s[6:7]2659; GFX1132-NEXT:    s_mov_b64 s[4:5], s[0:1]2660; GFX1132-NEXT:    s_mov_b64 s[6:7], s[2:3]2661; GFX1132-NEXT:    s_mov_b32 s13, s142662; GFX1132-NEXT:    s_mov_b32 s14, s152663; GFX1132-NEXT:    s_mov_b32 s32, 02664; GFX1132-NEXT:    s_waitcnt lgkmcnt(0)2665; GFX1132-NEXT:    s_swappc_b64 s[30:31], s[16:17]2666; GFX1132-NEXT:    v_mov_b32_e32 v1, 0x7fc000002667; GFX1132-NEXT:    s_mov_b32 s0, exec_lo2668; GFX1132-NEXT:  .LBB5_1: ; %ComputeLoop2669; GFX1132-NEXT:    ; =>This Inner Loop Header: Depth=12670; GFX1132-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_1)2671; GFX1132-NEXT:    s_ctz_i32_b32 s1, s02672; GFX1132-NEXT:    v_max_f32_e32 v1, v1, v12673; GFX1132-NEXT:    v_readlane_b32 s2, v0, s12674; GFX1132-NEXT:    s_lshl_b32 s1, 1, s12675; GFX1132-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_1) | instid1(VALU_DEP_1)2676; GFX1132-NEXT:    s_and_not1_b32 s0, s0, s12677; GFX1132-NEXT:    v_max_f32_e64 v2, s2, s22678; GFX1132-NEXT:    v_max_f32_e32 v1, v1, v22679; GFX1132-NEXT:    s_cbranch_scc1 .LBB5_12680; GFX1132-NEXT:  ; %bb.2: ; %ComputeEnd2681; GFX1132-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 02682; GFX1132-NEXT:    s_mov_b32 s0, exec_lo2683; GFX1132-NEXT:    s_delay_alu instid0(VALU_DEP_1)2684; GFX1132-NEXT:    v_cmpx_eq_u32_e32 0, v02685; GFX1132-NEXT:    s_xor_b32 s0, exec_lo, s02686; GFX1132-NEXT:    s_cbranch_execz .LBB5_42687; GFX1132-NEXT:  ; %bb.3:2688; GFX1132-NEXT:    s_load_b64 s[0:1], s[34:35], 0x242689; GFX1132-NEXT:    v_mov_b32_e32 v0, 02690; GFX1132-NEXT:    s_waitcnt lgkmcnt(0)2691; GFX1132-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]2692; GFX1132-NEXT:  .LBB5_4:2693; GFX1132-NEXT:    s_endpgm2694;2695; GFX7LESS-DPP-LABEL: global_atomic_fmax_uni_address_div_value_default_scope_unsafe:2696; GFX7LESS-DPP:       ; %bb.0:2697; GFX7LESS-DPP-NEXT:    s_mov_b32 s32, 02698; GFX7LESS-DPP-NEXT:    s_mov_b32 s48, SCRATCH_RSRC_DWORD02699; GFX7LESS-DPP-NEXT:    s_mov_b32 s49, SCRATCH_RSRC_DWORD12700; GFX7LESS-DPP-NEXT:    s_mov_b32 s50, -12701; GFX7LESS-DPP-NEXT:    s_mov_b32 s51, 0xe8f0002702; GFX7LESS-DPP-NEXT:    s_add_u32 s48, s48, s112703; GFX7LESS-DPP-NEXT:    s_addc_u32 s49, s49, 02704; GFX7LESS-DPP-NEXT:    s_mov_b32 s14, s102705; GFX7LESS-DPP-NEXT:    s_mov_b32 s13, s92706; GFX7LESS-DPP-NEXT:    s_mov_b32 s12, s82707; GFX7LESS-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]2708; GFX7LESS-DPP-NEXT:    s_load_dwordx2 s[36:37], s[4:5], 0x92709; GFX7LESS-DPP-NEXT:    s_mov_b32 s39, 0xf0002710; GFX7LESS-DPP-NEXT:    s_mov_b32 s38, -12711; GFX7LESS-DPP-NEXT:    s_add_u32 s8, s4, 442712; GFX7LESS-DPP-NEXT:    s_addc_u32 s9, s5, 02713; GFX7LESS-DPP-NEXT:    s_getpc_b64 s[4:5]2714; GFX7LESS-DPP-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+42715; GFX7LESS-DPP-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+122716; GFX7LESS-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x02717; GFX7LESS-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v22718; GFX7LESS-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v12719; GFX7LESS-DPP-NEXT:    v_or_b32_e32 v0, v0, v12720; GFX7LESS-DPP-NEXT:    v_or_b32_e32 v31, v0, v22721; GFX7LESS-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]2722; GFX7LESS-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]2723; GFX7LESS-DPP-NEXT:    s_mov_b64 s[0:1], s[48:49]2724; GFX7LESS-DPP-NEXT:    s_mov_b64 s[2:3], s[50:51]2725; GFX7LESS-DPP-NEXT:    s_waitcnt lgkmcnt(0)2726; GFX7LESS-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]2727; GFX7LESS-DPP-NEXT:    buffer_load_dword v1, off, s[36:39], 02728; GFX7LESS-DPP-NEXT:    s_mov_b64 s[0:1], 02729; GFX7LESS-DPP-NEXT:    v_mul_f32_e32 v2, 1.0, v02730; GFX7LESS-DPP-NEXT:  .LBB5_1: ; %atomicrmw.start2731; GFX7LESS-DPP-NEXT:    ; =>This Inner Loop Header: Depth=12732; GFX7LESS-DPP-NEXT:    s_waitcnt vmcnt(0)2733; GFX7LESS-DPP-NEXT:    v_mul_f32_e32 v0, 1.0, v12734; GFX7LESS-DPP-NEXT:    v_max_f32_e32 v0, v0, v22735; GFX7LESS-DPP-NEXT:    s_waitcnt expcnt(0)2736; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v4, v12737; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v3, v02738; GFX7LESS-DPP-NEXT:    buffer_atomic_cmpswap v[3:4], off, s[36:39], 0 glc2739; GFX7LESS-DPP-NEXT:    s_waitcnt vmcnt(0)2740; GFX7LESS-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, v3, v12741; GFX7LESS-DPP-NEXT:    s_or_b64 s[0:1], vcc, s[0:1]2742; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v1, v32743; GFX7LESS-DPP-NEXT:    s_andn2_b64 exec, exec, s[0:1]2744; GFX7LESS-DPP-NEXT:    s_cbranch_execnz .LBB5_12745; GFX7LESS-DPP-NEXT:  ; %bb.2: ; %atomicrmw.end2746; GFX7LESS-DPP-NEXT:    s_endpgm2747;2748; GFX9-DPP-LABEL: global_atomic_fmax_uni_address_div_value_default_scope_unsafe:2749; GFX9-DPP:       ; %bb.0:2750; GFX9-DPP-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD02751; GFX9-DPP-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD12752; GFX9-DPP-NEXT:    s_mov_b32 s38, -12753; GFX9-DPP-NEXT:    s_mov_b32 s39, 0xe000002754; GFX9-DPP-NEXT:    s_add_u32 s36, s36, s112755; GFX9-DPP-NEXT:    s_addc_u32 s37, s37, 02756; GFX9-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]2757; GFX9-DPP-NEXT:    s_mov_b32 s12, s82758; GFX9-DPP-NEXT:    s_add_u32 s8, s34, 442759; GFX9-DPP-NEXT:    s_mov_b32 s13, s92760; GFX9-DPP-NEXT:    s_addc_u32 s9, s35, 02761; GFX9-DPP-NEXT:    s_getpc_b64 s[4:5]2762; GFX9-DPP-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+42763; GFX9-DPP-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+122764; GFX9-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x02765; GFX9-DPP-NEXT:    s_mov_b32 s14, s102766; GFX9-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]2767; GFX9-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v22768; GFX9-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v12769; GFX9-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]2770; GFX9-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]2771; GFX9-DPP-NEXT:    s_mov_b64 s[0:1], s[36:37]2772; GFX9-DPP-NEXT:    v_or3_b32 v31, v0, v1, v22773; GFX9-DPP-NEXT:    s_mov_b64 s[2:3], s[38:39]2774; GFX9-DPP-NEXT:    s_mov_b32 s32, 02775; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)2776; GFX9-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]2777; GFX9-DPP-NEXT:    v_mbcnt_lo_u32_b32 v1, exec_lo, 02778; GFX9-DPP-NEXT:    v_mbcnt_hi_u32_b32 v1, exec_hi, v12779; GFX9-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -12780; GFX9-DPP-NEXT:    v_mov_b32_e32 v3, 0x7fc000002781; GFX9-DPP-NEXT:    v_cndmask_b32_e64 v4, v3, v0, s[0:1]2782; GFX9-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc000002783; GFX9-DPP-NEXT:    s_nop 12784; GFX9-DPP-NEXT:    v_mov_b32_dpp v5, v4 row_shr:1 row_mask:0xf bank_mask:0xf2785; GFX9-DPP-NEXT:    v_max_f32_e32 v4, v4, v42786; GFX9-DPP-NEXT:    v_max_f32_e32 v5, v5, v52787; GFX9-DPP-NEXT:    v_max_f32_e32 v4, v4, v52788; GFX9-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc000002789; GFX9-DPP-NEXT:    s_nop 12790; GFX9-DPP-NEXT:    v_mov_b32_dpp v5, v4 row_shr:2 row_mask:0xf bank_mask:0xf2791; GFX9-DPP-NEXT:    v_max_f32_e32 v5, v5, v52792; GFX9-DPP-NEXT:    v_max_f32_e32 v4, v4, v52793; GFX9-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc000002794; GFX9-DPP-NEXT:    s_nop 12795; GFX9-DPP-NEXT:    v_mov_b32_dpp v5, v4 row_shr:4 row_mask:0xf bank_mask:0xf2796; GFX9-DPP-NEXT:    v_max_f32_e32 v5, v5, v52797; GFX9-DPP-NEXT:    v_max_f32_e32 v4, v4, v52798; GFX9-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc000002799; GFX9-DPP-NEXT:    s_nop 12800; GFX9-DPP-NEXT:    v_mov_b32_dpp v5, v4 row_shr:8 row_mask:0xf bank_mask:0xf2801; GFX9-DPP-NEXT:    v_max_f32_e32 v5, v5, v52802; GFX9-DPP-NEXT:    v_max_f32_e32 v4, v4, v52803; GFX9-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc000002804; GFX9-DPP-NEXT:    s_nop 12805; GFX9-DPP-NEXT:    v_mov_b32_dpp v5, v4 row_bcast:15 row_mask:0xa bank_mask:0xf2806; GFX9-DPP-NEXT:    v_max_f32_e32 v5, v5, v52807; GFX9-DPP-NEXT:    v_max_f32_e32 v4, v4, v52808; GFX9-DPP-NEXT:    s_nop 12809; GFX9-DPP-NEXT:    v_mov_b32_dpp v3, v4 row_bcast:31 row_mask:0xc bank_mask:0xf2810; GFX9-DPP-NEXT:    v_max_f32_e32 v3, v3, v32811; GFX9-DPP-NEXT:    v_max_f32_e32 v3, v4, v32812; GFX9-DPP-NEXT:    v_readlane_b32 s4, v3, 632813; GFX9-DPP-NEXT:    s_mov_b64 exec, s[0:1]2814; GFX9-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v12815; GFX9-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc2816; GFX9-DPP-NEXT:    s_cbranch_execz .LBB5_32817; GFX9-DPP-NEXT:  ; %bb.1:2818; GFX9-DPP-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x242819; GFX9-DPP-NEXT:    v_mov_b32_e32 v2, 02820; GFX9-DPP-NEXT:    s_mov_b64 s[2:3], 02821; GFX9-DPP-NEXT:    v_max_f32_e64 v6, s4, s42822; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)2823; GFX9-DPP-NEXT:    global_load_dword v1, v2, s[0:1]2824; GFX9-DPP-NEXT:  .LBB5_2: ; %atomicrmw.start2825; GFX9-DPP-NEXT:    ; =>This Inner Loop Header: Depth=12826; GFX9-DPP-NEXT:    s_waitcnt vmcnt(0)2827; GFX9-DPP-NEXT:    v_max_f32_e32 v0, v1, v12828; GFX9-DPP-NEXT:    v_max_f32_e32 v0, v0, v62829; GFX9-DPP-NEXT:    global_atomic_cmpswap v0, v2, v[0:1], s[0:1] glc2830; GFX9-DPP-NEXT:    s_waitcnt vmcnt(0)2831; GFX9-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v12832; GFX9-DPP-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]2833; GFX9-DPP-NEXT:    v_mov_b32_e32 v1, v02834; GFX9-DPP-NEXT:    s_andn2_b64 exec, exec, s[2:3]2835; GFX9-DPP-NEXT:    s_cbranch_execnz .LBB5_22836; GFX9-DPP-NEXT:  .LBB5_3:2837; GFX9-DPP-NEXT:    s_endpgm2838;2839; GFX1064-DPP-LABEL: global_atomic_fmax_uni_address_div_value_default_scope_unsafe:2840; GFX1064-DPP:       ; %bb.0:2841; GFX1064-DPP-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD02842; GFX1064-DPP-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD12843; GFX1064-DPP-NEXT:    s_mov_b32 s38, -12844; GFX1064-DPP-NEXT:    s_mov_b32 s39, 0x31e160002845; GFX1064-DPP-NEXT:    s_add_u32 s36, s36, s112846; GFX1064-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]2847; GFX1064-DPP-NEXT:    s_addc_u32 s37, s37, 02848; GFX1064-DPP-NEXT:    s_mov_b32 s12, s82849; GFX1064-DPP-NEXT:    s_add_u32 s8, s34, 442850; GFX1064-DPP-NEXT:    s_mov_b32 s13, s92851; GFX1064-DPP-NEXT:    s_addc_u32 s9, s35, 02852; GFX1064-DPP-NEXT:    s_getpc_b64 s[4:5]2853; GFX1064-DPP-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+42854; GFX1064-DPP-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+122855; GFX1064-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v22856; GFX1064-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x02857; GFX1064-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v12858; GFX1064-DPP-NEXT:    s_mov_b32 s14, s102859; GFX1064-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]2860; GFX1064-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]2861; GFX1064-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]2862; GFX1064-DPP-NEXT:    v_or3_b32 v31, v0, v1, v22863; GFX1064-DPP-NEXT:    s_mov_b64 s[0:1], s[36:37]2864; GFX1064-DPP-NEXT:    s_mov_b64 s[2:3], s[38:39]2865; GFX1064-DPP-NEXT:    s_mov_b32 s32, 02866; GFX1064-DPP-NEXT:    s_waitcnt lgkmcnt(0)2867; GFX1064-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]2868; GFX1064-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -12869; GFX1064-DPP-NEXT:    v_mov_b32_e32 v3, 0x7fc000002870; GFX1064-DPP-NEXT:    v_cndmask_b32_e64 v4, 0x7fc00000, v0, s[0:1]2871; GFX1064-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc000002872; GFX1064-DPP-NEXT:    v_mov_b32_dpp v3, v4 row_xmask:1 row_mask:0xf bank_mask:0xf2873; GFX1064-DPP-NEXT:    v_max_f32_e32 v4, v4, v42874; GFX1064-DPP-NEXT:    v_max_f32_e32 v3, v3, v32875; GFX1064-DPP-NEXT:    v_max_f32_e32 v3, v4, v32876; GFX1064-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:2 row_mask:0xf bank_mask:0xf2877; GFX1064-DPP-NEXT:    v_max_f32_e32 v4, v5, v52878; GFX1064-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc000002879; GFX1064-DPP-NEXT:    v_max_f32_e32 v3, v3, v42880; GFX1064-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:4 row_mask:0xf bank_mask:0xf2881; GFX1064-DPP-NEXT:    v_max_f32_e32 v4, v5, v52882; GFX1064-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc000002883; GFX1064-DPP-NEXT:    v_max_f32_e32 v3, v3, v42884; GFX1064-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:8 row_mask:0xf bank_mask:0xf2885; GFX1064-DPP-NEXT:    v_max_f32_e32 v4, v5, v52886; GFX1064-DPP-NEXT:    v_max_f32_e32 v3, v3, v42887; GFX1064-DPP-NEXT:    v_permlanex16_b32 v4, v3, 0, 02888; GFX1064-DPP-NEXT:    v_max_f32_e32 v4, v4, v42889; GFX1064-DPP-NEXT:    v_max_f32_e32 v3, v3, v42890; GFX1064-DPP-NEXT:    v_readlane_b32 s2, v3, 322891; GFX1064-DPP-NEXT:    v_readlane_b32 s3, v3, 02892; GFX1064-DPP-NEXT:    v_max_f32_e64 v3, s2, s22893; GFX1064-DPP-NEXT:    v_max_f32_e64 v4, s3, s32894; GFX1064-DPP-NEXT:    s_mov_b64 exec, s[0:1]2895; GFX1064-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 02896; GFX1064-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -12897; GFX1064-DPP-NEXT:    v_max_f32_e32 v3, v4, v32898; GFX1064-DPP-NEXT:    s_mov_b64 exec, s[0:1]2899; GFX1064-DPP-NEXT:    v_mbcnt_hi_u32_b32 v1, exec_hi, v02900; GFX1064-DPP-NEXT:    v_mov_b32_e32 v0, v32901; GFX1064-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v12902; GFX1064-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc2903; GFX1064-DPP-NEXT:    s_cbranch_execz .LBB5_22904; GFX1064-DPP-NEXT:  ; %bb.1:2905; GFX1064-DPP-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x242906; GFX1064-DPP-NEXT:    v_mov_b32_e32 v1, 02907; GFX1064-DPP-NEXT:    s_waitcnt lgkmcnt(0)2908; GFX1064-DPP-NEXT:    global_atomic_fmax v1, v0, s[0:1]2909; GFX1064-DPP-NEXT:  .LBB5_2:2910; GFX1064-DPP-NEXT:    s_endpgm2911;2912; GFX1032-DPP-LABEL: global_atomic_fmax_uni_address_div_value_default_scope_unsafe:2913; GFX1032-DPP:       ; %bb.0:2914; GFX1032-DPP-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD02915; GFX1032-DPP-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD12916; GFX1032-DPP-NEXT:    s_mov_b32 s38, -12917; GFX1032-DPP-NEXT:    s_mov_b32 s39, 0x31c160002918; GFX1032-DPP-NEXT:    s_add_u32 s36, s36, s112919; GFX1032-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]2920; GFX1032-DPP-NEXT:    s_addc_u32 s37, s37, 02921; GFX1032-DPP-NEXT:    s_mov_b32 s12, s82922; GFX1032-DPP-NEXT:    s_add_u32 s8, s34, 442923; GFX1032-DPP-NEXT:    s_mov_b32 s13, s92924; GFX1032-DPP-NEXT:    s_addc_u32 s9, s35, 02925; GFX1032-DPP-NEXT:    s_getpc_b64 s[4:5]2926; GFX1032-DPP-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+42927; GFX1032-DPP-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+122928; GFX1032-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v22929; GFX1032-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x02930; GFX1032-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v12931; GFX1032-DPP-NEXT:    s_mov_b32 s14, s102932; GFX1032-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]2933; GFX1032-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]2934; GFX1032-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]2935; GFX1032-DPP-NEXT:    v_or3_b32 v31, v0, v1, v22936; GFX1032-DPP-NEXT:    s_mov_b64 s[0:1], s[36:37]2937; GFX1032-DPP-NEXT:    s_mov_b64 s[2:3], s[38:39]2938; GFX1032-DPP-NEXT:    s_mov_b32 s32, 02939; GFX1032-DPP-NEXT:    s_waitcnt lgkmcnt(0)2940; GFX1032-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]2941; GFX1032-DPP-NEXT:    s_or_saveexec_b32 s0, -12942; GFX1032-DPP-NEXT:    v_mov_b32_e32 v3, 0x7fc000002943; GFX1032-DPP-NEXT:    v_cndmask_b32_e64 v4, 0x7fc00000, v0, s02944; GFX1032-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc000002945; GFX1032-DPP-NEXT:    v_mov_b32_dpp v3, v4 row_xmask:1 row_mask:0xf bank_mask:0xf2946; GFX1032-DPP-NEXT:    v_max_f32_e32 v4, v4, v42947; GFX1032-DPP-NEXT:    v_max_f32_e32 v3, v3, v32948; GFX1032-DPP-NEXT:    v_max_f32_e32 v3, v4, v32949; GFX1032-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:2 row_mask:0xf bank_mask:0xf2950; GFX1032-DPP-NEXT:    v_max_f32_e32 v4, v5, v52951; GFX1032-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc000002952; GFX1032-DPP-NEXT:    v_max_f32_e32 v3, v3, v42953; GFX1032-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:4 row_mask:0xf bank_mask:0xf2954; GFX1032-DPP-NEXT:    v_max_f32_e32 v4, v5, v52955; GFX1032-DPP-NEXT:    v_mov_b32_e32 v5, 0x7fc000002956; GFX1032-DPP-NEXT:    v_max_f32_e32 v3, v3, v42957; GFX1032-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:8 row_mask:0xf bank_mask:0xf2958; GFX1032-DPP-NEXT:    v_max_f32_e32 v4, v5, v52959; GFX1032-DPP-NEXT:    v_max_f32_e32 v3, v3, v42960; GFX1032-DPP-NEXT:    v_permlanex16_b32 v4, v3, 0, 02961; GFX1032-DPP-NEXT:    v_max_f32_e32 v4, v4, v42962; GFX1032-DPP-NEXT:    v_max_f32_e32 v3, v3, v42963; GFX1032-DPP-NEXT:    s_mov_b32 exec_lo, s02964; GFX1032-DPP-NEXT:    v_mbcnt_lo_u32_b32 v1, exec_lo, 02965; GFX1032-DPP-NEXT:    v_mov_b32_e32 v0, v32966; GFX1032-DPP-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v12967; GFX1032-DPP-NEXT:    s_and_saveexec_b32 s0, vcc_lo2968; GFX1032-DPP-NEXT:    s_cbranch_execz .LBB5_22969; GFX1032-DPP-NEXT:  ; %bb.1:2970; GFX1032-DPP-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x242971; GFX1032-DPP-NEXT:    v_mov_b32_e32 v1, 02972; GFX1032-DPP-NEXT:    s_waitcnt lgkmcnt(0)2973; GFX1032-DPP-NEXT:    global_atomic_fmax v1, v0, s[0:1]2974; GFX1032-DPP-NEXT:  .LBB5_2:2975; GFX1032-DPP-NEXT:    s_endpgm2976;2977; GFX1164-DPP-LABEL: global_atomic_fmax_uni_address_div_value_default_scope_unsafe:2978; GFX1164-DPP:       ; %bb.0:2979; GFX1164-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]2980; GFX1164-DPP-NEXT:    s_mov_b32 s12, s82981; GFX1164-DPP-NEXT:    s_add_u32 s8, s34, 442982; GFX1164-DPP-NEXT:    s_mov_b32 s13, s92983; GFX1164-DPP-NEXT:    s_addc_u32 s9, s35, 02984; GFX1164-DPP-NEXT:    s_getpc_b64 s[4:5]2985; GFX1164-DPP-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+42986; GFX1164-DPP-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+122987; GFX1164-DPP-NEXT:    v_mov_b32_e32 v31, v02988; GFX1164-DPP-NEXT:    s_load_b64 s[16:17], s[4:5], 0x02989; GFX1164-DPP-NEXT:    s_mov_b32 s14, s102990; GFX1164-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]2991; GFX1164-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]2992; GFX1164-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]2993; GFX1164-DPP-NEXT:    s_mov_b32 s32, 02994; GFX1164-DPP-NEXT:    s_waitcnt lgkmcnt(0)2995; GFX1164-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]2996; GFX1164-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -12997; GFX1164-DPP-NEXT:    v_mov_b32_e32 v1, 0x7fc000002998; GFX1164-DPP-NEXT:    v_cndmask_b32_e64 v2, 0x7fc00000, v0, s[0:1]2999; GFX1164-DPP-NEXT:    v_mov_b32_e32 v3, 0x7fc000003000; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_1) | instid1(VALU_DEP_2)3001; GFX1164-DPP-NEXT:    v_mov_b32_dpp v1, v2 row_xmask:1 row_mask:0xf bank_mask:0xf3002; GFX1164-DPP-NEXT:    v_max_f32_e32 v2, v2, v23003; GFX1164-DPP-NEXT:    v_max_f32_e32 v1, v1, v13004; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3005; GFX1164-DPP-NEXT:    v_max_f32_e32 v1, v2, v13006; GFX1164-DPP-NEXT:    v_mov_b32_dpp v3, v1 row_xmask:2 row_mask:0xf bank_mask:0xf3007; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)3008; GFX1164-DPP-NEXT:    v_max_f32_e32 v2, v3, v33009; GFX1164-DPP-NEXT:    v_mov_b32_e32 v3, 0x7fc000003010; GFX1164-DPP-NEXT:    v_max_f32_e32 v1, v1, v23011; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3012; GFX1164-DPP-NEXT:    v_mov_b32_dpp v3, v1 row_xmask:4 row_mask:0xf bank_mask:0xf3013; GFX1164-DPP-NEXT:    v_max_f32_e32 v2, v3, v33014; GFX1164-DPP-NEXT:    v_mov_b32_e32 v3, 0x7fc000003015; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)3016; GFX1164-DPP-NEXT:    v_max_f32_e32 v1, v1, v23017; GFX1164-DPP-NEXT:    v_mov_b32_dpp v3, v1 row_xmask:8 row_mask:0xf bank_mask:0xf3018; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3019; GFX1164-DPP-NEXT:    v_max_f32_e32 v2, v3, v33020; GFX1164-DPP-NEXT:    v_max_f32_e32 v1, v1, v23021; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3022; GFX1164-DPP-NEXT:    v_permlanex16_b32 v2, v1, 0, 03023; GFX1164-DPP-NEXT:    v_max_f32_e32 v2, v2, v23024; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3025; GFX1164-DPP-NEXT:    v_max_f32_e32 v1, v1, v23026; GFX1164-DPP-NEXT:    v_permlane64_b32 v2, v13027; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1)3028; GFX1164-DPP-NEXT:    v_max_f32_e32 v2, v2, v23029; GFX1164-DPP-NEXT:    s_mov_b64 exec, s[0:1]3030; GFX1164-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 03031; GFX1164-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -13032; GFX1164-DPP-NEXT:    s_waitcnt_depctr depctr_sa_sdst(0)3033; GFX1164-DPP-NEXT:    v_max_f32_e32 v1, v1, v23034; GFX1164-DPP-NEXT:    s_mov_b64 exec, s[0:1]3035; GFX1164-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_2)3036; GFX1164-DPP-NEXT:    v_mbcnt_hi_u32_b32 v4, exec_hi, v03037; GFX1164-DPP-NEXT:    v_mov_b32_e32 v0, v13038; GFX1164-DPP-NEXT:    s_mov_b64 s[0:1], exec3039; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2)3040; GFX1164-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v43041; GFX1164-DPP-NEXT:    s_cbranch_execz .LBB5_23042; GFX1164-DPP-NEXT:  ; %bb.1:3043; GFX1164-DPP-NEXT:    s_load_b64 s[0:1], s[34:35], 0x243044; GFX1164-DPP-NEXT:    v_mov_b32_e32 v4, 03045; GFX1164-DPP-NEXT:    s_waitcnt lgkmcnt(0)3046; GFX1164-DPP-NEXT:    global_atomic_max_f32 v4, v0, s[0:1]3047; GFX1164-DPP-NEXT:  .LBB5_2:3048; GFX1164-DPP-NEXT:    s_endpgm3049;3050; GFX1132-DPP-LABEL: global_atomic_fmax_uni_address_div_value_default_scope_unsafe:3051; GFX1132-DPP:       ; %bb.0:3052; GFX1132-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]3053; GFX1132-DPP-NEXT:    v_mov_b32_e32 v31, v03054; GFX1132-DPP-NEXT:    s_add_u32 s8, s34, 443055; GFX1132-DPP-NEXT:    s_addc_u32 s9, s35, 03056; GFX1132-DPP-NEXT:    s_getpc_b64 s[4:5]3057; GFX1132-DPP-NEXT:    s_add_u32 s4, s4, div.float.value@gotpcrel32@lo+43058; GFX1132-DPP-NEXT:    s_addc_u32 s5, s5, div.float.value@gotpcrel32@hi+123059; GFX1132-DPP-NEXT:    s_mov_b32 s12, s133060; GFX1132-DPP-NEXT:    s_load_b64 s[16:17], s[4:5], 0x03061; GFX1132-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]3062; GFX1132-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]3063; GFX1132-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]3064; GFX1132-DPP-NEXT:    s_mov_b32 s13, s143065; GFX1132-DPP-NEXT:    s_mov_b32 s14, s153066; GFX1132-DPP-NEXT:    s_mov_b32 s32, 03067; GFX1132-DPP-NEXT:    s_waitcnt lgkmcnt(0)3068; GFX1132-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]3069; GFX1132-DPP-NEXT:    s_or_saveexec_b32 s0, -13070; GFX1132-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_2) | instid1(VALU_DEP_2)3071; GFX1132-DPP-NEXT:    v_cndmask_b32_e64 v2, 0x7fc00000, v0, s03072; GFX1132-DPP-NEXT:    v_mov_b32_e32 v1, 0x7fc000003073; GFX1132-DPP-NEXT:    v_mov_b32_e32 v3, 0x7fc000003074; GFX1132-DPP-NEXT:    v_mov_b32_dpp v1, v2 row_xmask:1 row_mask:0xf bank_mask:0xf3075; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3076; GFX1132-DPP-NEXT:    v_dual_max_f32 v2, v2, v2 :: v_dual_max_f32 v1, v1, v13077; GFX1132-DPP-NEXT:    v_max_f32_e32 v1, v2, v13078; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3079; GFX1132-DPP-NEXT:    v_mov_b32_dpp v3, v1 row_xmask:2 row_mask:0xf bank_mask:0xf3080; GFX1132-DPP-NEXT:    v_dual_max_f32 v2, v3, v3 :: v_dual_mov_b32 v3, 0x7fc000003081; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3082; GFX1132-DPP-NEXT:    v_max_f32_e32 v1, v1, v23083; GFX1132-DPP-NEXT:    v_mov_b32_dpp v3, v1 row_xmask:4 row_mask:0xf bank_mask:0xf3084; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3085; GFX1132-DPP-NEXT:    v_dual_max_f32 v2, v3, v3 :: v_dual_mov_b32 v3, 0x7fc000003086; GFX1132-DPP-NEXT:    v_max_f32_e32 v1, v1, v23087; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3088; GFX1132-DPP-NEXT:    v_mov_b32_dpp v3, v1 row_xmask:8 row_mask:0xf bank_mask:0xf3089; GFX1132-DPP-NEXT:    v_max_f32_e32 v2, v3, v33090; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3091; GFX1132-DPP-NEXT:    v_max_f32_e32 v1, v1, v23092; GFX1132-DPP-NEXT:    v_permlanex16_b32 v2, v1, 0, 03093; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3094; GFX1132-DPP-NEXT:    v_max_f32_e32 v2, v2, v23095; GFX1132-DPP-NEXT:    v_max_f32_e32 v1, v1, v23096; GFX1132-DPP-NEXT:    s_mov_b32 exec_lo, s03097; GFX1132-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_2)3098; GFX1132-DPP-NEXT:    v_mbcnt_lo_u32_b32 v4, exec_lo, 03099; GFX1132-DPP-NEXT:    v_mov_b32_e32 v0, v13100; GFX1132-DPP-NEXT:    s_mov_b32 s0, exec_lo3101; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2)3102; GFX1132-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v43103; GFX1132-DPP-NEXT:    s_cbranch_execz .LBB5_23104; GFX1132-DPP-NEXT:  ; %bb.1:3105; GFX1132-DPP-NEXT:    s_load_b64 s[0:1], s[34:35], 0x243106; GFX1132-DPP-NEXT:    v_mov_b32_e32 v4, 03107; GFX1132-DPP-NEXT:    s_waitcnt lgkmcnt(0)3108; GFX1132-DPP-NEXT:    global_atomic_max_f32 v4, v0, s[0:1]3109; GFX1132-DPP-NEXT:  .LBB5_2:3110; GFX1132-DPP-NEXT:    s_endpgm3111  %divValue = call float @div.float.value()3112  %result = atomicrmw fmax ptr addrspace(1) %ptr, float %divValue monotonic, align 4, !amdgpu.no.fine.grained.memory !13113  ret void3114}3115 3116define amdgpu_kernel void @global_atomic_fmax_double_uni_address_uni_value_agent_scope_unsafe(ptr addrspace(1) %ptr) #0 {3117; GFX7LESS-LABEL: global_atomic_fmax_double_uni_address_uni_value_agent_scope_unsafe:3118; GFX7LESS:       ; %bb.0:3119; GFX7LESS-NEXT:    v_mbcnt_lo_u32_b32_e64 v0, exec_lo, 03120; GFX7LESS-NEXT:    v_mbcnt_hi_u32_b32_e32 v0, exec_hi, v03121; GFX7LESS-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v03122; GFX7LESS-NEXT:    s_and_saveexec_b64 s[0:1], vcc3123; GFX7LESS-NEXT:    s_cbranch_execz .LBB6_33124; GFX7LESS-NEXT:  ; %bb.1:3125; GFX7LESS-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x93126; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)3127; GFX7LESS-NEXT:    s_load_dwordx2 s[6:7], s[0:1], 0x03128; GFX7LESS-NEXT:    s_mov_b64 s[4:5], 03129; GFX7LESS-NEXT:    s_mov_b32 s3, 0xf0003130; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)3131; GFX7LESS-NEXT:    v_mov_b32_e32 v2, s63132; GFX7LESS-NEXT:    v_mov_b32_e32 v3, s73133; GFX7LESS-NEXT:    s_mov_b32 s2, -13134; GFX7LESS-NEXT:  .LBB6_2: ; %atomicrmw.start3135; GFX7LESS-NEXT:    ; =>This Inner Loop Header: Depth=13136; GFX7LESS-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]3137; GFX7LESS-NEXT:    v_max_f64 v[0:1], v[0:1], 4.03138; GFX7LESS-NEXT:    s_waitcnt expcnt(0)3139; GFX7LESS-NEXT:    v_mov_b32_e32 v7, v33140; GFX7LESS-NEXT:    v_mov_b32_e32 v6, v23141; GFX7LESS-NEXT:    v_mov_b32_e32 v5, v13142; GFX7LESS-NEXT:    v_mov_b32_e32 v4, v03143; GFX7LESS-NEXT:    buffer_atomic_cmpswap_x2 v[4:7], off, s[0:3], 0 glc3144; GFX7LESS-NEXT:    s_waitcnt vmcnt(0)3145; GFX7LESS-NEXT:    v_cmp_eq_u64_e32 vcc, v[4:5], v[2:3]3146; GFX7LESS-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]3147; GFX7LESS-NEXT:    v_mov_b32_e32 v2, v43148; GFX7LESS-NEXT:    v_mov_b32_e32 v3, v53149; GFX7LESS-NEXT:    s_andn2_b64 exec, exec, s[4:5]3150; GFX7LESS-NEXT:    s_cbranch_execnz .LBB6_23151; GFX7LESS-NEXT:  .LBB6_3:3152; GFX7LESS-NEXT:    s_endpgm3153;3154; GFX9-LABEL: global_atomic_fmax_double_uni_address_uni_value_agent_scope_unsafe:3155; GFX9:       ; %bb.0:3156; GFX9-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 03157; GFX9-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v03158; GFX9-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v03159; GFX9-NEXT:    s_and_saveexec_b64 s[0:1], vcc3160; GFX9-NEXT:    s_cbranch_execz .LBB6_33161; GFX9-NEXT:  ; %bb.1:3162; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243163; GFX9-NEXT:    s_mov_b64 s[2:3], 03164; GFX9-NEXT:    v_mov_b32_e32 v4, 03165; GFX9-NEXT:    s_waitcnt lgkmcnt(0)3166; GFX9-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x03167; GFX9-NEXT:    s_waitcnt lgkmcnt(0)3168; GFX9-NEXT:    v_mov_b32_e32 v2, s43169; GFX9-NEXT:    v_mov_b32_e32 v3, s53170; GFX9-NEXT:  .LBB6_2: ; %atomicrmw.start3171; GFX9-NEXT:    ; =>This Inner Loop Header: Depth=13172; GFX9-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]3173; GFX9-NEXT:    v_max_f64 v[0:1], v[0:1], 4.03174; GFX9-NEXT:    global_atomic_cmpswap_x2 v[0:1], v4, v[0:3], s[0:1] glc3175; GFX9-NEXT:    s_waitcnt vmcnt(0)3176; GFX9-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[2:3]3177; GFX9-NEXT:    v_mov_b32_e32 v3, v13178; GFX9-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]3179; GFX9-NEXT:    v_mov_b32_e32 v2, v03180; GFX9-NEXT:    s_andn2_b64 exec, exec, s[2:3]3181; GFX9-NEXT:    s_cbranch_execnz .LBB6_23182; GFX9-NEXT:  .LBB6_3:3183; GFX9-NEXT:    s_endpgm3184;3185; GFX1064-LABEL: global_atomic_fmax_double_uni_address_uni_value_agent_scope_unsafe:3186; GFX1064:       ; %bb.0:3187; GFX1064-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 03188; GFX1064-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v03189; GFX1064-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v03190; GFX1064-NEXT:    s_and_saveexec_b64 s[0:1], vcc3191; GFX1064-NEXT:    s_cbranch_execz .LBB6_23192; GFX1064-NEXT:  ; %bb.1:3193; GFX1064-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243194; GFX1064-NEXT:    v_mov_b32_e32 v0, 03195; GFX1064-NEXT:    v_mov_b32_e32 v1, 0x401000003196; GFX1064-NEXT:    v_mov_b32_e32 v2, 03197; GFX1064-NEXT:    s_waitcnt lgkmcnt(0)3198; GFX1064-NEXT:    global_atomic_fmax_x2 v2, v[0:1], s[0:1]3199; GFX1064-NEXT:  .LBB6_2:3200; GFX1064-NEXT:    s_endpgm3201;3202; GFX1032-LABEL: global_atomic_fmax_double_uni_address_uni_value_agent_scope_unsafe:3203; GFX1032:       ; %bb.0:3204; GFX1032-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 03205; GFX1032-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v03206; GFX1032-NEXT:    s_and_saveexec_b32 s0, vcc_lo3207; GFX1032-NEXT:    s_cbranch_execz .LBB6_23208; GFX1032-NEXT:  ; %bb.1:3209; GFX1032-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243210; GFX1032-NEXT:    v_mov_b32_e32 v0, 03211; GFX1032-NEXT:    v_mov_b32_e32 v1, 0x401000003212; GFX1032-NEXT:    v_mov_b32_e32 v2, 03213; GFX1032-NEXT:    s_waitcnt lgkmcnt(0)3214; GFX1032-NEXT:    global_atomic_fmax_x2 v2, v[0:1], s[0:1]3215; GFX1032-NEXT:  .LBB6_2:3216; GFX1032-NEXT:    s_endpgm3217;3218; GFX1164-LABEL: global_atomic_fmax_double_uni_address_uni_value_agent_scope_unsafe:3219; GFX1164:       ; %bb.0:3220; GFX1164-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 03221; GFX1164-NEXT:    s_mov_b64 s[0:1], exec3222; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3223; GFX1164-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v03224; GFX1164-NEXT:    v_cmpx_eq_u32_e32 0, v03225; GFX1164-NEXT:    s_cbranch_execz .LBB6_33226; GFX1164-NEXT:  ; %bb.1:3227; GFX1164-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243228; GFX1164-NEXT:    v_mov_b32_e32 v4, 03229; GFX1164-NEXT:    s_waitcnt lgkmcnt(0)3230; GFX1164-NEXT:    s_load_b64 s[2:3], s[0:1], 0x03231; GFX1164-NEXT:    s_waitcnt lgkmcnt(0)3232; GFX1164-NEXT:    v_mov_b32_e32 v2, s23233; GFX1164-NEXT:    v_mov_b32_e32 v3, s33234; GFX1164-NEXT:    s_mov_b64 s[2:3], 03235; GFX1164-NEXT:  .LBB6_2: ; %atomicrmw.start3236; GFX1164-NEXT:    ; =>This Inner Loop Header: Depth=13237; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3238; GFX1164-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]3239; GFX1164-NEXT:    v_max_f64 v[0:1], v[0:1], 4.03240; GFX1164-NEXT:    global_atomic_cmpswap_b64 v[0:1], v4, v[0:3], s[0:1] glc3241; GFX1164-NEXT:    s_waitcnt vmcnt(0)3242; GFX1164-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[2:3]3243; GFX1164-NEXT:    v_mov_b32_e32 v3, v13244; GFX1164-NEXT:    v_mov_b32_e32 v2, v03245; GFX1164-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]3246; GFX1164-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)3247; GFX1164-NEXT:    s_and_not1_b64 exec, exec, s[2:3]3248; GFX1164-NEXT:    s_cbranch_execnz .LBB6_23249; GFX1164-NEXT:  .LBB6_3:3250; GFX1164-NEXT:    s_endpgm3251;3252; GFX1132-LABEL: global_atomic_fmax_double_uni_address_uni_value_agent_scope_unsafe:3253; GFX1132:       ; %bb.0:3254; GFX1132-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 03255; GFX1132-NEXT:    s_mov_b32 s2, 03256; GFX1132-NEXT:    s_mov_b32 s0, exec_lo3257; GFX1132-NEXT:    s_delay_alu instid0(VALU_DEP_1)3258; GFX1132-NEXT:    v_cmpx_eq_u32_e32 0, v03259; GFX1132-NEXT:    s_cbranch_execz .LBB6_33260; GFX1132-NEXT:  ; %bb.1:3261; GFX1132-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243262; GFX1132-NEXT:    v_mov_b32_e32 v4, 03263; GFX1132-NEXT:    s_waitcnt lgkmcnt(0)3264; GFX1132-NEXT:    s_load_b64 s[4:5], s[0:1], 0x03265; GFX1132-NEXT:    s_waitcnt lgkmcnt(0)3266; GFX1132-NEXT:    v_dual_mov_b32 v2, s4 :: v_dual_mov_b32 v3, s53267; GFX1132-NEXT:  .LBB6_2: ; %atomicrmw.start3268; GFX1132-NEXT:    ; =>This Inner Loop Header: Depth=13269; GFX1132-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3270; GFX1132-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]3271; GFX1132-NEXT:    v_max_f64 v[0:1], v[0:1], 4.03272; GFX1132-NEXT:    global_atomic_cmpswap_b64 v[0:1], v4, v[0:3], s[0:1] glc3273; GFX1132-NEXT:    s_waitcnt vmcnt(0)3274; GFX1132-NEXT:    v_cmp_eq_u64_e32 vcc_lo, v[0:1], v[2:3]3275; GFX1132-NEXT:    v_dual_mov_b32 v3, v1 :: v_dual_mov_b32 v2, v03276; GFX1132-NEXT:    s_or_b32 s2, vcc_lo, s23277; GFX1132-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)3278; GFX1132-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s23279; GFX1132-NEXT:    s_cbranch_execnz .LBB6_23280; GFX1132-NEXT:  .LBB6_3:3281; GFX1132-NEXT:    s_endpgm3282;3283; GFX7LESS-DPP-LABEL: global_atomic_fmax_double_uni_address_uni_value_agent_scope_unsafe:3284; GFX7LESS-DPP:       ; %bb.0:3285; GFX7LESS-DPP-NEXT:    v_mbcnt_lo_u32_b32_e64 v0, exec_lo, 03286; GFX7LESS-DPP-NEXT:    v_mbcnt_hi_u32_b32_e32 v0, exec_hi, v03287; GFX7LESS-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v03288; GFX7LESS-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc3289; GFX7LESS-DPP-NEXT:    s_cbranch_execz .LBB6_33290; GFX7LESS-DPP-NEXT:  ; %bb.1:3291; GFX7LESS-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x93292; GFX7LESS-DPP-NEXT:    s_waitcnt lgkmcnt(0)3293; GFX7LESS-DPP-NEXT:    s_load_dwordx2 s[6:7], s[0:1], 0x03294; GFX7LESS-DPP-NEXT:    s_mov_b64 s[4:5], 03295; GFX7LESS-DPP-NEXT:    s_mov_b32 s3, 0xf0003296; GFX7LESS-DPP-NEXT:    s_waitcnt lgkmcnt(0)3297; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v2, s63298; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v3, s73299; GFX7LESS-DPP-NEXT:    s_mov_b32 s2, -13300; GFX7LESS-DPP-NEXT:  .LBB6_2: ; %atomicrmw.start3301; GFX7LESS-DPP-NEXT:    ; =>This Inner Loop Header: Depth=13302; GFX7LESS-DPP-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]3303; GFX7LESS-DPP-NEXT:    v_max_f64 v[0:1], v[0:1], 4.03304; GFX7LESS-DPP-NEXT:    s_waitcnt expcnt(0)3305; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v7, v33306; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v6, v23307; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v5, v13308; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v4, v03309; GFX7LESS-DPP-NEXT:    buffer_atomic_cmpswap_x2 v[4:7], off, s[0:3], 0 glc3310; GFX7LESS-DPP-NEXT:    s_waitcnt vmcnt(0)3311; GFX7LESS-DPP-NEXT:    v_cmp_eq_u64_e32 vcc, v[4:5], v[2:3]3312; GFX7LESS-DPP-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]3313; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v2, v43314; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v3, v53315; GFX7LESS-DPP-NEXT:    s_andn2_b64 exec, exec, s[4:5]3316; GFX7LESS-DPP-NEXT:    s_cbranch_execnz .LBB6_23317; GFX7LESS-DPP-NEXT:  .LBB6_3:3318; GFX7LESS-DPP-NEXT:    s_endpgm3319;3320; GFX9-DPP-LABEL: global_atomic_fmax_double_uni_address_uni_value_agent_scope_unsafe:3321; GFX9-DPP:       ; %bb.0:3322; GFX9-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 03323; GFX9-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v03324; GFX9-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v03325; GFX9-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc3326; GFX9-DPP-NEXT:    s_cbranch_execz .LBB6_33327; GFX9-DPP-NEXT:  ; %bb.1:3328; GFX9-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243329; GFX9-DPP-NEXT:    s_mov_b64 s[2:3], 03330; GFX9-DPP-NEXT:    v_mov_b32_e32 v4, 03331; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)3332; GFX9-DPP-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x03333; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)3334; GFX9-DPP-NEXT:    v_mov_b32_e32 v2, s43335; GFX9-DPP-NEXT:    v_mov_b32_e32 v3, s53336; GFX9-DPP-NEXT:  .LBB6_2: ; %atomicrmw.start3337; GFX9-DPP-NEXT:    ; =>This Inner Loop Header: Depth=13338; GFX9-DPP-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]3339; GFX9-DPP-NEXT:    v_max_f64 v[0:1], v[0:1], 4.03340; GFX9-DPP-NEXT:    global_atomic_cmpswap_x2 v[0:1], v4, v[0:3], s[0:1] glc3341; GFX9-DPP-NEXT:    s_waitcnt vmcnt(0)3342; GFX9-DPP-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[2:3]3343; GFX9-DPP-NEXT:    v_mov_b32_e32 v3, v13344; GFX9-DPP-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]3345; GFX9-DPP-NEXT:    v_mov_b32_e32 v2, v03346; GFX9-DPP-NEXT:    s_andn2_b64 exec, exec, s[2:3]3347; GFX9-DPP-NEXT:    s_cbranch_execnz .LBB6_23348; GFX9-DPP-NEXT:  .LBB6_3:3349; GFX9-DPP-NEXT:    s_endpgm3350;3351; GFX1064-DPP-LABEL: global_atomic_fmax_double_uni_address_uni_value_agent_scope_unsafe:3352; GFX1064-DPP:       ; %bb.0:3353; GFX1064-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 03354; GFX1064-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v03355; GFX1064-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v03356; GFX1064-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc3357; GFX1064-DPP-NEXT:    s_cbranch_execz .LBB6_23358; GFX1064-DPP-NEXT:  ; %bb.1:3359; GFX1064-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243360; GFX1064-DPP-NEXT:    v_mov_b32_e32 v0, 03361; GFX1064-DPP-NEXT:    v_mov_b32_e32 v1, 0x401000003362; GFX1064-DPP-NEXT:    v_mov_b32_e32 v2, 03363; GFX1064-DPP-NEXT:    s_waitcnt lgkmcnt(0)3364; GFX1064-DPP-NEXT:    global_atomic_fmax_x2 v2, v[0:1], s[0:1]3365; GFX1064-DPP-NEXT:  .LBB6_2:3366; GFX1064-DPP-NEXT:    s_endpgm3367;3368; GFX1032-DPP-LABEL: global_atomic_fmax_double_uni_address_uni_value_agent_scope_unsafe:3369; GFX1032-DPP:       ; %bb.0:3370; GFX1032-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 03371; GFX1032-DPP-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v03372; GFX1032-DPP-NEXT:    s_and_saveexec_b32 s0, vcc_lo3373; GFX1032-DPP-NEXT:    s_cbranch_execz .LBB6_23374; GFX1032-DPP-NEXT:  ; %bb.1:3375; GFX1032-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243376; GFX1032-DPP-NEXT:    v_mov_b32_e32 v0, 03377; GFX1032-DPP-NEXT:    v_mov_b32_e32 v1, 0x401000003378; GFX1032-DPP-NEXT:    v_mov_b32_e32 v2, 03379; GFX1032-DPP-NEXT:    s_waitcnt lgkmcnt(0)3380; GFX1032-DPP-NEXT:    global_atomic_fmax_x2 v2, v[0:1], s[0:1]3381; GFX1032-DPP-NEXT:  .LBB6_2:3382; GFX1032-DPP-NEXT:    s_endpgm3383;3384; GFX1164-DPP-LABEL: global_atomic_fmax_double_uni_address_uni_value_agent_scope_unsafe:3385; GFX1164-DPP:       ; %bb.0:3386; GFX1164-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 03387; GFX1164-DPP-NEXT:    s_mov_b64 s[0:1], exec3388; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3389; GFX1164-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v03390; GFX1164-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v03391; GFX1164-DPP-NEXT:    s_cbranch_execz .LBB6_33392; GFX1164-DPP-NEXT:  ; %bb.1:3393; GFX1164-DPP-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243394; GFX1164-DPP-NEXT:    v_mov_b32_e32 v4, 03395; GFX1164-DPP-NEXT:    s_waitcnt lgkmcnt(0)3396; GFX1164-DPP-NEXT:    s_load_b64 s[2:3], s[0:1], 0x03397; GFX1164-DPP-NEXT:    s_waitcnt lgkmcnt(0)3398; GFX1164-DPP-NEXT:    v_mov_b32_e32 v2, s23399; GFX1164-DPP-NEXT:    v_mov_b32_e32 v3, s33400; GFX1164-DPP-NEXT:    s_mov_b64 s[2:3], 03401; GFX1164-DPP-NEXT:  .LBB6_2: ; %atomicrmw.start3402; GFX1164-DPP-NEXT:    ; =>This Inner Loop Header: Depth=13403; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3404; GFX1164-DPP-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]3405; GFX1164-DPP-NEXT:    v_max_f64 v[0:1], v[0:1], 4.03406; GFX1164-DPP-NEXT:    global_atomic_cmpswap_b64 v[0:1], v4, v[0:3], s[0:1] glc3407; GFX1164-DPP-NEXT:    s_waitcnt vmcnt(0)3408; GFX1164-DPP-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[2:3]3409; GFX1164-DPP-NEXT:    v_mov_b32_e32 v3, v13410; GFX1164-DPP-NEXT:    v_mov_b32_e32 v2, v03411; GFX1164-DPP-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]3412; GFX1164-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)3413; GFX1164-DPP-NEXT:    s_and_not1_b64 exec, exec, s[2:3]3414; GFX1164-DPP-NEXT:    s_cbranch_execnz .LBB6_23415; GFX1164-DPP-NEXT:  .LBB6_3:3416; GFX1164-DPP-NEXT:    s_endpgm3417;3418; GFX1132-DPP-LABEL: global_atomic_fmax_double_uni_address_uni_value_agent_scope_unsafe:3419; GFX1132-DPP:       ; %bb.0:3420; GFX1132-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 03421; GFX1132-DPP-NEXT:    s_mov_b32 s2, 03422; GFX1132-DPP-NEXT:    s_mov_b32 s0, exec_lo3423; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1)3424; GFX1132-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v03425; GFX1132-DPP-NEXT:    s_cbranch_execz .LBB6_33426; GFX1132-DPP-NEXT:  ; %bb.1:3427; GFX1132-DPP-NEXT:    s_load_b64 s[0:1], s[4:5], 0x243428; GFX1132-DPP-NEXT:    v_mov_b32_e32 v4, 03429; GFX1132-DPP-NEXT:    s_waitcnt lgkmcnt(0)3430; GFX1132-DPP-NEXT:    s_load_b64 s[4:5], s[0:1], 0x03431; GFX1132-DPP-NEXT:    s_waitcnt lgkmcnt(0)3432; GFX1132-DPP-NEXT:    v_dual_mov_b32 v2, s4 :: v_dual_mov_b32 v3, s53433; GFX1132-DPP-NEXT:  .LBB6_2: ; %atomicrmw.start3434; GFX1132-DPP-NEXT:    ; =>This Inner Loop Header: Depth=13435; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3436; GFX1132-DPP-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]3437; GFX1132-DPP-NEXT:    v_max_f64 v[0:1], v[0:1], 4.03438; GFX1132-DPP-NEXT:    global_atomic_cmpswap_b64 v[0:1], v4, v[0:3], s[0:1] glc3439; GFX1132-DPP-NEXT:    s_waitcnt vmcnt(0)3440; GFX1132-DPP-NEXT:    v_cmp_eq_u64_e32 vcc_lo, v[0:1], v[2:3]3441; GFX1132-DPP-NEXT:    v_dual_mov_b32 v3, v1 :: v_dual_mov_b32 v2, v03442; GFX1132-DPP-NEXT:    s_or_b32 s2, vcc_lo, s23443; GFX1132-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)3444; GFX1132-DPP-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s23445; GFX1132-DPP-NEXT:    s_cbranch_execnz .LBB6_23446; GFX1132-DPP-NEXT:  .LBB6_3:3447; GFX1132-DPP-NEXT:    s_endpgm3448  %result = atomicrmw fmax ptr addrspace(1) %ptr, double 4.0 syncscope("agent") monotonic, align 8, !amdgpu.no.fine.grained.memory !13449  ret void3450}3451 3452define amdgpu_kernel void @global_atomic_fmax_double_uni_address_div_value_agent_scope_unsafe(ptr addrspace(1) %ptr) #0 {3453; GFX7LESS-LABEL: global_atomic_fmax_double_uni_address_div_value_agent_scope_unsafe:3454; GFX7LESS:       ; %bb.0:3455; GFX7LESS-NEXT:    s_mov_b32 s32, 03456; GFX7LESS-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD03457; GFX7LESS-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD13458; GFX7LESS-NEXT:    s_mov_b32 s38, -13459; GFX7LESS-NEXT:    s_mov_b32 s39, 0xe8f0003460; GFX7LESS-NEXT:    s_add_u32 s36, s36, s113461; GFX7LESS-NEXT:    s_addc_u32 s37, s37, 03462; GFX7LESS-NEXT:    s_mov_b32 s14, s103463; GFX7LESS-NEXT:    s_mov_b32 s13, s93464; GFX7LESS-NEXT:    s_mov_b32 s12, s83465; GFX7LESS-NEXT:    s_mov_b64 s[10:11], s[6:7]3466; GFX7LESS-NEXT:    s_mov_b64 s[34:35], s[4:5]3467; GFX7LESS-NEXT:    s_add_u32 s8, s34, 443468; GFX7LESS-NEXT:    s_addc_u32 s9, s35, 03469; GFX7LESS-NEXT:    s_getpc_b64 s[4:5]3470; GFX7LESS-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+43471; GFX7LESS-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+123472; GFX7LESS-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x03473; GFX7LESS-NEXT:    v_lshlrev_b32_e32 v2, 20, v23474; GFX7LESS-NEXT:    v_lshlrev_b32_e32 v1, 10, v13475; GFX7LESS-NEXT:    v_or_b32_e32 v0, v0, v13476; GFX7LESS-NEXT:    v_or_b32_e32 v31, v0, v23477; GFX7LESS-NEXT:    s_mov_b64 s[4:5], s[0:1]3478; GFX7LESS-NEXT:    s_mov_b64 s[6:7], s[2:3]3479; GFX7LESS-NEXT:    s_mov_b64 s[0:1], s[36:37]3480; GFX7LESS-NEXT:    s_mov_b64 s[2:3], s[38:39]3481; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)3482; GFX7LESS-NEXT:    s_swappc_b64 s[30:31], s[16:17]3483; GFX7LESS-NEXT:    s_mov_b64 s[0:1], exec3484; GFX7LESS-NEXT:    v_mov_b32_e32 v4, 03485; GFX7LESS-NEXT:    v_mov_b32_e32 v5, 0x7ff800003486; GFX7LESS-NEXT:  .LBB7_1: ; %ComputeLoop3487; GFX7LESS-NEXT:    ; =>This Inner Loop Header: Depth=13488; GFX7LESS-NEXT:    s_ff1_i32_b64 s4, s[0:1]3489; GFX7LESS-NEXT:    v_max_f64 v[2:3], v[4:5], v[4:5]3490; GFX7LESS-NEXT:    v_readlane_b32 s3, v1, s43491; GFX7LESS-NEXT:    v_readlane_b32 s2, v0, s43492; GFX7LESS-NEXT:    s_lshl_b64 s[4:5], 1, s43493; GFX7LESS-NEXT:    v_max_f64 v[4:5], s[2:3], s[2:3]3494; GFX7LESS-NEXT:    s_andn2_b64 s[0:1], s[0:1], s[4:5]3495; GFX7LESS-NEXT:    v_cmp_ne_u64_e64 s[2:3], s[0:1], 03496; GFX7LESS-NEXT:    s_and_b64 vcc, exec, s[2:3]3497; GFX7LESS-NEXT:    v_max_f64 v[4:5], v[2:3], v[4:5]3498; GFX7LESS-NEXT:    s_cbranch_vccnz .LBB7_13499; GFX7LESS-NEXT:  ; %bb.2: ; %ComputeEnd3500; GFX7LESS-NEXT:    v_mbcnt_lo_u32_b32_e64 v0, exec_lo, 03501; GFX7LESS-NEXT:    v_mbcnt_hi_u32_b32_e32 v0, exec_hi, v03502; GFX7LESS-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v03503; GFX7LESS-NEXT:    s_and_saveexec_b64 s[0:1], vcc3504; GFX7LESS-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]3505; GFX7LESS-NEXT:    s_cbranch_execz .LBB7_53506; GFX7LESS-NEXT:  ; %bb.3:3507; GFX7LESS-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x93508; GFX7LESS-NEXT:    s_mov_b32 s3, 0xf0003509; GFX7LESS-NEXT:    s_mov_b32 s2, -13510; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)3511; GFX7LESS-NEXT:    buffer_load_dwordx2 v[2:3], off, s[0:3], 03512; GFX7LESS-NEXT:    s_mov_b64 s[4:5], 03513; GFX7LESS-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]3514; GFX7LESS-NEXT:  .LBB7_4: ; %atomicrmw.start3515; GFX7LESS-NEXT:    ; =>This Inner Loop Header: Depth=13516; GFX7LESS-NEXT:    s_waitcnt vmcnt(0)3517; GFX7LESS-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]3518; GFX7LESS-NEXT:    v_max_f64 v[0:1], v[0:1], v[4:5]3519; GFX7LESS-NEXT:    s_waitcnt expcnt(0)3520; GFX7LESS-NEXT:    v_mov_b32_e32 v9, v33521; GFX7LESS-NEXT:    v_mov_b32_e32 v8, v23522; GFX7LESS-NEXT:    v_mov_b32_e32 v7, v13523; GFX7LESS-NEXT:    v_mov_b32_e32 v6, v03524; GFX7LESS-NEXT:    buffer_atomic_cmpswap_x2 v[6:9], off, s[0:3], 0 glc3525; GFX7LESS-NEXT:    s_waitcnt vmcnt(0)3526; GFX7LESS-NEXT:    v_cmp_eq_u64_e32 vcc, v[6:7], v[2:3]3527; GFX7LESS-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]3528; GFX7LESS-NEXT:    v_mov_b32_e32 v2, v63529; GFX7LESS-NEXT:    v_mov_b32_e32 v3, v73530; GFX7LESS-NEXT:    s_andn2_b64 exec, exec, s[4:5]3531; GFX7LESS-NEXT:    s_cbranch_execnz .LBB7_43532; GFX7LESS-NEXT:  .LBB7_5:3533; GFX7LESS-NEXT:    s_endpgm3534;3535; GFX9-LABEL: global_atomic_fmax_double_uni_address_div_value_agent_scope_unsafe:3536; GFX9:       ; %bb.0:3537; GFX9-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD03538; GFX9-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD13539; GFX9-NEXT:    s_mov_b32 s38, -13540; GFX9-NEXT:    s_mov_b32 s39, 0xe000003541; GFX9-NEXT:    s_add_u32 s36, s36, s113542; GFX9-NEXT:    s_addc_u32 s37, s37, 03543; GFX9-NEXT:    s_mov_b64 s[34:35], s[4:5]3544; GFX9-NEXT:    s_mov_b32 s12, s83545; GFX9-NEXT:    s_add_u32 s8, s34, 443546; GFX9-NEXT:    s_mov_b32 s13, s93547; GFX9-NEXT:    s_addc_u32 s9, s35, 03548; GFX9-NEXT:    s_getpc_b64 s[4:5]3549; GFX9-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+43550; GFX9-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+123551; GFX9-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x03552; GFX9-NEXT:    s_mov_b32 s14, s103553; GFX9-NEXT:    s_mov_b64 s[10:11], s[6:7]3554; GFX9-NEXT:    v_lshlrev_b32_e32 v2, 20, v23555; GFX9-NEXT:    v_lshlrev_b32_e32 v1, 10, v13556; GFX9-NEXT:    s_mov_b64 s[4:5], s[0:1]3557; GFX9-NEXT:    s_mov_b64 s[6:7], s[2:3]3558; GFX9-NEXT:    s_mov_b64 s[0:1], s[36:37]3559; GFX9-NEXT:    v_or3_b32 v31, v0, v1, v23560; GFX9-NEXT:    s_mov_b64 s[2:3], s[38:39]3561; GFX9-NEXT:    s_mov_b32 s32, 03562; GFX9-NEXT:    s_waitcnt lgkmcnt(0)3563; GFX9-NEXT:    s_swappc_b64 s[30:31], s[16:17]3564; GFX9-NEXT:    v_mov_b32_e32 v4, 03565; GFX9-NEXT:    s_mov_b64 s[0:1], exec3566; GFX9-NEXT:    v_mov_b32_e32 v5, 0x7ff800003567; GFX9-NEXT:  .LBB7_1: ; %ComputeLoop3568; GFX9-NEXT:    ; =>This Inner Loop Header: Depth=13569; GFX9-NEXT:    s_ff1_i32_b64 s4, s[0:1]3570; GFX9-NEXT:    v_readlane_b32 s3, v1, s43571; GFX9-NEXT:    v_readlane_b32 s2, v0, s43572; GFX9-NEXT:    v_max_f64 v[2:3], v[4:5], v[4:5]3573; GFX9-NEXT:    v_max_f64 v[4:5], s[2:3], s[2:3]3574; GFX9-NEXT:    s_lshl_b64 s[2:3], 1, s43575; GFX9-NEXT:    s_andn2_b64 s[0:1], s[0:1], s[2:3]3576; GFX9-NEXT:    v_max_f64 v[4:5], v[2:3], v[4:5]3577; GFX9-NEXT:    s_cbranch_scc1 .LBB7_13578; GFX9-NEXT:  ; %bb.2: ; %ComputeEnd3579; GFX9-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 03580; GFX9-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v03581; GFX9-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v03582; GFX9-NEXT:    s_and_saveexec_b64 s[0:1], vcc3583; GFX9-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]3584; GFX9-NEXT:    s_cbranch_execz .LBB7_53585; GFX9-NEXT:  ; %bb.3:3586; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x243587; GFX9-NEXT:    v_mov_b32_e32 v6, 03588; GFX9-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]3589; GFX9-NEXT:    s_mov_b64 s[2:3], 03590; GFX9-NEXT:    s_waitcnt lgkmcnt(0)3591; GFX9-NEXT:    global_load_dwordx2 v[2:3], v6, s[0:1]3592; GFX9-NEXT:  .LBB7_4: ; %atomicrmw.start3593; GFX9-NEXT:    ; =>This Inner Loop Header: Depth=13594; GFX9-NEXT:    s_waitcnt vmcnt(0)3595; GFX9-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]3596; GFX9-NEXT:    v_max_f64 v[0:1], v[0:1], v[4:5]3597; GFX9-NEXT:    global_atomic_cmpswap_x2 v[0:1], v6, v[0:3], s[0:1] glc3598; GFX9-NEXT:    s_waitcnt vmcnt(0)3599; GFX9-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[2:3]3600; GFX9-NEXT:    v_mov_b32_e32 v3, v13601; GFX9-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]3602; GFX9-NEXT:    v_mov_b32_e32 v2, v03603; GFX9-NEXT:    s_andn2_b64 exec, exec, s[2:3]3604; GFX9-NEXT:    s_cbranch_execnz .LBB7_43605; GFX9-NEXT:  .LBB7_5:3606; GFX9-NEXT:    s_endpgm3607;3608; GFX1064-LABEL: global_atomic_fmax_double_uni_address_div_value_agent_scope_unsafe:3609; GFX1064:       ; %bb.0:3610; GFX1064-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD03611; GFX1064-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD13612; GFX1064-NEXT:    s_mov_b32 s38, -13613; GFX1064-NEXT:    s_mov_b32 s39, 0x31e160003614; GFX1064-NEXT:    s_add_u32 s36, s36, s113615; GFX1064-NEXT:    s_mov_b64 s[34:35], s[4:5]3616; GFX1064-NEXT:    s_addc_u32 s37, s37, 03617; GFX1064-NEXT:    s_mov_b32 s12, s83618; GFX1064-NEXT:    s_add_u32 s8, s34, 443619; GFX1064-NEXT:    s_mov_b32 s13, s93620; GFX1064-NEXT:    s_addc_u32 s9, s35, 03621; GFX1064-NEXT:    s_getpc_b64 s[4:5]3622; GFX1064-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+43623; GFX1064-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+123624; GFX1064-NEXT:    v_lshlrev_b32_e32 v2, 20, v23625; GFX1064-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x03626; GFX1064-NEXT:    v_lshlrev_b32_e32 v1, 10, v13627; GFX1064-NEXT:    s_mov_b32 s14, s103628; GFX1064-NEXT:    s_mov_b64 s[10:11], s[6:7]3629; GFX1064-NEXT:    s_mov_b64 s[4:5], s[0:1]3630; GFX1064-NEXT:    s_mov_b64 s[6:7], s[2:3]3631; GFX1064-NEXT:    v_or3_b32 v31, v0, v1, v23632; GFX1064-NEXT:    s_mov_b64 s[0:1], s[36:37]3633; GFX1064-NEXT:    s_mov_b64 s[2:3], s[38:39]3634; GFX1064-NEXT:    s_mov_b32 s32, 03635; GFX1064-NEXT:    s_waitcnt lgkmcnt(0)3636; GFX1064-NEXT:    s_swappc_b64 s[30:31], s[16:17]3637; GFX1064-NEXT:    v_mov_b32_e32 v2, 03638; GFX1064-NEXT:    v_mov_b32_e32 v3, 0x7ff800003639; GFX1064-NEXT:    s_mov_b64 s[0:1], exec3640; GFX1064-NEXT:  .LBB7_1: ; %ComputeLoop3641; GFX1064-NEXT:    ; =>This Inner Loop Header: Depth=13642; GFX1064-NEXT:    s_ff1_i32_b64 s4, s[0:1]3643; GFX1064-NEXT:    v_max_f64 v[2:3], v[2:3], v[2:3]3644; GFX1064-NEXT:    v_readlane_b32 s3, v1, s43645; GFX1064-NEXT:    v_readlane_b32 s2, v0, s43646; GFX1064-NEXT:    v_max_f64 v[4:5], s[2:3], s[2:3]3647; GFX1064-NEXT:    s_lshl_b64 s[2:3], 1, s43648; GFX1064-NEXT:    s_andn2_b64 s[0:1], s[0:1], s[2:3]3649; GFX1064-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]3650; GFX1064-NEXT:    s_cbranch_scc1 .LBB7_13651; GFX1064-NEXT:  ; %bb.2: ; %ComputeEnd3652; GFX1064-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 03653; GFX1064-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v03654; GFX1064-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v03655; GFX1064-NEXT:    s_and_saveexec_b64 s[0:1], vcc3656; GFX1064-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]3657; GFX1064-NEXT:    s_cbranch_execz .LBB7_43658; GFX1064-NEXT:  ; %bb.3:3659; GFX1064-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x243660; GFX1064-NEXT:    v_mov_b32_e32 v0, 03661; GFX1064-NEXT:    s_waitcnt lgkmcnt(0)3662; GFX1064-NEXT:    global_atomic_fmax_x2 v0, v[2:3], s[0:1]3663; GFX1064-NEXT:  .LBB7_4:3664; GFX1064-NEXT:    s_endpgm3665;3666; GFX1032-LABEL: global_atomic_fmax_double_uni_address_div_value_agent_scope_unsafe:3667; GFX1032:       ; %bb.0:3668; GFX1032-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD03669; GFX1032-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD13670; GFX1032-NEXT:    s_mov_b32 s38, -13671; GFX1032-NEXT:    s_mov_b32 s39, 0x31c160003672; GFX1032-NEXT:    s_add_u32 s36, s36, s113673; GFX1032-NEXT:    s_mov_b64 s[34:35], s[4:5]3674; GFX1032-NEXT:    s_addc_u32 s37, s37, 03675; GFX1032-NEXT:    s_mov_b32 s12, s83676; GFX1032-NEXT:    s_add_u32 s8, s34, 443677; GFX1032-NEXT:    s_mov_b32 s13, s93678; GFX1032-NEXT:    s_addc_u32 s9, s35, 03679; GFX1032-NEXT:    s_getpc_b64 s[4:5]3680; GFX1032-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+43681; GFX1032-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+123682; GFX1032-NEXT:    v_lshlrev_b32_e32 v2, 20, v23683; GFX1032-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x03684; GFX1032-NEXT:    v_lshlrev_b32_e32 v1, 10, v13685; GFX1032-NEXT:    s_mov_b32 s14, s103686; GFX1032-NEXT:    s_mov_b64 s[10:11], s[6:7]3687; GFX1032-NEXT:    s_mov_b64 s[4:5], s[0:1]3688; GFX1032-NEXT:    s_mov_b64 s[6:7], s[2:3]3689; GFX1032-NEXT:    v_or3_b32 v31, v0, v1, v23690; GFX1032-NEXT:    s_mov_b64 s[0:1], s[36:37]3691; GFX1032-NEXT:    s_mov_b64 s[2:3], s[38:39]3692; GFX1032-NEXT:    s_mov_b32 s32, 03693; GFX1032-NEXT:    s_waitcnt lgkmcnt(0)3694; GFX1032-NEXT:    s_swappc_b64 s[30:31], s[16:17]3695; GFX1032-NEXT:    v_mov_b32_e32 v2, 03696; GFX1032-NEXT:    v_mov_b32_e32 v3, 0x7ff800003697; GFX1032-NEXT:    s_mov_b32 s0, exec_lo3698; GFX1032-NEXT:  .LBB7_1: ; %ComputeLoop3699; GFX1032-NEXT:    ; =>This Inner Loop Header: Depth=13700; GFX1032-NEXT:    s_ff1_i32_b32 s1, s03701; GFX1032-NEXT:    v_max_f64 v[2:3], v[2:3], v[2:3]3702; GFX1032-NEXT:    v_readlane_b32 s3, v1, s13703; GFX1032-NEXT:    v_readlane_b32 s2, v0, s13704; GFX1032-NEXT:    s_lshl_b32 s1, 1, s13705; GFX1032-NEXT:    s_andn2_b32 s0, s0, s13706; GFX1032-NEXT:    v_max_f64 v[4:5], s[2:3], s[2:3]3707; GFX1032-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]3708; GFX1032-NEXT:    s_cbranch_scc1 .LBB7_13709; GFX1032-NEXT:  ; %bb.2: ; %ComputeEnd3710; GFX1032-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 03711; GFX1032-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v03712; GFX1032-NEXT:    s_and_saveexec_b32 s0, vcc_lo3713; GFX1032-NEXT:    s_xor_b32 s0, exec_lo, s03714; GFX1032-NEXT:    s_cbranch_execz .LBB7_43715; GFX1032-NEXT:  ; %bb.3:3716; GFX1032-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x243717; GFX1032-NEXT:    v_mov_b32_e32 v0, 03718; GFX1032-NEXT:    s_waitcnt lgkmcnt(0)3719; GFX1032-NEXT:    global_atomic_fmax_x2 v0, v[2:3], s[0:1]3720; GFX1032-NEXT:  .LBB7_4:3721; GFX1032-NEXT:    s_endpgm3722;3723; GFX1164-LABEL: global_atomic_fmax_double_uni_address_div_value_agent_scope_unsafe:3724; GFX1164:       ; %bb.0:3725; GFX1164-NEXT:    s_mov_b64 s[34:35], s[4:5]3726; GFX1164-NEXT:    s_mov_b32 s12, s83727; GFX1164-NEXT:    s_add_u32 s8, s34, 443728; GFX1164-NEXT:    s_mov_b32 s13, s93729; GFX1164-NEXT:    s_addc_u32 s9, s35, 03730; GFX1164-NEXT:    s_getpc_b64 s[4:5]3731; GFX1164-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+43732; GFX1164-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+123733; GFX1164-NEXT:    v_mov_b32_e32 v31, v03734; GFX1164-NEXT:    s_load_b64 s[16:17], s[4:5], 0x03735; GFX1164-NEXT:    s_mov_b32 s14, s103736; GFX1164-NEXT:    s_mov_b64 s[10:11], s[6:7]3737; GFX1164-NEXT:    s_mov_b64 s[4:5], s[0:1]3738; GFX1164-NEXT:    s_mov_b64 s[6:7], s[2:3]3739; GFX1164-NEXT:    s_mov_b32 s32, 03740; GFX1164-NEXT:    s_waitcnt lgkmcnt(0)3741; GFX1164-NEXT:    s_swappc_b64 s[30:31], s[16:17]3742; GFX1164-NEXT:    v_mov_b32_e32 v4, 03743; GFX1164-NEXT:    v_mov_b32_e32 v5, 0x7ff800003744; GFX1164-NEXT:    s_mov_b64 s[0:1], exec3745; GFX1164-NEXT:  .LBB7_1: ; %ComputeLoop3746; GFX1164-NEXT:    ; =>This Inner Loop Header: Depth=13747; GFX1164-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_1)3748; GFX1164-NEXT:    s_ctz_i32_b64 s4, s[0:1]3749; GFX1164-NEXT:    v_max_f64 v[2:3], v[4:5], v[4:5]3750; GFX1164-NEXT:    v_readlane_b32 s3, v1, s43751; GFX1164-NEXT:    v_readlane_b32 s2, v0, s43752; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1)3753; GFX1164-NEXT:    v_max_f64 v[4:5], s[2:3], s[2:3]3754; GFX1164-NEXT:    s_lshl_b64 s[2:3], 1, s43755; GFX1164-NEXT:    s_and_not1_b64 s[0:1], s[0:1], s[2:3]3756; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1)3757; GFX1164-NEXT:    v_max_f64 v[4:5], v[2:3], v[4:5]3758; GFX1164-NEXT:    s_cbranch_scc1 .LBB7_13759; GFX1164-NEXT:  ; %bb.2: ; %ComputeEnd3760; GFX1164-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 03761; GFX1164-NEXT:    s_mov_b64 s[0:1], exec3762; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3763; GFX1164-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v03764; GFX1164-NEXT:    v_cmpx_eq_u32_e32 0, v03765; GFX1164-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]3766; GFX1164-NEXT:    s_cbranch_execz .LBB7_53767; GFX1164-NEXT:  ; %bb.3:3768; GFX1164-NEXT:    s_load_b64 s[0:1], s[34:35], 0x243769; GFX1164-NEXT:    v_mov_b32_e32 v6, 03770; GFX1164-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]3771; GFX1164-NEXT:    s_mov_b64 s[2:3], 03772; GFX1164-NEXT:    s_waitcnt lgkmcnt(0)3773; GFX1164-NEXT:    global_load_b64 v[2:3], v6, s[0:1]3774; GFX1164-NEXT:  .LBB7_4: ; %atomicrmw.start3775; GFX1164-NEXT:    ; =>This Inner Loop Header: Depth=13776; GFX1164-NEXT:    s_waitcnt vmcnt(0)3777; GFX1164-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]3778; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1)3779; GFX1164-NEXT:    v_max_f64 v[0:1], v[0:1], v[4:5]3780; GFX1164-NEXT:    global_atomic_cmpswap_b64 v[0:1], v6, v[0:3], s[0:1] glc3781; GFX1164-NEXT:    s_waitcnt vmcnt(0)3782; GFX1164-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[2:3]3783; GFX1164-NEXT:    v_mov_b32_e32 v3, v13784; GFX1164-NEXT:    v_mov_b32_e32 v2, v03785; GFX1164-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]3786; GFX1164-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)3787; GFX1164-NEXT:    s_and_not1_b64 exec, exec, s[2:3]3788; GFX1164-NEXT:    s_cbranch_execnz .LBB7_43789; GFX1164-NEXT:  .LBB7_5:3790; GFX1164-NEXT:    s_endpgm3791;3792; GFX1132-LABEL: global_atomic_fmax_double_uni_address_div_value_agent_scope_unsafe:3793; GFX1132:       ; %bb.0:3794; GFX1132-NEXT:    s_mov_b64 s[34:35], s[4:5]3795; GFX1132-NEXT:    v_mov_b32_e32 v31, v03796; GFX1132-NEXT:    s_add_u32 s8, s34, 443797; GFX1132-NEXT:    s_addc_u32 s9, s35, 03798; GFX1132-NEXT:    s_getpc_b64 s[4:5]3799; GFX1132-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+43800; GFX1132-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+123801; GFX1132-NEXT:    s_mov_b32 s12, s133802; GFX1132-NEXT:    s_load_b64 s[16:17], s[4:5], 0x03803; GFX1132-NEXT:    s_mov_b64 s[10:11], s[6:7]3804; GFX1132-NEXT:    s_mov_b64 s[4:5], s[0:1]3805; GFX1132-NEXT:    s_mov_b64 s[6:7], s[2:3]3806; GFX1132-NEXT:    s_mov_b32 s13, s143807; GFX1132-NEXT:    s_mov_b32 s14, s153808; GFX1132-NEXT:    s_mov_b32 s32, 03809; GFX1132-NEXT:    s_waitcnt lgkmcnt(0)3810; GFX1132-NEXT:    s_swappc_b64 s[30:31], s[16:17]3811; GFX1132-NEXT:    v_mov_b32_e32 v4, 03812; GFX1132-NEXT:    v_mov_b32_e32 v5, 0x7ff800003813; GFX1132-NEXT:    s_mov_b32 s0, exec_lo3814; GFX1132-NEXT:  .LBB7_1: ; %ComputeLoop3815; GFX1132-NEXT:    ; =>This Inner Loop Header: Depth=13816; GFX1132-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_1)3817; GFX1132-NEXT:    s_ctz_i32_b32 s1, s03818; GFX1132-NEXT:    v_max_f64 v[2:3], v[4:5], v[4:5]3819; GFX1132-NEXT:    v_readlane_b32 s3, v1, s13820; GFX1132-NEXT:    v_readlane_b32 s2, v0, s13821; GFX1132-NEXT:    s_lshl_b32 s1, 1, s13822; GFX1132-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_1) | instid1(VALU_DEP_1)3823; GFX1132-NEXT:    s_and_not1_b32 s0, s0, s13824; GFX1132-NEXT:    v_max_f64 v[4:5], s[2:3], s[2:3]3825; GFX1132-NEXT:    v_max_f64 v[4:5], v[2:3], v[4:5]3826; GFX1132-NEXT:    s_cbranch_scc1 .LBB7_13827; GFX1132-NEXT:  ; %bb.2: ; %ComputeEnd3828; GFX1132-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 03829; GFX1132-NEXT:    s_mov_b32 s2, 03830; GFX1132-NEXT:    s_mov_b32 s0, exec_lo3831; GFX1132-NEXT:    s_delay_alu instid0(VALU_DEP_1)3832; GFX1132-NEXT:    v_cmpx_eq_u32_e32 0, v03833; GFX1132-NEXT:    s_xor_b32 s0, exec_lo, s03834; GFX1132-NEXT:    s_cbranch_execz .LBB7_53835; GFX1132-NEXT:  ; %bb.3:3836; GFX1132-NEXT:    s_load_b64 s[0:1], s[34:35], 0x243837; GFX1132-NEXT:    v_mov_b32_e32 v6, 03838; GFX1132-NEXT:    s_delay_alu instid0(VALU_DEP_4)3839; GFX1132-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]3840; GFX1132-NEXT:    s_waitcnt lgkmcnt(0)3841; GFX1132-NEXT:    global_load_b64 v[2:3], v6, s[0:1]3842; GFX1132-NEXT:  .LBB7_4: ; %atomicrmw.start3843; GFX1132-NEXT:    ; =>This Inner Loop Header: Depth=13844; GFX1132-NEXT:    s_waitcnt vmcnt(0)3845; GFX1132-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]3846; GFX1132-NEXT:    s_delay_alu instid0(VALU_DEP_1)3847; GFX1132-NEXT:    v_max_f64 v[0:1], v[0:1], v[4:5]3848; GFX1132-NEXT:    global_atomic_cmpswap_b64 v[0:1], v6, v[0:3], s[0:1] glc3849; GFX1132-NEXT:    s_waitcnt vmcnt(0)3850; GFX1132-NEXT:    v_cmp_eq_u64_e32 vcc_lo, v[0:1], v[2:3]3851; GFX1132-NEXT:    v_dual_mov_b32 v3, v1 :: v_dual_mov_b32 v2, v03852; GFX1132-NEXT:    s_or_b32 s2, vcc_lo, s23853; GFX1132-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)3854; GFX1132-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s23855; GFX1132-NEXT:    s_cbranch_execnz .LBB7_43856; GFX1132-NEXT:  .LBB7_5:3857; GFX1132-NEXT:    s_endpgm3858;3859; GFX7LESS-DPP-LABEL: global_atomic_fmax_double_uni_address_div_value_agent_scope_unsafe:3860; GFX7LESS-DPP:       ; %bb.0:3861; GFX7LESS-DPP-NEXT:    s_mov_b32 s32, 03862; GFX7LESS-DPP-NEXT:    s_mov_b32 s48, SCRATCH_RSRC_DWORD03863; GFX7LESS-DPP-NEXT:    s_mov_b32 s49, SCRATCH_RSRC_DWORD13864; GFX7LESS-DPP-NEXT:    s_mov_b32 s50, -13865; GFX7LESS-DPP-NEXT:    s_mov_b32 s51, 0xe8f0003866; GFX7LESS-DPP-NEXT:    s_add_u32 s48, s48, s113867; GFX7LESS-DPP-NEXT:    s_addc_u32 s49, s49, 03868; GFX7LESS-DPP-NEXT:    s_mov_b32 s14, s103869; GFX7LESS-DPP-NEXT:    s_mov_b32 s13, s93870; GFX7LESS-DPP-NEXT:    s_mov_b32 s12, s83871; GFX7LESS-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]3872; GFX7LESS-DPP-NEXT:    s_load_dwordx2 s[36:37], s[4:5], 0x93873; GFX7LESS-DPP-NEXT:    s_mov_b32 s39, 0xf0003874; GFX7LESS-DPP-NEXT:    s_mov_b32 s38, -13875; GFX7LESS-DPP-NEXT:    s_add_u32 s8, s4, 443876; GFX7LESS-DPP-NEXT:    s_addc_u32 s9, s5, 03877; GFX7LESS-DPP-NEXT:    s_getpc_b64 s[4:5]3878; GFX7LESS-DPP-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+43879; GFX7LESS-DPP-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+123880; GFX7LESS-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x03881; GFX7LESS-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v23882; GFX7LESS-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v13883; GFX7LESS-DPP-NEXT:    v_or_b32_e32 v0, v0, v13884; GFX7LESS-DPP-NEXT:    v_or_b32_e32 v31, v0, v23885; GFX7LESS-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]3886; GFX7LESS-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]3887; GFX7LESS-DPP-NEXT:    s_mov_b64 s[0:1], s[48:49]3888; GFX7LESS-DPP-NEXT:    s_mov_b64 s[2:3], s[50:51]3889; GFX7LESS-DPP-NEXT:    s_waitcnt lgkmcnt(0)3890; GFX7LESS-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]3891; GFX7LESS-DPP-NEXT:    buffer_load_dwordx2 v[2:3], off, s[36:39], 03892; GFX7LESS-DPP-NEXT:    s_mov_b64 s[0:1], 03893; GFX7LESS-DPP-NEXT:    v_max_f64 v[4:5], v[0:1], v[0:1]3894; GFX7LESS-DPP-NEXT:  .LBB7_1: ; %atomicrmw.start3895; GFX7LESS-DPP-NEXT:    ; =>This Inner Loop Header: Depth=13896; GFX7LESS-DPP-NEXT:    s_waitcnt vmcnt(0)3897; GFX7LESS-DPP-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]3898; GFX7LESS-DPP-NEXT:    v_max_f64 v[0:1], v[0:1], v[4:5]3899; GFX7LESS-DPP-NEXT:    s_waitcnt expcnt(0)3900; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v9, v33901; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v8, v23902; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v7, v13903; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v6, v03904; GFX7LESS-DPP-NEXT:    buffer_atomic_cmpswap_x2 v[6:9], off, s[36:39], 0 glc3905; GFX7LESS-DPP-NEXT:    s_waitcnt vmcnt(0)3906; GFX7LESS-DPP-NEXT:    v_cmp_eq_u64_e32 vcc, v[6:7], v[2:3]3907; GFX7LESS-DPP-NEXT:    s_or_b64 s[0:1], vcc, s[0:1]3908; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v2, v63909; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v3, v73910; GFX7LESS-DPP-NEXT:    s_andn2_b64 exec, exec, s[0:1]3911; GFX7LESS-DPP-NEXT:    s_cbranch_execnz .LBB7_13912; GFX7LESS-DPP-NEXT:  ; %bb.2: ; %atomicrmw.end3913; GFX7LESS-DPP-NEXT:    s_endpgm3914;3915; GFX9-DPP-LABEL: global_atomic_fmax_double_uni_address_div_value_agent_scope_unsafe:3916; GFX9-DPP:       ; %bb.0:3917; GFX9-DPP-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD03918; GFX9-DPP-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD13919; GFX9-DPP-NEXT:    s_mov_b32 s38, -13920; GFX9-DPP-NEXT:    s_mov_b32 s39, 0xe000003921; GFX9-DPP-NEXT:    s_add_u32 s36, s36, s113922; GFX9-DPP-NEXT:    s_addc_u32 s37, s37, 03923; GFX9-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]3924; GFX9-DPP-NEXT:    s_mov_b32 s12, s83925; GFX9-DPP-NEXT:    s_add_u32 s8, s34, 443926; GFX9-DPP-NEXT:    s_mov_b32 s13, s93927; GFX9-DPP-NEXT:    s_addc_u32 s9, s35, 03928; GFX9-DPP-NEXT:    s_getpc_b64 s[4:5]3929; GFX9-DPP-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+43930; GFX9-DPP-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+123931; GFX9-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x03932; GFX9-DPP-NEXT:    s_mov_b32 s14, s103933; GFX9-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]3934; GFX9-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v23935; GFX9-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v13936; GFX9-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]3937; GFX9-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]3938; GFX9-DPP-NEXT:    s_mov_b64 s[0:1], s[36:37]3939; GFX9-DPP-NEXT:    v_or3_b32 v31, v0, v1, v23940; GFX9-DPP-NEXT:    s_mov_b64 s[2:3], s[38:39]3941; GFX9-DPP-NEXT:    s_mov_b32 s32, 03942; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)3943; GFX9-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]3944; GFX9-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -13945; GFX9-DPP-NEXT:    v_mov_b32_e32 v4, 0x7ff800003946; GFX9-DPP-NEXT:    v_cndmask_b32_e64 v6, v4, v1, s[0:1]3947; GFX9-DPP-NEXT:    v_cndmask_b32_e64 v5, 0, v0, s[0:1]3948; GFX9-DPP-NEXT:    v_mov_b32_e32 v8, 0x7ff800003949; GFX9-DPP-NEXT:    v_mov_b32_e32 v7, 03950; GFX9-DPP-NEXT:    v_mov_b32_e32 v3, 03951; GFX9-DPP-NEXT:    v_mov_b32_dpp v8, v6 row_shr:1 row_mask:0xf bank_mask:0xf3952; GFX9-DPP-NEXT:    v_mov_b32_dpp v7, v5 row_shr:1 row_mask:0xf bank_mask:0xf3953; GFX9-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]3954; GFX9-DPP-NEXT:    v_max_f64 v[7:8], v[7:8], v[7:8]3955; GFX9-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[7:8]3956; GFX9-DPP-NEXT:    v_mov_b32_e32 v8, 0x7ff800003957; GFX9-DPP-NEXT:    v_mov_b32_e32 v7, 03958; GFX9-DPP-NEXT:    s_nop 03959; GFX9-DPP-NEXT:    v_mov_b32_dpp v8, v6 row_shr:2 row_mask:0xf bank_mask:0xf3960; GFX9-DPP-NEXT:    v_mov_b32_dpp v7, v5 row_shr:2 row_mask:0xf bank_mask:0xf3961; GFX9-DPP-NEXT:    v_max_f64 v[7:8], v[7:8], v[7:8]3962; GFX9-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[7:8]3963; GFX9-DPP-NEXT:    v_mov_b32_e32 v8, 0x7ff800003964; GFX9-DPP-NEXT:    v_mov_b32_e32 v7, 03965; GFX9-DPP-NEXT:    s_nop 03966; GFX9-DPP-NEXT:    v_mov_b32_dpp v8, v6 row_shr:4 row_mask:0xf bank_mask:0xf3967; GFX9-DPP-NEXT:    v_mov_b32_dpp v7, v5 row_shr:4 row_mask:0xf bank_mask:0xf3968; GFX9-DPP-NEXT:    v_max_f64 v[7:8], v[7:8], v[7:8]3969; GFX9-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[7:8]3970; GFX9-DPP-NEXT:    v_mov_b32_e32 v8, 0x7ff800003971; GFX9-DPP-NEXT:    v_mov_b32_e32 v7, 03972; GFX9-DPP-NEXT:    s_nop 03973; GFX9-DPP-NEXT:    v_mov_b32_dpp v8, v6 row_shr:8 row_mask:0xf bank_mask:0xf3974; GFX9-DPP-NEXT:    v_mov_b32_dpp v7, v5 row_shr:8 row_mask:0xf bank_mask:0xf3975; GFX9-DPP-NEXT:    v_max_f64 v[7:8], v[7:8], v[7:8]3976; GFX9-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[7:8]3977; GFX9-DPP-NEXT:    v_mov_b32_e32 v8, 0x7ff800003978; GFX9-DPP-NEXT:    v_mov_b32_e32 v7, 03979; GFX9-DPP-NEXT:    s_nop 03980; GFX9-DPP-NEXT:    v_mov_b32_dpp v8, v6 row_bcast:15 row_mask:0xa bank_mask:0xf3981; GFX9-DPP-NEXT:    v_mov_b32_dpp v7, v5 row_bcast:15 row_mask:0xa bank_mask:0xf3982; GFX9-DPP-NEXT:    v_max_f64 v[7:8], v[7:8], v[7:8]3983; GFX9-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[7:8]3984; GFX9-DPP-NEXT:    s_nop 13985; GFX9-DPP-NEXT:    v_mov_b32_dpp v4, v6 row_bcast:31 row_mask:0xc bank_mask:0xf3986; GFX9-DPP-NEXT:    v_mov_b32_dpp v3, v5 row_bcast:31 row_mask:0xc bank_mask:0xf3987; GFX9-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[3:4]3988; GFX9-DPP-NEXT:    v_max_f64 v[3:4], v[5:6], v[3:4]3989; GFX9-DPP-NEXT:    s_mov_b64 exec, s[0:1]3990; GFX9-DPP-NEXT:    v_mov_b32_e32 v0, 03991; GFX9-DPP-NEXT:    v_mbcnt_lo_u32_b32 v1, exec_lo, 03992; GFX9-DPP-NEXT:    v_mbcnt_hi_u32_b32 v1, exec_hi, v13993; GFX9-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -13994; GFX9-DPP-NEXT:    v_readlane_b32 s3, v4, 633995; GFX9-DPP-NEXT:    v_readlane_b32 s2, v3, 633996; GFX9-DPP-NEXT:    s_mov_b64 exec, s[0:1]3997; GFX9-DPP-NEXT:    s_mov_b64 s[0:1], s[2:3]3998; GFX9-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v13999; GFX9-DPP-NEXT:    s_and_saveexec_b64 s[2:3], vcc4000; GFX9-DPP-NEXT:    s_cbranch_execz .LBB7_34001; GFX9-DPP-NEXT:  ; %bb.1:4002; GFX9-DPP-NEXT:    s_load_dwordx2 s[2:3], s[34:35], 0x244003; GFX9-DPP-NEXT:    s_mov_b64 s[4:5], 04004; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)4005; GFX9-DPP-NEXT:    global_load_dwordx2 v[11:12], v0, s[2:3]4006; GFX9-DPP-NEXT:  .LBB7_2: ; %atomicrmw.start4007; GFX9-DPP-NEXT:    ; =>This Inner Loop Header: Depth=14008; GFX9-DPP-NEXT:    v_max_f64 v[1:2], s[0:1], s[0:1]4009; GFX9-DPP-NEXT:    s_waitcnt vmcnt(0)4010; GFX9-DPP-NEXT:    v_max_f64 v[9:10], v[11:12], v[11:12]4011; GFX9-DPP-NEXT:    v_max_f64 v[9:10], v[9:10], v[1:2]4012; GFX9-DPP-NEXT:    global_atomic_cmpswap_x2 v[1:2], v0, v[9:12], s[2:3] glc4013; GFX9-DPP-NEXT:    s_waitcnt vmcnt(0)4014; GFX9-DPP-NEXT:    v_cmp_eq_u64_e32 vcc, v[1:2], v[11:12]4015; GFX9-DPP-NEXT:    v_mov_b32_e32 v12, v24016; GFX9-DPP-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]4017; GFX9-DPP-NEXT:    v_mov_b32_e32 v11, v14018; GFX9-DPP-NEXT:    s_andn2_b64 exec, exec, s[4:5]4019; GFX9-DPP-NEXT:    s_cbranch_execnz .LBB7_24020; GFX9-DPP-NEXT:  .LBB7_3:4021; GFX9-DPP-NEXT:    s_endpgm4022;4023; GFX1064-DPP-LABEL: global_atomic_fmax_double_uni_address_div_value_agent_scope_unsafe:4024; GFX1064-DPP:       ; %bb.0:4025; GFX1064-DPP-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD04026; GFX1064-DPP-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD14027; GFX1064-DPP-NEXT:    s_mov_b32 s38, -14028; GFX1064-DPP-NEXT:    s_mov_b32 s39, 0x31e160004029; GFX1064-DPP-NEXT:    s_add_u32 s36, s36, s114030; GFX1064-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]4031; GFX1064-DPP-NEXT:    s_addc_u32 s37, s37, 04032; GFX1064-DPP-NEXT:    s_mov_b32 s12, s84033; GFX1064-DPP-NEXT:    s_add_u32 s8, s34, 444034; GFX1064-DPP-NEXT:    s_mov_b32 s13, s94035; GFX1064-DPP-NEXT:    s_addc_u32 s9, s35, 04036; GFX1064-DPP-NEXT:    s_getpc_b64 s[4:5]4037; GFX1064-DPP-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+44038; GFX1064-DPP-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+124039; GFX1064-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v24040; GFX1064-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x04041; GFX1064-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v14042; GFX1064-DPP-NEXT:    s_mov_b32 s14, s104043; GFX1064-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]4044; GFX1064-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]4045; GFX1064-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]4046; GFX1064-DPP-NEXT:    v_or3_b32 v31, v0, v1, v24047; GFX1064-DPP-NEXT:    s_mov_b64 s[0:1], s[36:37]4048; GFX1064-DPP-NEXT:    s_mov_b64 s[2:3], s[38:39]4049; GFX1064-DPP-NEXT:    s_mov_b32 s32, 04050; GFX1064-DPP-NEXT:    s_waitcnt lgkmcnt(0)4051; GFX1064-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]4052; GFX1064-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -14053; GFX1064-DPP-NEXT:    v_mov_b32_e32 v4, 0x7ff800004054; GFX1064-DPP-NEXT:    v_mov_b32_e32 v3, 04055; GFX1064-DPP-NEXT:    v_cndmask_b32_e64 v6, 0x7ff80000, v1, s[0:1]4056; GFX1064-DPP-NEXT:    v_cndmask_b32_e64 v5, 0, v0, s[0:1]4057; GFX1064-DPP-NEXT:    v_mov_b32_dpp v4, v6 row_xmask:1 row_mask:0xf bank_mask:0xf4058; GFX1064-DPP-NEXT:    v_mov_b32_dpp v3, v5 row_xmask:1 row_mask:0xf bank_mask:0xf4059; GFX1064-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]4060; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[3:4]4061; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], v[5:6], v[3:4]4062; GFX1064-DPP-NEXT:    v_mov_b32_e32 v6, 0x7ff800004063; GFX1064-DPP-NEXT:    v_mov_b32_e32 v5, 04064; GFX1064-DPP-NEXT:    v_mov_b32_dpp v6, v4 row_xmask:2 row_mask:0xf bank_mask:0xf4065; GFX1064-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:2 row_mask:0xf bank_mask:0xf4066; GFX1064-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]4067; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]4068; GFX1064-DPP-NEXT:    v_mov_b32_e32 v6, 0x7ff800004069; GFX1064-DPP-NEXT:    v_mov_b32_e32 v5, 04070; GFX1064-DPP-NEXT:    v_mov_b32_dpp v6, v4 row_xmask:4 row_mask:0xf bank_mask:0xf4071; GFX1064-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:4 row_mask:0xf bank_mask:0xf4072; GFX1064-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]4073; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]4074; GFX1064-DPP-NEXT:    v_mov_b32_e32 v6, 0x7ff800004075; GFX1064-DPP-NEXT:    v_mov_b32_e32 v5, 04076; GFX1064-DPP-NEXT:    v_mov_b32_dpp v6, v4 row_xmask:8 row_mask:0xf bank_mask:0xf4077; GFX1064-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:8 row_mask:0xf bank_mask:0xf4078; GFX1064-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]4079; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]4080; GFX1064-DPP-NEXT:    v_permlanex16_b32 v6, v4, 0, 04081; GFX1064-DPP-NEXT:    v_permlanex16_b32 v5, v3, 0, 04082; GFX1064-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]4083; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]4084; GFX1064-DPP-NEXT:    v_readlane_b32 s3, v4, 04085; GFX1064-DPP-NEXT:    v_readlane_b32 s5, v4, 324086; GFX1064-DPP-NEXT:    v_readlane_b32 s4, v3, 324087; GFX1064-DPP-NEXT:    v_readlane_b32 s2, v3, 04088; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], s[4:5], s[4:5]4089; GFX1064-DPP-NEXT:    v_max_f64 v[5:6], s[2:3], s[2:3]4090; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], v[5:6], v[3:4]4091; GFX1064-DPP-NEXT:    s_mov_b64 exec, s[0:1]4092; GFX1064-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 04093; GFX1064-DPP-NEXT:    v_mov_b32_e32 v2, 04094; GFX1064-DPP-NEXT:    v_mbcnt_hi_u32_b32 v7, exec_hi, v04095; GFX1064-DPP-NEXT:    v_mov_b32_e32 v0, v34096; GFX1064-DPP-NEXT:    v_mov_b32_e32 v1, v44097; GFX1064-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v74098; GFX1064-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc4099; GFX1064-DPP-NEXT:    s_cbranch_execz .LBB7_24100; GFX1064-DPP-NEXT:  ; %bb.1:4101; GFX1064-DPP-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x244102; GFX1064-DPP-NEXT:    s_waitcnt lgkmcnt(0)4103; GFX1064-DPP-NEXT:    global_atomic_fmax_x2 v2, v[0:1], s[0:1]4104; GFX1064-DPP-NEXT:  .LBB7_2:4105; GFX1064-DPP-NEXT:    s_endpgm4106;4107; GFX1032-DPP-LABEL: global_atomic_fmax_double_uni_address_div_value_agent_scope_unsafe:4108; GFX1032-DPP:       ; %bb.0:4109; GFX1032-DPP-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD04110; GFX1032-DPP-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD14111; GFX1032-DPP-NEXT:    s_mov_b32 s38, -14112; GFX1032-DPP-NEXT:    s_mov_b32 s39, 0x31c160004113; GFX1032-DPP-NEXT:    s_add_u32 s36, s36, s114114; GFX1032-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]4115; GFX1032-DPP-NEXT:    s_addc_u32 s37, s37, 04116; GFX1032-DPP-NEXT:    s_mov_b32 s12, s84117; GFX1032-DPP-NEXT:    s_add_u32 s8, s34, 444118; GFX1032-DPP-NEXT:    s_mov_b32 s13, s94119; GFX1032-DPP-NEXT:    s_addc_u32 s9, s35, 04120; GFX1032-DPP-NEXT:    s_getpc_b64 s[4:5]4121; GFX1032-DPP-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+44122; GFX1032-DPP-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+124123; GFX1032-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v24124; GFX1032-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x04125; GFX1032-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v14126; GFX1032-DPP-NEXT:    s_mov_b32 s14, s104127; GFX1032-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]4128; GFX1032-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]4129; GFX1032-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]4130; GFX1032-DPP-NEXT:    v_or3_b32 v31, v0, v1, v24131; GFX1032-DPP-NEXT:    s_mov_b64 s[0:1], s[36:37]4132; GFX1032-DPP-NEXT:    s_mov_b64 s[2:3], s[38:39]4133; GFX1032-DPP-NEXT:    s_mov_b32 s32, 04134; GFX1032-DPP-NEXT:    s_waitcnt lgkmcnt(0)4135; GFX1032-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]4136; GFX1032-DPP-NEXT:    s_or_saveexec_b32 s0, -14137; GFX1032-DPP-NEXT:    v_mov_b32_e32 v4, 0x7ff800004138; GFX1032-DPP-NEXT:    v_mov_b32_e32 v3, 04139; GFX1032-DPP-NEXT:    v_cndmask_b32_e64 v6, 0x7ff80000, v1, s04140; GFX1032-DPP-NEXT:    v_cndmask_b32_e64 v5, 0, v0, s04141; GFX1032-DPP-NEXT:    v_mov_b32_dpp v4, v6 row_xmask:1 row_mask:0xf bank_mask:0xf4142; GFX1032-DPP-NEXT:    v_mov_b32_dpp v3, v5 row_xmask:1 row_mask:0xf bank_mask:0xf4143; GFX1032-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]4144; GFX1032-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[3:4]4145; GFX1032-DPP-NEXT:    v_max_f64 v[3:4], v[5:6], v[3:4]4146; GFX1032-DPP-NEXT:    v_mov_b32_e32 v6, 0x7ff800004147; GFX1032-DPP-NEXT:    v_mov_b32_e32 v5, 04148; GFX1032-DPP-NEXT:    v_mov_b32_dpp v6, v4 row_xmask:2 row_mask:0xf bank_mask:0xf4149; GFX1032-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:2 row_mask:0xf bank_mask:0xf4150; GFX1032-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]4151; GFX1032-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]4152; GFX1032-DPP-NEXT:    v_mov_b32_e32 v6, 0x7ff800004153; GFX1032-DPP-NEXT:    v_mov_b32_e32 v5, 04154; GFX1032-DPP-NEXT:    v_mov_b32_dpp v6, v4 row_xmask:4 row_mask:0xf bank_mask:0xf4155; GFX1032-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:4 row_mask:0xf bank_mask:0xf4156; GFX1032-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]4157; GFX1032-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]4158; GFX1032-DPP-NEXT:    v_mov_b32_e32 v6, 0x7ff800004159; GFX1032-DPP-NEXT:    v_mov_b32_e32 v5, 04160; GFX1032-DPP-NEXT:    v_mov_b32_dpp v6, v4 row_xmask:8 row_mask:0xf bank_mask:0xf4161; GFX1032-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:8 row_mask:0xf bank_mask:0xf4162; GFX1032-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]4163; GFX1032-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]4164; GFX1032-DPP-NEXT:    v_permlanex16_b32 v6, v4, 0, 04165; GFX1032-DPP-NEXT:    v_permlanex16_b32 v5, v3, 0, 04166; GFX1032-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]4167; GFX1032-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]4168; GFX1032-DPP-NEXT:    s_mov_b32 exec_lo, s04169; GFX1032-DPP-NEXT:    v_mbcnt_lo_u32_b32 v7, exec_lo, 04170; GFX1032-DPP-NEXT:    v_mov_b32_e32 v0, v34171; GFX1032-DPP-NEXT:    v_mov_b32_e32 v2, 04172; GFX1032-DPP-NEXT:    v_mov_b32_e32 v1, v44173; GFX1032-DPP-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v74174; GFX1032-DPP-NEXT:    s_and_saveexec_b32 s0, vcc_lo4175; GFX1032-DPP-NEXT:    s_cbranch_execz .LBB7_24176; GFX1032-DPP-NEXT:  ; %bb.1:4177; GFX1032-DPP-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x244178; GFX1032-DPP-NEXT:    s_waitcnt lgkmcnt(0)4179; GFX1032-DPP-NEXT:    global_atomic_fmax_x2 v2, v[0:1], s[0:1]4180; GFX1032-DPP-NEXT:  .LBB7_2:4181; GFX1032-DPP-NEXT:    s_endpgm4182;4183; GFX1164-DPP-LABEL: global_atomic_fmax_double_uni_address_div_value_agent_scope_unsafe:4184; GFX1164-DPP:       ; %bb.0:4185; GFX1164-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]4186; GFX1164-DPP-NEXT:    s_mov_b32 s12, s84187; GFX1164-DPP-NEXT:    s_add_u32 s8, s34, 444188; GFX1164-DPP-NEXT:    s_mov_b32 s13, s94189; GFX1164-DPP-NEXT:    s_addc_u32 s9, s35, 04190; GFX1164-DPP-NEXT:    s_getpc_b64 s[4:5]4191; GFX1164-DPP-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+44192; GFX1164-DPP-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+124193; GFX1164-DPP-NEXT:    v_mov_b32_e32 v31, v04194; GFX1164-DPP-NEXT:    s_load_b64 s[16:17], s[4:5], 0x04195; GFX1164-DPP-NEXT:    s_mov_b32 s14, s104196; GFX1164-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]4197; GFX1164-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]4198; GFX1164-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]4199; GFX1164-DPP-NEXT:    s_mov_b32 s32, 04200; GFX1164-DPP-NEXT:    s_waitcnt lgkmcnt(0)4201; GFX1164-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]4202; GFX1164-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -14203; GFX1164-DPP-NEXT:    v_mov_b32_e32 v3, 0x7ff800004204; GFX1164-DPP-NEXT:    v_mov_b32_e32 v2, 04205; GFX1164-DPP-NEXT:    v_cndmask_b32_e64 v5, 0x7ff80000, v1, s[0:1]4206; GFX1164-DPP-NEXT:    v_cndmask_b32_e64 v4, 0, v0, s[0:1]4207; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)4208; GFX1164-DPP-NEXT:    v_mov_b32_dpp v3, v5 row_xmask:1 row_mask:0xf bank_mask:0xf4209; GFX1164-DPP-NEXT:    v_mov_b32_dpp v2, v4 row_xmask:1 row_mask:0xf bank_mask:0xf4210; GFX1164-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]4211; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)4212; GFX1164-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[2:3]4213; GFX1164-DPP-NEXT:    v_max_f64 v[2:3], v[4:5], v[2:3]4214; GFX1164-DPP-NEXT:    v_mov_b32_e32 v5, 0x7ff800004215; GFX1164-DPP-NEXT:    v_mov_b32_e32 v4, 04216; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)4217; GFX1164-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:2 row_mask:0xf bank_mask:0xf4218; GFX1164-DPP-NEXT:    v_mov_b32_dpp v4, v2 row_xmask:2 row_mask:0xf bank_mask:0xf4219; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4220; GFX1164-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]4221; GFX1164-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]4222; GFX1164-DPP-NEXT:    v_mov_b32_e32 v5, 0x7ff800004223; GFX1164-DPP-NEXT:    v_mov_b32_e32 v4, 04224; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)4225; GFX1164-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:4 row_mask:0xf bank_mask:0xf4226; GFX1164-DPP-NEXT:    v_mov_b32_dpp v4, v2 row_xmask:4 row_mask:0xf bank_mask:0xf4227; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4228; GFX1164-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]4229; GFX1164-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]4230; GFX1164-DPP-NEXT:    v_mov_b32_e32 v5, 0x7ff800004231; GFX1164-DPP-NEXT:    v_mov_b32_e32 v4, 04232; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)4233; GFX1164-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:8 row_mask:0xf bank_mask:0xf4234; GFX1164-DPP-NEXT:    v_mov_b32_dpp v4, v2 row_xmask:8 row_mask:0xf bank_mask:0xf4235; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4236; GFX1164-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]4237; GFX1164-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]4238; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)4239; GFX1164-DPP-NEXT:    v_permlanex16_b32 v5, v3, 0, 04240; GFX1164-DPP-NEXT:    v_permlanex16_b32 v4, v2, 0, 04241; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4242; GFX1164-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]4243; GFX1164-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]4244; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)4245; GFX1164-DPP-NEXT:    v_permlane64_b32 v5, v34246; GFX1164-DPP-NEXT:    v_permlane64_b32 v4, v24247; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4248; GFX1164-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]4249; GFX1164-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]4250; GFX1164-DPP-NEXT:    s_mov_b64 exec, s[0:1]4251; GFX1164-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_3) | instid1(VALU_DEP_2)4252; GFX1164-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 04253; GFX1164-DPP-NEXT:    v_mov_b32_e32 v10, 04254; GFX1164-DPP-NEXT:    s_mov_b64 s[0:1], exec4255; GFX1164-DPP-NEXT:    s_waitcnt_depctr depctr_sa_sdst(0)4256; GFX1164-DPP-NEXT:    v_mbcnt_hi_u32_b32 v6, exec_hi, v04257; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_4) | instskip(SKIP_1) | instid1(VALU_DEP_3)4258; GFX1164-DPP-NEXT:    v_mov_b32_e32 v0, v24259; GFX1164-DPP-NEXT:    v_mov_b32_e32 v1, v34260; GFX1164-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v64261; GFX1164-DPP-NEXT:    s_cbranch_execz .LBB7_34262; GFX1164-DPP-NEXT:  ; %bb.1:4263; GFX1164-DPP-NEXT:    s_load_b64 s[0:1], s[34:35], 0x244264; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2)4265; GFX1164-DPP-NEXT:    v_max_f64 v[0:1], v[0:1], v[0:1]4266; GFX1164-DPP-NEXT:    s_mov_b64 s[2:3], 04267; GFX1164-DPP-NEXT:    s_waitcnt lgkmcnt(0)4268; GFX1164-DPP-NEXT:    global_load_b64 v[8:9], v10, s[0:1]4269; GFX1164-DPP-NEXT:  .LBB7_2: ; %atomicrmw.start4270; GFX1164-DPP-NEXT:    ; =>This Inner Loop Header: Depth=14271; GFX1164-DPP-NEXT:    s_waitcnt vmcnt(0)4272; GFX1164-DPP-NEXT:    v_max_f64 v[6:7], v[8:9], v[8:9]4273; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1)4274; GFX1164-DPP-NEXT:    v_max_f64 v[6:7], v[6:7], v[0:1]4275; GFX1164-DPP-NEXT:    global_atomic_cmpswap_b64 v[6:7], v10, v[6:9], s[0:1] glc4276; GFX1164-DPP-NEXT:    s_waitcnt vmcnt(0)4277; GFX1164-DPP-NEXT:    v_cmp_eq_u64_e32 vcc, v[6:7], v[8:9]4278; GFX1164-DPP-NEXT:    v_mov_b32_e32 v9, v74279; GFX1164-DPP-NEXT:    v_mov_b32_e32 v8, v64280; GFX1164-DPP-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]4281; GFX1164-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4282; GFX1164-DPP-NEXT:    s_and_not1_b64 exec, exec, s[2:3]4283; GFX1164-DPP-NEXT:    s_cbranch_execnz .LBB7_24284; GFX1164-DPP-NEXT:  .LBB7_3:4285; GFX1164-DPP-NEXT:    s_endpgm4286;4287; GFX1132-DPP-LABEL: global_atomic_fmax_double_uni_address_div_value_agent_scope_unsafe:4288; GFX1132-DPP:       ; %bb.0:4289; GFX1132-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]4290; GFX1132-DPP-NEXT:    v_mov_b32_e32 v31, v04291; GFX1132-DPP-NEXT:    s_add_u32 s8, s34, 444292; GFX1132-DPP-NEXT:    s_addc_u32 s9, s35, 04293; GFX1132-DPP-NEXT:    s_getpc_b64 s[4:5]4294; GFX1132-DPP-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+44295; GFX1132-DPP-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+124296; GFX1132-DPP-NEXT:    s_mov_b32 s12, s134297; GFX1132-DPP-NEXT:    s_load_b64 s[16:17], s[4:5], 0x04298; GFX1132-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]4299; GFX1132-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]4300; GFX1132-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]4301; GFX1132-DPP-NEXT:    s_mov_b32 s13, s144302; GFX1132-DPP-NEXT:    s_mov_b32 s14, s154303; GFX1132-DPP-NEXT:    s_mov_b32 s32, 04304; GFX1132-DPP-NEXT:    s_waitcnt lgkmcnt(0)4305; GFX1132-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]4306; GFX1132-DPP-NEXT:    s_or_saveexec_b32 s0, -14307; GFX1132-DPP-NEXT:    v_dual_mov_b32 v3, 0x7ff80000 :: v_dual_mov_b32 v2, 04308; GFX1132-DPP-NEXT:    v_cndmask_b32_e64 v5, 0x7ff80000, v1, s04309; GFX1132-DPP-NEXT:    v_cndmask_b32_e64 v4, 0, v0, s04310; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)4311; GFX1132-DPP-NEXT:    v_mov_b32_dpp v3, v5 row_xmask:1 row_mask:0xf bank_mask:0xf4312; GFX1132-DPP-NEXT:    v_mov_b32_dpp v2, v4 row_xmask:1 row_mask:0xf bank_mask:0xf4313; GFX1132-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]4314; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)4315; GFX1132-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[2:3]4316; GFX1132-DPP-NEXT:    v_max_f64 v[2:3], v[4:5], v[2:3]4317; GFX1132-DPP-NEXT:    v_dual_mov_b32 v5, 0x7ff80000 :: v_dual_mov_b32 v4, 04318; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)4319; GFX1132-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:2 row_mask:0xf bank_mask:0xf4320; GFX1132-DPP-NEXT:    v_mov_b32_dpp v4, v2 row_xmask:2 row_mask:0xf bank_mask:0xf4321; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4322; GFX1132-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]4323; GFX1132-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]4324; GFX1132-DPP-NEXT:    v_dual_mov_b32 v5, 0x7ff80000 :: v_dual_mov_b32 v4, 04325; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)4326; GFX1132-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:4 row_mask:0xf bank_mask:0xf4327; GFX1132-DPP-NEXT:    v_mov_b32_dpp v4, v2 row_xmask:4 row_mask:0xf bank_mask:0xf4328; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4329; GFX1132-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]4330; GFX1132-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]4331; GFX1132-DPP-NEXT:    v_dual_mov_b32 v5, 0x7ff80000 :: v_dual_mov_b32 v4, 04332; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)4333; GFX1132-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:8 row_mask:0xf bank_mask:0xf4334; GFX1132-DPP-NEXT:    v_mov_b32_dpp v4, v2 row_xmask:8 row_mask:0xf bank_mask:0xf4335; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4336; GFX1132-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]4337; GFX1132-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]4338; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)4339; GFX1132-DPP-NEXT:    v_permlanex16_b32 v5, v3, 0, 04340; GFX1132-DPP-NEXT:    v_permlanex16_b32 v4, v2, 0, 04341; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4342; GFX1132-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]4343; GFX1132-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]4344; GFX1132-DPP-NEXT:    s_mov_b32 exec_lo, s04345; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_3)4346; GFX1132-DPP-NEXT:    v_mov_b32_e32 v0, v24347; GFX1132-DPP-NEXT:    v_mbcnt_lo_u32_b32 v6, exec_lo, 04348; GFX1132-DPP-NEXT:    v_dual_mov_b32 v10, 0 :: v_dual_mov_b32 v1, v34349; GFX1132-DPP-NEXT:    s_mov_b32 s2, 04350; GFX1132-DPP-NEXT:    s_mov_b32 s0, exec_lo4351; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2)4352; GFX1132-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v64353; GFX1132-DPP-NEXT:    s_cbranch_execz .LBB7_34354; GFX1132-DPP-NEXT:  ; %bb.1:4355; GFX1132-DPP-NEXT:    s_load_b64 s[0:1], s[34:35], 0x244356; GFX1132-DPP-NEXT:    v_max_f64 v[0:1], v[0:1], v[0:1]4357; GFX1132-DPP-NEXT:    s_waitcnt lgkmcnt(0)4358; GFX1132-DPP-NEXT:    global_load_b64 v[8:9], v10, s[0:1]4359; GFX1132-DPP-NEXT:  .LBB7_2: ; %atomicrmw.start4360; GFX1132-DPP-NEXT:    ; =>This Inner Loop Header: Depth=14361; GFX1132-DPP-NEXT:    s_waitcnt vmcnt(0)4362; GFX1132-DPP-NEXT:    v_max_f64 v[6:7], v[8:9], v[8:9]4363; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1)4364; GFX1132-DPP-NEXT:    v_max_f64 v[6:7], v[6:7], v[0:1]4365; GFX1132-DPP-NEXT:    global_atomic_cmpswap_b64 v[6:7], v10, v[6:9], s[0:1] glc4366; GFX1132-DPP-NEXT:    s_waitcnt vmcnt(0)4367; GFX1132-DPP-NEXT:    v_cmp_eq_u64_e32 vcc_lo, v[6:7], v[8:9]4368; GFX1132-DPP-NEXT:    v_dual_mov_b32 v9, v7 :: v_dual_mov_b32 v8, v64369; GFX1132-DPP-NEXT:    s_or_b32 s2, vcc_lo, s24370; GFX1132-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4371; GFX1132-DPP-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s24372; GFX1132-DPP-NEXT:    s_cbranch_execnz .LBB7_24373; GFX1132-DPP-NEXT:  .LBB7_3:4374; GFX1132-DPP-NEXT:    s_endpgm4375  %divValue = call double @div.double.value()4376  %result = atomicrmw fmax ptr addrspace(1) %ptr, double %divValue syncscope("agent") monotonic, align 8, !amdgpu.no.fine.grained.memory !14377  ret void4378}4379 4380define amdgpu_kernel void @global_atomic_fmax_double_uni_address_uni_value_one_as_scope_unsafe(ptr addrspace(1) %ptr) #0 {4381; GFX7LESS-LABEL: global_atomic_fmax_double_uni_address_uni_value_one_as_scope_unsafe:4382; GFX7LESS:       ; %bb.0:4383; GFX7LESS-NEXT:    v_mbcnt_lo_u32_b32_e64 v0, exec_lo, 04384; GFX7LESS-NEXT:    v_mbcnt_hi_u32_b32_e32 v0, exec_hi, v04385; GFX7LESS-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v04386; GFX7LESS-NEXT:    s_and_saveexec_b64 s[0:1], vcc4387; GFX7LESS-NEXT:    s_cbranch_execz .LBB8_34388; GFX7LESS-NEXT:  ; %bb.1:4389; GFX7LESS-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x94390; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)4391; GFX7LESS-NEXT:    s_load_dwordx2 s[6:7], s[0:1], 0x04392; GFX7LESS-NEXT:    s_mov_b64 s[4:5], 04393; GFX7LESS-NEXT:    s_mov_b32 s3, 0xf0004394; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)4395; GFX7LESS-NEXT:    v_mov_b32_e32 v2, s64396; GFX7LESS-NEXT:    v_mov_b32_e32 v3, s74397; GFX7LESS-NEXT:    s_mov_b32 s2, -14398; GFX7LESS-NEXT:  .LBB8_2: ; %atomicrmw.start4399; GFX7LESS-NEXT:    ; =>This Inner Loop Header: Depth=14400; GFX7LESS-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]4401; GFX7LESS-NEXT:    v_max_f64 v[0:1], v[0:1], 4.04402; GFX7LESS-NEXT:    s_waitcnt expcnt(0)4403; GFX7LESS-NEXT:    v_mov_b32_e32 v7, v34404; GFX7LESS-NEXT:    v_mov_b32_e32 v6, v24405; GFX7LESS-NEXT:    v_mov_b32_e32 v5, v14406; GFX7LESS-NEXT:    v_mov_b32_e32 v4, v04407; GFX7LESS-NEXT:    buffer_atomic_cmpswap_x2 v[4:7], off, s[0:3], 0 glc4408; GFX7LESS-NEXT:    s_waitcnt vmcnt(0)4409; GFX7LESS-NEXT:    v_cmp_eq_u64_e32 vcc, v[4:5], v[2:3]4410; GFX7LESS-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]4411; GFX7LESS-NEXT:    v_mov_b32_e32 v2, v44412; GFX7LESS-NEXT:    v_mov_b32_e32 v3, v54413; GFX7LESS-NEXT:    s_andn2_b64 exec, exec, s[4:5]4414; GFX7LESS-NEXT:    s_cbranch_execnz .LBB8_24415; GFX7LESS-NEXT:  .LBB8_3:4416; GFX7LESS-NEXT:    s_endpgm4417;4418; GFX9-LABEL: global_atomic_fmax_double_uni_address_uni_value_one_as_scope_unsafe:4419; GFX9:       ; %bb.0:4420; GFX9-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 04421; GFX9-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v04422; GFX9-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v04423; GFX9-NEXT:    s_and_saveexec_b64 s[0:1], vcc4424; GFX9-NEXT:    s_cbranch_execz .LBB8_34425; GFX9-NEXT:  ; %bb.1:4426; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244427; GFX9-NEXT:    s_mov_b64 s[2:3], 04428; GFX9-NEXT:    v_mov_b32_e32 v4, 04429; GFX9-NEXT:    s_waitcnt lgkmcnt(0)4430; GFX9-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x04431; GFX9-NEXT:    s_waitcnt lgkmcnt(0)4432; GFX9-NEXT:    v_mov_b32_e32 v2, s44433; GFX9-NEXT:    v_mov_b32_e32 v3, s54434; GFX9-NEXT:  .LBB8_2: ; %atomicrmw.start4435; GFX9-NEXT:    ; =>This Inner Loop Header: Depth=14436; GFX9-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]4437; GFX9-NEXT:    v_max_f64 v[0:1], v[0:1], 4.04438; GFX9-NEXT:    global_atomic_cmpswap_x2 v[0:1], v4, v[0:3], s[0:1] glc4439; GFX9-NEXT:    s_waitcnt vmcnt(0)4440; GFX9-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[2:3]4441; GFX9-NEXT:    v_mov_b32_e32 v3, v14442; GFX9-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]4443; GFX9-NEXT:    v_mov_b32_e32 v2, v04444; GFX9-NEXT:    s_andn2_b64 exec, exec, s[2:3]4445; GFX9-NEXT:    s_cbranch_execnz .LBB8_24446; GFX9-NEXT:  .LBB8_3:4447; GFX9-NEXT:    s_endpgm4448;4449; GFX1064-LABEL: global_atomic_fmax_double_uni_address_uni_value_one_as_scope_unsafe:4450; GFX1064:       ; %bb.0:4451; GFX1064-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 04452; GFX1064-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v04453; GFX1064-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v04454; GFX1064-NEXT:    s_and_saveexec_b64 s[0:1], vcc4455; GFX1064-NEXT:    s_cbranch_execz .LBB8_24456; GFX1064-NEXT:  ; %bb.1:4457; GFX1064-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244458; GFX1064-NEXT:    v_mov_b32_e32 v0, 04459; GFX1064-NEXT:    v_mov_b32_e32 v1, 0x401000004460; GFX1064-NEXT:    v_mov_b32_e32 v2, 04461; GFX1064-NEXT:    s_waitcnt lgkmcnt(0)4462; GFX1064-NEXT:    global_atomic_fmax_x2 v2, v[0:1], s[0:1]4463; GFX1064-NEXT:  .LBB8_2:4464; GFX1064-NEXT:    s_endpgm4465;4466; GFX1032-LABEL: global_atomic_fmax_double_uni_address_uni_value_one_as_scope_unsafe:4467; GFX1032:       ; %bb.0:4468; GFX1032-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 04469; GFX1032-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v04470; GFX1032-NEXT:    s_and_saveexec_b32 s0, vcc_lo4471; GFX1032-NEXT:    s_cbranch_execz .LBB8_24472; GFX1032-NEXT:  ; %bb.1:4473; GFX1032-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244474; GFX1032-NEXT:    v_mov_b32_e32 v0, 04475; GFX1032-NEXT:    v_mov_b32_e32 v1, 0x401000004476; GFX1032-NEXT:    v_mov_b32_e32 v2, 04477; GFX1032-NEXT:    s_waitcnt lgkmcnt(0)4478; GFX1032-NEXT:    global_atomic_fmax_x2 v2, v[0:1], s[0:1]4479; GFX1032-NEXT:  .LBB8_2:4480; GFX1032-NEXT:    s_endpgm4481;4482; GFX1164-LABEL: global_atomic_fmax_double_uni_address_uni_value_one_as_scope_unsafe:4483; GFX1164:       ; %bb.0:4484; GFX1164-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 04485; GFX1164-NEXT:    s_mov_b64 s[0:1], exec4486; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4487; GFX1164-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v04488; GFX1164-NEXT:    v_cmpx_eq_u32_e32 0, v04489; GFX1164-NEXT:    s_cbranch_execz .LBB8_34490; GFX1164-NEXT:  ; %bb.1:4491; GFX1164-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244492; GFX1164-NEXT:    v_mov_b32_e32 v4, 04493; GFX1164-NEXT:    s_waitcnt lgkmcnt(0)4494; GFX1164-NEXT:    s_load_b64 s[2:3], s[0:1], 0x04495; GFX1164-NEXT:    s_waitcnt lgkmcnt(0)4496; GFX1164-NEXT:    v_mov_b32_e32 v2, s24497; GFX1164-NEXT:    v_mov_b32_e32 v3, s34498; GFX1164-NEXT:    s_mov_b64 s[2:3], 04499; GFX1164-NEXT:  .LBB8_2: ; %atomicrmw.start4500; GFX1164-NEXT:    ; =>This Inner Loop Header: Depth=14501; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4502; GFX1164-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]4503; GFX1164-NEXT:    v_max_f64 v[0:1], v[0:1], 4.04504; GFX1164-NEXT:    global_atomic_cmpswap_b64 v[0:1], v4, v[0:3], s[0:1] glc4505; GFX1164-NEXT:    s_waitcnt vmcnt(0)4506; GFX1164-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[2:3]4507; GFX1164-NEXT:    v_mov_b32_e32 v3, v14508; GFX1164-NEXT:    v_mov_b32_e32 v2, v04509; GFX1164-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]4510; GFX1164-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4511; GFX1164-NEXT:    s_and_not1_b64 exec, exec, s[2:3]4512; GFX1164-NEXT:    s_cbranch_execnz .LBB8_24513; GFX1164-NEXT:  .LBB8_3:4514; GFX1164-NEXT:    s_endpgm4515;4516; GFX1132-LABEL: global_atomic_fmax_double_uni_address_uni_value_one_as_scope_unsafe:4517; GFX1132:       ; %bb.0:4518; GFX1132-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 04519; GFX1132-NEXT:    s_mov_b32 s2, 04520; GFX1132-NEXT:    s_mov_b32 s0, exec_lo4521; GFX1132-NEXT:    s_delay_alu instid0(VALU_DEP_1)4522; GFX1132-NEXT:    v_cmpx_eq_u32_e32 0, v04523; GFX1132-NEXT:    s_cbranch_execz .LBB8_34524; GFX1132-NEXT:  ; %bb.1:4525; GFX1132-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244526; GFX1132-NEXT:    v_mov_b32_e32 v4, 04527; GFX1132-NEXT:    s_waitcnt lgkmcnt(0)4528; GFX1132-NEXT:    s_load_b64 s[4:5], s[0:1], 0x04529; GFX1132-NEXT:    s_waitcnt lgkmcnt(0)4530; GFX1132-NEXT:    v_dual_mov_b32 v2, s4 :: v_dual_mov_b32 v3, s54531; GFX1132-NEXT:  .LBB8_2: ; %atomicrmw.start4532; GFX1132-NEXT:    ; =>This Inner Loop Header: Depth=14533; GFX1132-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4534; GFX1132-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]4535; GFX1132-NEXT:    v_max_f64 v[0:1], v[0:1], 4.04536; GFX1132-NEXT:    global_atomic_cmpswap_b64 v[0:1], v4, v[0:3], s[0:1] glc4537; GFX1132-NEXT:    s_waitcnt vmcnt(0)4538; GFX1132-NEXT:    v_cmp_eq_u64_e32 vcc_lo, v[0:1], v[2:3]4539; GFX1132-NEXT:    v_dual_mov_b32 v3, v1 :: v_dual_mov_b32 v2, v04540; GFX1132-NEXT:    s_or_b32 s2, vcc_lo, s24541; GFX1132-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4542; GFX1132-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s24543; GFX1132-NEXT:    s_cbranch_execnz .LBB8_24544; GFX1132-NEXT:  .LBB8_3:4545; GFX1132-NEXT:    s_endpgm4546;4547; GFX7LESS-DPP-LABEL: global_atomic_fmax_double_uni_address_uni_value_one_as_scope_unsafe:4548; GFX7LESS-DPP:       ; %bb.0:4549; GFX7LESS-DPP-NEXT:    v_mbcnt_lo_u32_b32_e64 v0, exec_lo, 04550; GFX7LESS-DPP-NEXT:    v_mbcnt_hi_u32_b32_e32 v0, exec_hi, v04551; GFX7LESS-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v04552; GFX7LESS-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc4553; GFX7LESS-DPP-NEXT:    s_cbranch_execz .LBB8_34554; GFX7LESS-DPP-NEXT:  ; %bb.1:4555; GFX7LESS-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x94556; GFX7LESS-DPP-NEXT:    s_waitcnt lgkmcnt(0)4557; GFX7LESS-DPP-NEXT:    s_load_dwordx2 s[6:7], s[0:1], 0x04558; GFX7LESS-DPP-NEXT:    s_mov_b64 s[4:5], 04559; GFX7LESS-DPP-NEXT:    s_mov_b32 s3, 0xf0004560; GFX7LESS-DPP-NEXT:    s_waitcnt lgkmcnt(0)4561; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v2, s64562; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v3, s74563; GFX7LESS-DPP-NEXT:    s_mov_b32 s2, -14564; GFX7LESS-DPP-NEXT:  .LBB8_2: ; %atomicrmw.start4565; GFX7LESS-DPP-NEXT:    ; =>This Inner Loop Header: Depth=14566; GFX7LESS-DPP-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]4567; GFX7LESS-DPP-NEXT:    v_max_f64 v[0:1], v[0:1], 4.04568; GFX7LESS-DPP-NEXT:    s_waitcnt expcnt(0)4569; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v7, v34570; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v6, v24571; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v5, v14572; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v4, v04573; GFX7LESS-DPP-NEXT:    buffer_atomic_cmpswap_x2 v[4:7], off, s[0:3], 0 glc4574; GFX7LESS-DPP-NEXT:    s_waitcnt vmcnt(0)4575; GFX7LESS-DPP-NEXT:    v_cmp_eq_u64_e32 vcc, v[4:5], v[2:3]4576; GFX7LESS-DPP-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]4577; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v2, v44578; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v3, v54579; GFX7LESS-DPP-NEXT:    s_andn2_b64 exec, exec, s[4:5]4580; GFX7LESS-DPP-NEXT:    s_cbranch_execnz .LBB8_24581; GFX7LESS-DPP-NEXT:  .LBB8_3:4582; GFX7LESS-DPP-NEXT:    s_endpgm4583;4584; GFX9-DPP-LABEL: global_atomic_fmax_double_uni_address_uni_value_one_as_scope_unsafe:4585; GFX9-DPP:       ; %bb.0:4586; GFX9-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 04587; GFX9-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v04588; GFX9-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v04589; GFX9-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc4590; GFX9-DPP-NEXT:    s_cbranch_execz .LBB8_34591; GFX9-DPP-NEXT:  ; %bb.1:4592; GFX9-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244593; GFX9-DPP-NEXT:    s_mov_b64 s[2:3], 04594; GFX9-DPP-NEXT:    v_mov_b32_e32 v4, 04595; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)4596; GFX9-DPP-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x04597; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)4598; GFX9-DPP-NEXT:    v_mov_b32_e32 v2, s44599; GFX9-DPP-NEXT:    v_mov_b32_e32 v3, s54600; GFX9-DPP-NEXT:  .LBB8_2: ; %atomicrmw.start4601; GFX9-DPP-NEXT:    ; =>This Inner Loop Header: Depth=14602; GFX9-DPP-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]4603; GFX9-DPP-NEXT:    v_max_f64 v[0:1], v[0:1], 4.04604; GFX9-DPP-NEXT:    global_atomic_cmpswap_x2 v[0:1], v4, v[0:3], s[0:1] glc4605; GFX9-DPP-NEXT:    s_waitcnt vmcnt(0)4606; GFX9-DPP-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[2:3]4607; GFX9-DPP-NEXT:    v_mov_b32_e32 v3, v14608; GFX9-DPP-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]4609; GFX9-DPP-NEXT:    v_mov_b32_e32 v2, v04610; GFX9-DPP-NEXT:    s_andn2_b64 exec, exec, s[2:3]4611; GFX9-DPP-NEXT:    s_cbranch_execnz .LBB8_24612; GFX9-DPP-NEXT:  .LBB8_3:4613; GFX9-DPP-NEXT:    s_endpgm4614;4615; GFX1064-DPP-LABEL: global_atomic_fmax_double_uni_address_uni_value_one_as_scope_unsafe:4616; GFX1064-DPP:       ; %bb.0:4617; GFX1064-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 04618; GFX1064-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v04619; GFX1064-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v04620; GFX1064-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc4621; GFX1064-DPP-NEXT:    s_cbranch_execz .LBB8_24622; GFX1064-DPP-NEXT:  ; %bb.1:4623; GFX1064-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244624; GFX1064-DPP-NEXT:    v_mov_b32_e32 v0, 04625; GFX1064-DPP-NEXT:    v_mov_b32_e32 v1, 0x401000004626; GFX1064-DPP-NEXT:    v_mov_b32_e32 v2, 04627; GFX1064-DPP-NEXT:    s_waitcnt lgkmcnt(0)4628; GFX1064-DPP-NEXT:    global_atomic_fmax_x2 v2, v[0:1], s[0:1]4629; GFX1064-DPP-NEXT:  .LBB8_2:4630; GFX1064-DPP-NEXT:    s_endpgm4631;4632; GFX1032-DPP-LABEL: global_atomic_fmax_double_uni_address_uni_value_one_as_scope_unsafe:4633; GFX1032-DPP:       ; %bb.0:4634; GFX1032-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 04635; GFX1032-DPP-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v04636; GFX1032-DPP-NEXT:    s_and_saveexec_b32 s0, vcc_lo4637; GFX1032-DPP-NEXT:    s_cbranch_execz .LBB8_24638; GFX1032-DPP-NEXT:  ; %bb.1:4639; GFX1032-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x244640; GFX1032-DPP-NEXT:    v_mov_b32_e32 v0, 04641; GFX1032-DPP-NEXT:    v_mov_b32_e32 v1, 0x401000004642; GFX1032-DPP-NEXT:    v_mov_b32_e32 v2, 04643; GFX1032-DPP-NEXT:    s_waitcnt lgkmcnt(0)4644; GFX1032-DPP-NEXT:    global_atomic_fmax_x2 v2, v[0:1], s[0:1]4645; GFX1032-DPP-NEXT:  .LBB8_2:4646; GFX1032-DPP-NEXT:    s_endpgm4647;4648; GFX1164-DPP-LABEL: global_atomic_fmax_double_uni_address_uni_value_one_as_scope_unsafe:4649; GFX1164-DPP:       ; %bb.0:4650; GFX1164-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 04651; GFX1164-DPP-NEXT:    s_mov_b64 s[0:1], exec4652; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4653; GFX1164-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v04654; GFX1164-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v04655; GFX1164-DPP-NEXT:    s_cbranch_execz .LBB8_34656; GFX1164-DPP-NEXT:  ; %bb.1:4657; GFX1164-DPP-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244658; GFX1164-DPP-NEXT:    v_mov_b32_e32 v4, 04659; GFX1164-DPP-NEXT:    s_waitcnt lgkmcnt(0)4660; GFX1164-DPP-NEXT:    s_load_b64 s[2:3], s[0:1], 0x04661; GFX1164-DPP-NEXT:    s_waitcnt lgkmcnt(0)4662; GFX1164-DPP-NEXT:    v_mov_b32_e32 v2, s24663; GFX1164-DPP-NEXT:    v_mov_b32_e32 v3, s34664; GFX1164-DPP-NEXT:    s_mov_b64 s[2:3], 04665; GFX1164-DPP-NEXT:  .LBB8_2: ; %atomicrmw.start4666; GFX1164-DPP-NEXT:    ; =>This Inner Loop Header: Depth=14667; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4668; GFX1164-DPP-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]4669; GFX1164-DPP-NEXT:    v_max_f64 v[0:1], v[0:1], 4.04670; GFX1164-DPP-NEXT:    global_atomic_cmpswap_b64 v[0:1], v4, v[0:3], s[0:1] glc4671; GFX1164-DPP-NEXT:    s_waitcnt vmcnt(0)4672; GFX1164-DPP-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[2:3]4673; GFX1164-DPP-NEXT:    v_mov_b32_e32 v3, v14674; GFX1164-DPP-NEXT:    v_mov_b32_e32 v2, v04675; GFX1164-DPP-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]4676; GFX1164-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4677; GFX1164-DPP-NEXT:    s_and_not1_b64 exec, exec, s[2:3]4678; GFX1164-DPP-NEXT:    s_cbranch_execnz .LBB8_24679; GFX1164-DPP-NEXT:  .LBB8_3:4680; GFX1164-DPP-NEXT:    s_endpgm4681;4682; GFX1132-DPP-LABEL: global_atomic_fmax_double_uni_address_uni_value_one_as_scope_unsafe:4683; GFX1132-DPP:       ; %bb.0:4684; GFX1132-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 04685; GFX1132-DPP-NEXT:    s_mov_b32 s2, 04686; GFX1132-DPP-NEXT:    s_mov_b32 s0, exec_lo4687; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1)4688; GFX1132-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v04689; GFX1132-DPP-NEXT:    s_cbranch_execz .LBB8_34690; GFX1132-DPP-NEXT:  ; %bb.1:4691; GFX1132-DPP-NEXT:    s_load_b64 s[0:1], s[4:5], 0x244692; GFX1132-DPP-NEXT:    v_mov_b32_e32 v4, 04693; GFX1132-DPP-NEXT:    s_waitcnt lgkmcnt(0)4694; GFX1132-DPP-NEXT:    s_load_b64 s[4:5], s[0:1], 0x04695; GFX1132-DPP-NEXT:    s_waitcnt lgkmcnt(0)4696; GFX1132-DPP-NEXT:    v_dual_mov_b32 v2, s4 :: v_dual_mov_b32 v3, s54697; GFX1132-DPP-NEXT:  .LBB8_2: ; %atomicrmw.start4698; GFX1132-DPP-NEXT:    ; =>This Inner Loop Header: Depth=14699; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4700; GFX1132-DPP-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]4701; GFX1132-DPP-NEXT:    v_max_f64 v[0:1], v[0:1], 4.04702; GFX1132-DPP-NEXT:    global_atomic_cmpswap_b64 v[0:1], v4, v[0:3], s[0:1] glc4703; GFX1132-DPP-NEXT:    s_waitcnt vmcnt(0)4704; GFX1132-DPP-NEXT:    v_cmp_eq_u64_e32 vcc_lo, v[0:1], v[2:3]4705; GFX1132-DPP-NEXT:    v_dual_mov_b32 v3, v1 :: v_dual_mov_b32 v2, v04706; GFX1132-DPP-NEXT:    s_or_b32 s2, vcc_lo, s24707; GFX1132-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4708; GFX1132-DPP-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s24709; GFX1132-DPP-NEXT:    s_cbranch_execnz .LBB8_24710; GFX1132-DPP-NEXT:  .LBB8_3:4711; GFX1132-DPP-NEXT:    s_endpgm4712  %result = atomicrmw fmax ptr addrspace(1) %ptr, double 4.0 syncscope("one-as") monotonic, !amdgpu.no.fine.grained.memory !14713  ret void4714}4715 4716define amdgpu_kernel void @global_atomic_fmax_double_uni_address_div_value_one_as_scope_unsafe(ptr addrspace(1) %ptr) #0 {4717; GFX7LESS-LABEL: global_atomic_fmax_double_uni_address_div_value_one_as_scope_unsafe:4718; GFX7LESS:       ; %bb.0:4719; GFX7LESS-NEXT:    s_mov_b32 s32, 04720; GFX7LESS-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD04721; GFX7LESS-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD14722; GFX7LESS-NEXT:    s_mov_b32 s38, -14723; GFX7LESS-NEXT:    s_mov_b32 s39, 0xe8f0004724; GFX7LESS-NEXT:    s_add_u32 s36, s36, s114725; GFX7LESS-NEXT:    s_addc_u32 s37, s37, 04726; GFX7LESS-NEXT:    s_mov_b32 s14, s104727; GFX7LESS-NEXT:    s_mov_b32 s13, s94728; GFX7LESS-NEXT:    s_mov_b32 s12, s84729; GFX7LESS-NEXT:    s_mov_b64 s[10:11], s[6:7]4730; GFX7LESS-NEXT:    s_mov_b64 s[34:35], s[4:5]4731; GFX7LESS-NEXT:    s_add_u32 s8, s34, 444732; GFX7LESS-NEXT:    s_addc_u32 s9, s35, 04733; GFX7LESS-NEXT:    s_getpc_b64 s[4:5]4734; GFX7LESS-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+44735; GFX7LESS-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+124736; GFX7LESS-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x04737; GFX7LESS-NEXT:    v_lshlrev_b32_e32 v2, 20, v24738; GFX7LESS-NEXT:    v_lshlrev_b32_e32 v1, 10, v14739; GFX7LESS-NEXT:    v_or_b32_e32 v0, v0, v14740; GFX7LESS-NEXT:    v_or_b32_e32 v31, v0, v24741; GFX7LESS-NEXT:    s_mov_b64 s[4:5], s[0:1]4742; GFX7LESS-NEXT:    s_mov_b64 s[6:7], s[2:3]4743; GFX7LESS-NEXT:    s_mov_b64 s[0:1], s[36:37]4744; GFX7LESS-NEXT:    s_mov_b64 s[2:3], s[38:39]4745; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)4746; GFX7LESS-NEXT:    s_swappc_b64 s[30:31], s[16:17]4747; GFX7LESS-NEXT:    s_mov_b64 s[0:1], exec4748; GFX7LESS-NEXT:    v_mov_b32_e32 v4, 04749; GFX7LESS-NEXT:    v_mov_b32_e32 v5, 0x7ff800004750; GFX7LESS-NEXT:  .LBB9_1: ; %ComputeLoop4751; GFX7LESS-NEXT:    ; =>This Inner Loop Header: Depth=14752; GFX7LESS-NEXT:    s_ff1_i32_b64 s4, s[0:1]4753; GFX7LESS-NEXT:    v_max_f64 v[2:3], v[4:5], v[4:5]4754; GFX7LESS-NEXT:    v_readlane_b32 s3, v1, s44755; GFX7LESS-NEXT:    v_readlane_b32 s2, v0, s44756; GFX7LESS-NEXT:    s_lshl_b64 s[4:5], 1, s44757; GFX7LESS-NEXT:    v_max_f64 v[4:5], s[2:3], s[2:3]4758; GFX7LESS-NEXT:    s_andn2_b64 s[0:1], s[0:1], s[4:5]4759; GFX7LESS-NEXT:    v_cmp_ne_u64_e64 s[2:3], s[0:1], 04760; GFX7LESS-NEXT:    s_and_b64 vcc, exec, s[2:3]4761; GFX7LESS-NEXT:    v_max_f64 v[4:5], v[2:3], v[4:5]4762; GFX7LESS-NEXT:    s_cbranch_vccnz .LBB9_14763; GFX7LESS-NEXT:  ; %bb.2: ; %ComputeEnd4764; GFX7LESS-NEXT:    v_mbcnt_lo_u32_b32_e64 v0, exec_lo, 04765; GFX7LESS-NEXT:    v_mbcnt_hi_u32_b32_e32 v0, exec_hi, v04766; GFX7LESS-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v04767; GFX7LESS-NEXT:    s_and_saveexec_b64 s[0:1], vcc4768; GFX7LESS-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]4769; GFX7LESS-NEXT:    s_cbranch_execz .LBB9_54770; GFX7LESS-NEXT:  ; %bb.3:4771; GFX7LESS-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x94772; GFX7LESS-NEXT:    s_mov_b32 s3, 0xf0004773; GFX7LESS-NEXT:    s_mov_b32 s2, -14774; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)4775; GFX7LESS-NEXT:    buffer_load_dwordx2 v[2:3], off, s[0:3], 04776; GFX7LESS-NEXT:    s_mov_b64 s[4:5], 04777; GFX7LESS-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]4778; GFX7LESS-NEXT:  .LBB9_4: ; %atomicrmw.start4779; GFX7LESS-NEXT:    ; =>This Inner Loop Header: Depth=14780; GFX7LESS-NEXT:    s_waitcnt vmcnt(0)4781; GFX7LESS-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]4782; GFX7LESS-NEXT:    v_max_f64 v[0:1], v[0:1], v[4:5]4783; GFX7LESS-NEXT:    s_waitcnt expcnt(0)4784; GFX7LESS-NEXT:    v_mov_b32_e32 v9, v34785; GFX7LESS-NEXT:    v_mov_b32_e32 v8, v24786; GFX7LESS-NEXT:    v_mov_b32_e32 v7, v14787; GFX7LESS-NEXT:    v_mov_b32_e32 v6, v04788; GFX7LESS-NEXT:    buffer_atomic_cmpswap_x2 v[6:9], off, s[0:3], 0 glc4789; GFX7LESS-NEXT:    s_waitcnt vmcnt(0)4790; GFX7LESS-NEXT:    v_cmp_eq_u64_e32 vcc, v[6:7], v[2:3]4791; GFX7LESS-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]4792; GFX7LESS-NEXT:    v_mov_b32_e32 v2, v64793; GFX7LESS-NEXT:    v_mov_b32_e32 v3, v74794; GFX7LESS-NEXT:    s_andn2_b64 exec, exec, s[4:5]4795; GFX7LESS-NEXT:    s_cbranch_execnz .LBB9_44796; GFX7LESS-NEXT:  .LBB9_5:4797; GFX7LESS-NEXT:    s_endpgm4798;4799; GFX9-LABEL: global_atomic_fmax_double_uni_address_div_value_one_as_scope_unsafe:4800; GFX9:       ; %bb.0:4801; GFX9-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD04802; GFX9-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD14803; GFX9-NEXT:    s_mov_b32 s38, -14804; GFX9-NEXT:    s_mov_b32 s39, 0xe000004805; GFX9-NEXT:    s_add_u32 s36, s36, s114806; GFX9-NEXT:    s_addc_u32 s37, s37, 04807; GFX9-NEXT:    s_mov_b64 s[34:35], s[4:5]4808; GFX9-NEXT:    s_mov_b32 s12, s84809; GFX9-NEXT:    s_add_u32 s8, s34, 444810; GFX9-NEXT:    s_mov_b32 s13, s94811; GFX9-NEXT:    s_addc_u32 s9, s35, 04812; GFX9-NEXT:    s_getpc_b64 s[4:5]4813; GFX9-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+44814; GFX9-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+124815; GFX9-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x04816; GFX9-NEXT:    s_mov_b32 s14, s104817; GFX9-NEXT:    s_mov_b64 s[10:11], s[6:7]4818; GFX9-NEXT:    v_lshlrev_b32_e32 v2, 20, v24819; GFX9-NEXT:    v_lshlrev_b32_e32 v1, 10, v14820; GFX9-NEXT:    s_mov_b64 s[4:5], s[0:1]4821; GFX9-NEXT:    s_mov_b64 s[6:7], s[2:3]4822; GFX9-NEXT:    s_mov_b64 s[0:1], s[36:37]4823; GFX9-NEXT:    v_or3_b32 v31, v0, v1, v24824; GFX9-NEXT:    s_mov_b64 s[2:3], s[38:39]4825; GFX9-NEXT:    s_mov_b32 s32, 04826; GFX9-NEXT:    s_waitcnt lgkmcnt(0)4827; GFX9-NEXT:    s_swappc_b64 s[30:31], s[16:17]4828; GFX9-NEXT:    v_mov_b32_e32 v4, 04829; GFX9-NEXT:    s_mov_b64 s[0:1], exec4830; GFX9-NEXT:    v_mov_b32_e32 v5, 0x7ff800004831; GFX9-NEXT:  .LBB9_1: ; %ComputeLoop4832; GFX9-NEXT:    ; =>This Inner Loop Header: Depth=14833; GFX9-NEXT:    s_ff1_i32_b64 s4, s[0:1]4834; GFX9-NEXT:    v_readlane_b32 s3, v1, s44835; GFX9-NEXT:    v_readlane_b32 s2, v0, s44836; GFX9-NEXT:    v_max_f64 v[2:3], v[4:5], v[4:5]4837; GFX9-NEXT:    v_max_f64 v[4:5], s[2:3], s[2:3]4838; GFX9-NEXT:    s_lshl_b64 s[2:3], 1, s44839; GFX9-NEXT:    s_andn2_b64 s[0:1], s[0:1], s[2:3]4840; GFX9-NEXT:    v_max_f64 v[4:5], v[2:3], v[4:5]4841; GFX9-NEXT:    s_cbranch_scc1 .LBB9_14842; GFX9-NEXT:  ; %bb.2: ; %ComputeEnd4843; GFX9-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 04844; GFX9-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v04845; GFX9-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v04846; GFX9-NEXT:    s_and_saveexec_b64 s[0:1], vcc4847; GFX9-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]4848; GFX9-NEXT:    s_cbranch_execz .LBB9_54849; GFX9-NEXT:  ; %bb.3:4850; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x244851; GFX9-NEXT:    v_mov_b32_e32 v6, 04852; GFX9-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]4853; GFX9-NEXT:    s_mov_b64 s[2:3], 04854; GFX9-NEXT:    s_waitcnt lgkmcnt(0)4855; GFX9-NEXT:    global_load_dwordx2 v[2:3], v6, s[0:1]4856; GFX9-NEXT:  .LBB9_4: ; %atomicrmw.start4857; GFX9-NEXT:    ; =>This Inner Loop Header: Depth=14858; GFX9-NEXT:    s_waitcnt vmcnt(0)4859; GFX9-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]4860; GFX9-NEXT:    v_max_f64 v[0:1], v[0:1], v[4:5]4861; GFX9-NEXT:    global_atomic_cmpswap_x2 v[0:1], v6, v[0:3], s[0:1] glc4862; GFX9-NEXT:    s_waitcnt vmcnt(0)4863; GFX9-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[2:3]4864; GFX9-NEXT:    v_mov_b32_e32 v3, v14865; GFX9-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]4866; GFX9-NEXT:    v_mov_b32_e32 v2, v04867; GFX9-NEXT:    s_andn2_b64 exec, exec, s[2:3]4868; GFX9-NEXT:    s_cbranch_execnz .LBB9_44869; GFX9-NEXT:  .LBB9_5:4870; GFX9-NEXT:    s_endpgm4871;4872; GFX1064-LABEL: global_atomic_fmax_double_uni_address_div_value_one_as_scope_unsafe:4873; GFX1064:       ; %bb.0:4874; GFX1064-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD04875; GFX1064-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD14876; GFX1064-NEXT:    s_mov_b32 s38, -14877; GFX1064-NEXT:    s_mov_b32 s39, 0x31e160004878; GFX1064-NEXT:    s_add_u32 s36, s36, s114879; GFX1064-NEXT:    s_mov_b64 s[34:35], s[4:5]4880; GFX1064-NEXT:    s_addc_u32 s37, s37, 04881; GFX1064-NEXT:    s_mov_b32 s12, s84882; GFX1064-NEXT:    s_add_u32 s8, s34, 444883; GFX1064-NEXT:    s_mov_b32 s13, s94884; GFX1064-NEXT:    s_addc_u32 s9, s35, 04885; GFX1064-NEXT:    s_getpc_b64 s[4:5]4886; GFX1064-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+44887; GFX1064-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+124888; GFX1064-NEXT:    v_lshlrev_b32_e32 v2, 20, v24889; GFX1064-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x04890; GFX1064-NEXT:    v_lshlrev_b32_e32 v1, 10, v14891; GFX1064-NEXT:    s_mov_b32 s14, s104892; GFX1064-NEXT:    s_mov_b64 s[10:11], s[6:7]4893; GFX1064-NEXT:    s_mov_b64 s[4:5], s[0:1]4894; GFX1064-NEXT:    s_mov_b64 s[6:7], s[2:3]4895; GFX1064-NEXT:    v_or3_b32 v31, v0, v1, v24896; GFX1064-NEXT:    s_mov_b64 s[0:1], s[36:37]4897; GFX1064-NEXT:    s_mov_b64 s[2:3], s[38:39]4898; GFX1064-NEXT:    s_mov_b32 s32, 04899; GFX1064-NEXT:    s_waitcnt lgkmcnt(0)4900; GFX1064-NEXT:    s_swappc_b64 s[30:31], s[16:17]4901; GFX1064-NEXT:    v_mov_b32_e32 v2, 04902; GFX1064-NEXT:    v_mov_b32_e32 v3, 0x7ff800004903; GFX1064-NEXT:    s_mov_b64 s[0:1], exec4904; GFX1064-NEXT:  .LBB9_1: ; %ComputeLoop4905; GFX1064-NEXT:    ; =>This Inner Loop Header: Depth=14906; GFX1064-NEXT:    s_ff1_i32_b64 s4, s[0:1]4907; GFX1064-NEXT:    v_max_f64 v[2:3], v[2:3], v[2:3]4908; GFX1064-NEXT:    v_readlane_b32 s3, v1, s44909; GFX1064-NEXT:    v_readlane_b32 s2, v0, s44910; GFX1064-NEXT:    v_max_f64 v[4:5], s[2:3], s[2:3]4911; GFX1064-NEXT:    s_lshl_b64 s[2:3], 1, s44912; GFX1064-NEXT:    s_andn2_b64 s[0:1], s[0:1], s[2:3]4913; GFX1064-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]4914; GFX1064-NEXT:    s_cbranch_scc1 .LBB9_14915; GFX1064-NEXT:  ; %bb.2: ; %ComputeEnd4916; GFX1064-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 04917; GFX1064-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v04918; GFX1064-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v04919; GFX1064-NEXT:    s_and_saveexec_b64 s[0:1], vcc4920; GFX1064-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]4921; GFX1064-NEXT:    s_cbranch_execz .LBB9_44922; GFX1064-NEXT:  ; %bb.3:4923; GFX1064-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x244924; GFX1064-NEXT:    v_mov_b32_e32 v0, 04925; GFX1064-NEXT:    s_waitcnt lgkmcnt(0)4926; GFX1064-NEXT:    global_atomic_fmax_x2 v0, v[2:3], s[0:1]4927; GFX1064-NEXT:  .LBB9_4:4928; GFX1064-NEXT:    s_endpgm4929;4930; GFX1032-LABEL: global_atomic_fmax_double_uni_address_div_value_one_as_scope_unsafe:4931; GFX1032:       ; %bb.0:4932; GFX1032-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD04933; GFX1032-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD14934; GFX1032-NEXT:    s_mov_b32 s38, -14935; GFX1032-NEXT:    s_mov_b32 s39, 0x31c160004936; GFX1032-NEXT:    s_add_u32 s36, s36, s114937; GFX1032-NEXT:    s_mov_b64 s[34:35], s[4:5]4938; GFX1032-NEXT:    s_addc_u32 s37, s37, 04939; GFX1032-NEXT:    s_mov_b32 s12, s84940; GFX1032-NEXT:    s_add_u32 s8, s34, 444941; GFX1032-NEXT:    s_mov_b32 s13, s94942; GFX1032-NEXT:    s_addc_u32 s9, s35, 04943; GFX1032-NEXT:    s_getpc_b64 s[4:5]4944; GFX1032-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+44945; GFX1032-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+124946; GFX1032-NEXT:    v_lshlrev_b32_e32 v2, 20, v24947; GFX1032-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x04948; GFX1032-NEXT:    v_lshlrev_b32_e32 v1, 10, v14949; GFX1032-NEXT:    s_mov_b32 s14, s104950; GFX1032-NEXT:    s_mov_b64 s[10:11], s[6:7]4951; GFX1032-NEXT:    s_mov_b64 s[4:5], s[0:1]4952; GFX1032-NEXT:    s_mov_b64 s[6:7], s[2:3]4953; GFX1032-NEXT:    v_or3_b32 v31, v0, v1, v24954; GFX1032-NEXT:    s_mov_b64 s[0:1], s[36:37]4955; GFX1032-NEXT:    s_mov_b64 s[2:3], s[38:39]4956; GFX1032-NEXT:    s_mov_b32 s32, 04957; GFX1032-NEXT:    s_waitcnt lgkmcnt(0)4958; GFX1032-NEXT:    s_swappc_b64 s[30:31], s[16:17]4959; GFX1032-NEXT:    v_mov_b32_e32 v2, 04960; GFX1032-NEXT:    v_mov_b32_e32 v3, 0x7ff800004961; GFX1032-NEXT:    s_mov_b32 s0, exec_lo4962; GFX1032-NEXT:  .LBB9_1: ; %ComputeLoop4963; GFX1032-NEXT:    ; =>This Inner Loop Header: Depth=14964; GFX1032-NEXT:    s_ff1_i32_b32 s1, s04965; GFX1032-NEXT:    v_max_f64 v[2:3], v[2:3], v[2:3]4966; GFX1032-NEXT:    v_readlane_b32 s3, v1, s14967; GFX1032-NEXT:    v_readlane_b32 s2, v0, s14968; GFX1032-NEXT:    s_lshl_b32 s1, 1, s14969; GFX1032-NEXT:    s_andn2_b32 s0, s0, s14970; GFX1032-NEXT:    v_max_f64 v[4:5], s[2:3], s[2:3]4971; GFX1032-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]4972; GFX1032-NEXT:    s_cbranch_scc1 .LBB9_14973; GFX1032-NEXT:  ; %bb.2: ; %ComputeEnd4974; GFX1032-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 04975; GFX1032-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v04976; GFX1032-NEXT:    s_and_saveexec_b32 s0, vcc_lo4977; GFX1032-NEXT:    s_xor_b32 s0, exec_lo, s04978; GFX1032-NEXT:    s_cbranch_execz .LBB9_44979; GFX1032-NEXT:  ; %bb.3:4980; GFX1032-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x244981; GFX1032-NEXT:    v_mov_b32_e32 v0, 04982; GFX1032-NEXT:    s_waitcnt lgkmcnt(0)4983; GFX1032-NEXT:    global_atomic_fmax_x2 v0, v[2:3], s[0:1]4984; GFX1032-NEXT:  .LBB9_4:4985; GFX1032-NEXT:    s_endpgm4986;4987; GFX1164-LABEL: global_atomic_fmax_double_uni_address_div_value_one_as_scope_unsafe:4988; GFX1164:       ; %bb.0:4989; GFX1164-NEXT:    s_mov_b64 s[34:35], s[4:5]4990; GFX1164-NEXT:    s_mov_b32 s12, s84991; GFX1164-NEXT:    s_add_u32 s8, s34, 444992; GFX1164-NEXT:    s_mov_b32 s13, s94993; GFX1164-NEXT:    s_addc_u32 s9, s35, 04994; GFX1164-NEXT:    s_getpc_b64 s[4:5]4995; GFX1164-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+44996; GFX1164-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+124997; GFX1164-NEXT:    v_mov_b32_e32 v31, v04998; GFX1164-NEXT:    s_load_b64 s[16:17], s[4:5], 0x04999; GFX1164-NEXT:    s_mov_b32 s14, s105000; GFX1164-NEXT:    s_mov_b64 s[10:11], s[6:7]5001; GFX1164-NEXT:    s_mov_b64 s[4:5], s[0:1]5002; GFX1164-NEXT:    s_mov_b64 s[6:7], s[2:3]5003; GFX1164-NEXT:    s_mov_b32 s32, 05004; GFX1164-NEXT:    s_waitcnt lgkmcnt(0)5005; GFX1164-NEXT:    s_swappc_b64 s[30:31], s[16:17]5006; GFX1164-NEXT:    v_mov_b32_e32 v4, 05007; GFX1164-NEXT:    v_mov_b32_e32 v5, 0x7ff800005008; GFX1164-NEXT:    s_mov_b64 s[0:1], exec5009; GFX1164-NEXT:  .LBB9_1: ; %ComputeLoop5010; GFX1164-NEXT:    ; =>This Inner Loop Header: Depth=15011; GFX1164-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_1)5012; GFX1164-NEXT:    s_ctz_i32_b64 s4, s[0:1]5013; GFX1164-NEXT:    v_max_f64 v[2:3], v[4:5], v[4:5]5014; GFX1164-NEXT:    v_readlane_b32 s3, v1, s45015; GFX1164-NEXT:    v_readlane_b32 s2, v0, s45016; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1)5017; GFX1164-NEXT:    v_max_f64 v[4:5], s[2:3], s[2:3]5018; GFX1164-NEXT:    s_lshl_b64 s[2:3], 1, s45019; GFX1164-NEXT:    s_and_not1_b64 s[0:1], s[0:1], s[2:3]5020; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1)5021; GFX1164-NEXT:    v_max_f64 v[4:5], v[2:3], v[4:5]5022; GFX1164-NEXT:    s_cbranch_scc1 .LBB9_15023; GFX1164-NEXT:  ; %bb.2: ; %ComputeEnd5024; GFX1164-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 05025; GFX1164-NEXT:    s_mov_b64 s[0:1], exec5026; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5027; GFX1164-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v05028; GFX1164-NEXT:    v_cmpx_eq_u32_e32 0, v05029; GFX1164-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]5030; GFX1164-NEXT:    s_cbranch_execz .LBB9_55031; GFX1164-NEXT:  ; %bb.3:5032; GFX1164-NEXT:    s_load_b64 s[0:1], s[34:35], 0x245033; GFX1164-NEXT:    v_mov_b32_e32 v6, 05034; GFX1164-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]5035; GFX1164-NEXT:    s_mov_b64 s[2:3], 05036; GFX1164-NEXT:    s_waitcnt lgkmcnt(0)5037; GFX1164-NEXT:    global_load_b64 v[2:3], v6, s[0:1]5038; GFX1164-NEXT:  .LBB9_4: ; %atomicrmw.start5039; GFX1164-NEXT:    ; =>This Inner Loop Header: Depth=15040; GFX1164-NEXT:    s_waitcnt vmcnt(0)5041; GFX1164-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]5042; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1)5043; GFX1164-NEXT:    v_max_f64 v[0:1], v[0:1], v[4:5]5044; GFX1164-NEXT:    global_atomic_cmpswap_b64 v[0:1], v6, v[0:3], s[0:1] glc5045; GFX1164-NEXT:    s_waitcnt vmcnt(0)5046; GFX1164-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[2:3]5047; GFX1164-NEXT:    v_mov_b32_e32 v3, v15048; GFX1164-NEXT:    v_mov_b32_e32 v2, v05049; GFX1164-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]5050; GFX1164-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)5051; GFX1164-NEXT:    s_and_not1_b64 exec, exec, s[2:3]5052; GFX1164-NEXT:    s_cbranch_execnz .LBB9_45053; GFX1164-NEXT:  .LBB9_5:5054; GFX1164-NEXT:    s_endpgm5055;5056; GFX1132-LABEL: global_atomic_fmax_double_uni_address_div_value_one_as_scope_unsafe:5057; GFX1132:       ; %bb.0:5058; GFX1132-NEXT:    s_mov_b64 s[34:35], s[4:5]5059; GFX1132-NEXT:    v_mov_b32_e32 v31, v05060; GFX1132-NEXT:    s_add_u32 s8, s34, 445061; GFX1132-NEXT:    s_addc_u32 s9, s35, 05062; GFX1132-NEXT:    s_getpc_b64 s[4:5]5063; GFX1132-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+45064; GFX1132-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+125065; GFX1132-NEXT:    s_mov_b32 s12, s135066; GFX1132-NEXT:    s_load_b64 s[16:17], s[4:5], 0x05067; GFX1132-NEXT:    s_mov_b64 s[10:11], s[6:7]5068; GFX1132-NEXT:    s_mov_b64 s[4:5], s[0:1]5069; GFX1132-NEXT:    s_mov_b64 s[6:7], s[2:3]5070; GFX1132-NEXT:    s_mov_b32 s13, s145071; GFX1132-NEXT:    s_mov_b32 s14, s155072; GFX1132-NEXT:    s_mov_b32 s32, 05073; GFX1132-NEXT:    s_waitcnt lgkmcnt(0)5074; GFX1132-NEXT:    s_swappc_b64 s[30:31], s[16:17]5075; GFX1132-NEXT:    v_mov_b32_e32 v4, 05076; GFX1132-NEXT:    v_mov_b32_e32 v5, 0x7ff800005077; GFX1132-NEXT:    s_mov_b32 s0, exec_lo5078; GFX1132-NEXT:  .LBB9_1: ; %ComputeLoop5079; GFX1132-NEXT:    ; =>This Inner Loop Header: Depth=15080; GFX1132-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_1)5081; GFX1132-NEXT:    s_ctz_i32_b32 s1, s05082; GFX1132-NEXT:    v_max_f64 v[2:3], v[4:5], v[4:5]5083; GFX1132-NEXT:    v_readlane_b32 s3, v1, s15084; GFX1132-NEXT:    v_readlane_b32 s2, v0, s15085; GFX1132-NEXT:    s_lshl_b32 s1, 1, s15086; GFX1132-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_1) | instid1(VALU_DEP_1)5087; GFX1132-NEXT:    s_and_not1_b32 s0, s0, s15088; GFX1132-NEXT:    v_max_f64 v[4:5], s[2:3], s[2:3]5089; GFX1132-NEXT:    v_max_f64 v[4:5], v[2:3], v[4:5]5090; GFX1132-NEXT:    s_cbranch_scc1 .LBB9_15091; GFX1132-NEXT:  ; %bb.2: ; %ComputeEnd5092; GFX1132-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 05093; GFX1132-NEXT:    s_mov_b32 s2, 05094; GFX1132-NEXT:    s_mov_b32 s0, exec_lo5095; GFX1132-NEXT:    s_delay_alu instid0(VALU_DEP_1)5096; GFX1132-NEXT:    v_cmpx_eq_u32_e32 0, v05097; GFX1132-NEXT:    s_xor_b32 s0, exec_lo, s05098; GFX1132-NEXT:    s_cbranch_execz .LBB9_55099; GFX1132-NEXT:  ; %bb.3:5100; GFX1132-NEXT:    s_load_b64 s[0:1], s[34:35], 0x245101; GFX1132-NEXT:    v_mov_b32_e32 v6, 05102; GFX1132-NEXT:    s_delay_alu instid0(VALU_DEP_4)5103; GFX1132-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]5104; GFX1132-NEXT:    s_waitcnt lgkmcnt(0)5105; GFX1132-NEXT:    global_load_b64 v[2:3], v6, s[0:1]5106; GFX1132-NEXT:  .LBB9_4: ; %atomicrmw.start5107; GFX1132-NEXT:    ; =>This Inner Loop Header: Depth=15108; GFX1132-NEXT:    s_waitcnt vmcnt(0)5109; GFX1132-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]5110; GFX1132-NEXT:    s_delay_alu instid0(VALU_DEP_1)5111; GFX1132-NEXT:    v_max_f64 v[0:1], v[0:1], v[4:5]5112; GFX1132-NEXT:    global_atomic_cmpswap_b64 v[0:1], v6, v[0:3], s[0:1] glc5113; GFX1132-NEXT:    s_waitcnt vmcnt(0)5114; GFX1132-NEXT:    v_cmp_eq_u64_e32 vcc_lo, v[0:1], v[2:3]5115; GFX1132-NEXT:    v_dual_mov_b32 v3, v1 :: v_dual_mov_b32 v2, v05116; GFX1132-NEXT:    s_or_b32 s2, vcc_lo, s25117; GFX1132-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)5118; GFX1132-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s25119; GFX1132-NEXT:    s_cbranch_execnz .LBB9_45120; GFX1132-NEXT:  .LBB9_5:5121; GFX1132-NEXT:    s_endpgm5122;5123; GFX7LESS-DPP-LABEL: global_atomic_fmax_double_uni_address_div_value_one_as_scope_unsafe:5124; GFX7LESS-DPP:       ; %bb.0:5125; GFX7LESS-DPP-NEXT:    s_mov_b32 s32, 05126; GFX7LESS-DPP-NEXT:    s_mov_b32 s48, SCRATCH_RSRC_DWORD05127; GFX7LESS-DPP-NEXT:    s_mov_b32 s49, SCRATCH_RSRC_DWORD15128; GFX7LESS-DPP-NEXT:    s_mov_b32 s50, -15129; GFX7LESS-DPP-NEXT:    s_mov_b32 s51, 0xe8f0005130; GFX7LESS-DPP-NEXT:    s_add_u32 s48, s48, s115131; GFX7LESS-DPP-NEXT:    s_addc_u32 s49, s49, 05132; GFX7LESS-DPP-NEXT:    s_mov_b32 s14, s105133; GFX7LESS-DPP-NEXT:    s_mov_b32 s13, s95134; GFX7LESS-DPP-NEXT:    s_mov_b32 s12, s85135; GFX7LESS-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]5136; GFX7LESS-DPP-NEXT:    s_load_dwordx2 s[36:37], s[4:5], 0x95137; GFX7LESS-DPP-NEXT:    s_mov_b32 s39, 0xf0005138; GFX7LESS-DPP-NEXT:    s_mov_b32 s38, -15139; GFX7LESS-DPP-NEXT:    s_add_u32 s8, s4, 445140; GFX7LESS-DPP-NEXT:    s_addc_u32 s9, s5, 05141; GFX7LESS-DPP-NEXT:    s_getpc_b64 s[4:5]5142; GFX7LESS-DPP-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+45143; GFX7LESS-DPP-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+125144; GFX7LESS-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x05145; GFX7LESS-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v25146; GFX7LESS-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v15147; GFX7LESS-DPP-NEXT:    v_or_b32_e32 v0, v0, v15148; GFX7LESS-DPP-NEXT:    v_or_b32_e32 v31, v0, v25149; GFX7LESS-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]5150; GFX7LESS-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]5151; GFX7LESS-DPP-NEXT:    s_mov_b64 s[0:1], s[48:49]5152; GFX7LESS-DPP-NEXT:    s_mov_b64 s[2:3], s[50:51]5153; GFX7LESS-DPP-NEXT:    s_waitcnt lgkmcnt(0)5154; GFX7LESS-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]5155; GFX7LESS-DPP-NEXT:    buffer_load_dwordx2 v[2:3], off, s[36:39], 05156; GFX7LESS-DPP-NEXT:    s_mov_b64 s[0:1], 05157; GFX7LESS-DPP-NEXT:    v_max_f64 v[4:5], v[0:1], v[0:1]5158; GFX7LESS-DPP-NEXT:  .LBB9_1: ; %atomicrmw.start5159; GFX7LESS-DPP-NEXT:    ; =>This Inner Loop Header: Depth=15160; GFX7LESS-DPP-NEXT:    s_waitcnt vmcnt(0)5161; GFX7LESS-DPP-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]5162; GFX7LESS-DPP-NEXT:    v_max_f64 v[0:1], v[0:1], v[4:5]5163; GFX7LESS-DPP-NEXT:    s_waitcnt expcnt(0)5164; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v9, v35165; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v8, v25166; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v7, v15167; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v6, v05168; GFX7LESS-DPP-NEXT:    buffer_atomic_cmpswap_x2 v[6:9], off, s[36:39], 0 glc5169; GFX7LESS-DPP-NEXT:    s_waitcnt vmcnt(0)5170; GFX7LESS-DPP-NEXT:    v_cmp_eq_u64_e32 vcc, v[6:7], v[2:3]5171; GFX7LESS-DPP-NEXT:    s_or_b64 s[0:1], vcc, s[0:1]5172; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v2, v65173; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v3, v75174; GFX7LESS-DPP-NEXT:    s_andn2_b64 exec, exec, s[0:1]5175; GFX7LESS-DPP-NEXT:    s_cbranch_execnz .LBB9_15176; GFX7LESS-DPP-NEXT:  ; %bb.2: ; %atomicrmw.end5177; GFX7LESS-DPP-NEXT:    s_endpgm5178;5179; GFX9-DPP-LABEL: global_atomic_fmax_double_uni_address_div_value_one_as_scope_unsafe:5180; GFX9-DPP:       ; %bb.0:5181; GFX9-DPP-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD05182; GFX9-DPP-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD15183; GFX9-DPP-NEXT:    s_mov_b32 s38, -15184; GFX9-DPP-NEXT:    s_mov_b32 s39, 0xe000005185; GFX9-DPP-NEXT:    s_add_u32 s36, s36, s115186; GFX9-DPP-NEXT:    s_addc_u32 s37, s37, 05187; GFX9-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]5188; GFX9-DPP-NEXT:    s_mov_b32 s12, s85189; GFX9-DPP-NEXT:    s_add_u32 s8, s34, 445190; GFX9-DPP-NEXT:    s_mov_b32 s13, s95191; GFX9-DPP-NEXT:    s_addc_u32 s9, s35, 05192; GFX9-DPP-NEXT:    s_getpc_b64 s[4:5]5193; GFX9-DPP-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+45194; GFX9-DPP-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+125195; GFX9-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x05196; GFX9-DPP-NEXT:    s_mov_b32 s14, s105197; GFX9-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]5198; GFX9-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v25199; GFX9-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v15200; GFX9-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]5201; GFX9-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]5202; GFX9-DPP-NEXT:    s_mov_b64 s[0:1], s[36:37]5203; GFX9-DPP-NEXT:    v_or3_b32 v31, v0, v1, v25204; GFX9-DPP-NEXT:    s_mov_b64 s[2:3], s[38:39]5205; GFX9-DPP-NEXT:    s_mov_b32 s32, 05206; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)5207; GFX9-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]5208; GFX9-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -15209; GFX9-DPP-NEXT:    v_mov_b32_e32 v4, 0x7ff800005210; GFX9-DPP-NEXT:    v_cndmask_b32_e64 v6, v4, v1, s[0:1]5211; GFX9-DPP-NEXT:    v_cndmask_b32_e64 v5, 0, v0, s[0:1]5212; GFX9-DPP-NEXT:    v_mov_b32_e32 v8, 0x7ff800005213; GFX9-DPP-NEXT:    v_mov_b32_e32 v7, 05214; GFX9-DPP-NEXT:    v_mov_b32_e32 v3, 05215; GFX9-DPP-NEXT:    v_mov_b32_dpp v8, v6 row_shr:1 row_mask:0xf bank_mask:0xf5216; GFX9-DPP-NEXT:    v_mov_b32_dpp v7, v5 row_shr:1 row_mask:0xf bank_mask:0xf5217; GFX9-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]5218; GFX9-DPP-NEXT:    v_max_f64 v[7:8], v[7:8], v[7:8]5219; GFX9-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[7:8]5220; GFX9-DPP-NEXT:    v_mov_b32_e32 v8, 0x7ff800005221; GFX9-DPP-NEXT:    v_mov_b32_e32 v7, 05222; GFX9-DPP-NEXT:    s_nop 05223; GFX9-DPP-NEXT:    v_mov_b32_dpp v8, v6 row_shr:2 row_mask:0xf bank_mask:0xf5224; GFX9-DPP-NEXT:    v_mov_b32_dpp v7, v5 row_shr:2 row_mask:0xf bank_mask:0xf5225; GFX9-DPP-NEXT:    v_max_f64 v[7:8], v[7:8], v[7:8]5226; GFX9-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[7:8]5227; GFX9-DPP-NEXT:    v_mov_b32_e32 v8, 0x7ff800005228; GFX9-DPP-NEXT:    v_mov_b32_e32 v7, 05229; GFX9-DPP-NEXT:    s_nop 05230; GFX9-DPP-NEXT:    v_mov_b32_dpp v8, v6 row_shr:4 row_mask:0xf bank_mask:0xf5231; GFX9-DPP-NEXT:    v_mov_b32_dpp v7, v5 row_shr:4 row_mask:0xf bank_mask:0xf5232; GFX9-DPP-NEXT:    v_max_f64 v[7:8], v[7:8], v[7:8]5233; GFX9-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[7:8]5234; GFX9-DPP-NEXT:    v_mov_b32_e32 v8, 0x7ff800005235; GFX9-DPP-NEXT:    v_mov_b32_e32 v7, 05236; GFX9-DPP-NEXT:    s_nop 05237; GFX9-DPP-NEXT:    v_mov_b32_dpp v8, v6 row_shr:8 row_mask:0xf bank_mask:0xf5238; GFX9-DPP-NEXT:    v_mov_b32_dpp v7, v5 row_shr:8 row_mask:0xf bank_mask:0xf5239; GFX9-DPP-NEXT:    v_max_f64 v[7:8], v[7:8], v[7:8]5240; GFX9-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[7:8]5241; GFX9-DPP-NEXT:    v_mov_b32_e32 v8, 0x7ff800005242; GFX9-DPP-NEXT:    v_mov_b32_e32 v7, 05243; GFX9-DPP-NEXT:    s_nop 05244; GFX9-DPP-NEXT:    v_mov_b32_dpp v8, v6 row_bcast:15 row_mask:0xa bank_mask:0xf5245; GFX9-DPP-NEXT:    v_mov_b32_dpp v7, v5 row_bcast:15 row_mask:0xa bank_mask:0xf5246; GFX9-DPP-NEXT:    v_max_f64 v[7:8], v[7:8], v[7:8]5247; GFX9-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[7:8]5248; GFX9-DPP-NEXT:    s_nop 15249; GFX9-DPP-NEXT:    v_mov_b32_dpp v4, v6 row_bcast:31 row_mask:0xc bank_mask:0xf5250; GFX9-DPP-NEXT:    v_mov_b32_dpp v3, v5 row_bcast:31 row_mask:0xc bank_mask:0xf5251; GFX9-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[3:4]5252; GFX9-DPP-NEXT:    v_max_f64 v[3:4], v[5:6], v[3:4]5253; GFX9-DPP-NEXT:    s_mov_b64 exec, s[0:1]5254; GFX9-DPP-NEXT:    v_mov_b32_e32 v0, 05255; GFX9-DPP-NEXT:    v_mbcnt_lo_u32_b32 v1, exec_lo, 05256; GFX9-DPP-NEXT:    v_mbcnt_hi_u32_b32 v1, exec_hi, v15257; GFX9-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -15258; GFX9-DPP-NEXT:    v_readlane_b32 s3, v4, 635259; GFX9-DPP-NEXT:    v_readlane_b32 s2, v3, 635260; GFX9-DPP-NEXT:    s_mov_b64 exec, s[0:1]5261; GFX9-DPP-NEXT:    s_mov_b64 s[0:1], s[2:3]5262; GFX9-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v15263; GFX9-DPP-NEXT:    s_and_saveexec_b64 s[2:3], vcc5264; GFX9-DPP-NEXT:    s_cbranch_execz .LBB9_35265; GFX9-DPP-NEXT:  ; %bb.1:5266; GFX9-DPP-NEXT:    s_load_dwordx2 s[2:3], s[34:35], 0x245267; GFX9-DPP-NEXT:    s_mov_b64 s[4:5], 05268; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)5269; GFX9-DPP-NEXT:    global_load_dwordx2 v[11:12], v0, s[2:3]5270; GFX9-DPP-NEXT:  .LBB9_2: ; %atomicrmw.start5271; GFX9-DPP-NEXT:    ; =>This Inner Loop Header: Depth=15272; GFX9-DPP-NEXT:    v_max_f64 v[1:2], s[0:1], s[0:1]5273; GFX9-DPP-NEXT:    s_waitcnt vmcnt(0)5274; GFX9-DPP-NEXT:    v_max_f64 v[9:10], v[11:12], v[11:12]5275; GFX9-DPP-NEXT:    v_max_f64 v[9:10], v[9:10], v[1:2]5276; GFX9-DPP-NEXT:    global_atomic_cmpswap_x2 v[1:2], v0, v[9:12], s[2:3] glc5277; GFX9-DPP-NEXT:    s_waitcnt vmcnt(0)5278; GFX9-DPP-NEXT:    v_cmp_eq_u64_e32 vcc, v[1:2], v[11:12]5279; GFX9-DPP-NEXT:    v_mov_b32_e32 v12, v25280; GFX9-DPP-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]5281; GFX9-DPP-NEXT:    v_mov_b32_e32 v11, v15282; GFX9-DPP-NEXT:    s_andn2_b64 exec, exec, s[4:5]5283; GFX9-DPP-NEXT:    s_cbranch_execnz .LBB9_25284; GFX9-DPP-NEXT:  .LBB9_3:5285; GFX9-DPP-NEXT:    s_endpgm5286;5287; GFX1064-DPP-LABEL: global_atomic_fmax_double_uni_address_div_value_one_as_scope_unsafe:5288; GFX1064-DPP:       ; %bb.0:5289; GFX1064-DPP-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD05290; GFX1064-DPP-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD15291; GFX1064-DPP-NEXT:    s_mov_b32 s38, -15292; GFX1064-DPP-NEXT:    s_mov_b32 s39, 0x31e160005293; GFX1064-DPP-NEXT:    s_add_u32 s36, s36, s115294; GFX1064-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]5295; GFX1064-DPP-NEXT:    s_addc_u32 s37, s37, 05296; GFX1064-DPP-NEXT:    s_mov_b32 s12, s85297; GFX1064-DPP-NEXT:    s_add_u32 s8, s34, 445298; GFX1064-DPP-NEXT:    s_mov_b32 s13, s95299; GFX1064-DPP-NEXT:    s_addc_u32 s9, s35, 05300; GFX1064-DPP-NEXT:    s_getpc_b64 s[4:5]5301; GFX1064-DPP-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+45302; GFX1064-DPP-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+125303; GFX1064-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v25304; GFX1064-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x05305; GFX1064-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v15306; GFX1064-DPP-NEXT:    s_mov_b32 s14, s105307; GFX1064-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]5308; GFX1064-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]5309; GFX1064-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]5310; GFX1064-DPP-NEXT:    v_or3_b32 v31, v0, v1, v25311; GFX1064-DPP-NEXT:    s_mov_b64 s[0:1], s[36:37]5312; GFX1064-DPP-NEXT:    s_mov_b64 s[2:3], s[38:39]5313; GFX1064-DPP-NEXT:    s_mov_b32 s32, 05314; GFX1064-DPP-NEXT:    s_waitcnt lgkmcnt(0)5315; GFX1064-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]5316; GFX1064-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -15317; GFX1064-DPP-NEXT:    v_mov_b32_e32 v4, 0x7ff800005318; GFX1064-DPP-NEXT:    v_mov_b32_e32 v3, 05319; GFX1064-DPP-NEXT:    v_cndmask_b32_e64 v6, 0x7ff80000, v1, s[0:1]5320; GFX1064-DPP-NEXT:    v_cndmask_b32_e64 v5, 0, v0, s[0:1]5321; GFX1064-DPP-NEXT:    v_mov_b32_dpp v4, v6 row_xmask:1 row_mask:0xf bank_mask:0xf5322; GFX1064-DPP-NEXT:    v_mov_b32_dpp v3, v5 row_xmask:1 row_mask:0xf bank_mask:0xf5323; GFX1064-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]5324; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[3:4]5325; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], v[5:6], v[3:4]5326; GFX1064-DPP-NEXT:    v_mov_b32_e32 v6, 0x7ff800005327; GFX1064-DPP-NEXT:    v_mov_b32_e32 v5, 05328; GFX1064-DPP-NEXT:    v_mov_b32_dpp v6, v4 row_xmask:2 row_mask:0xf bank_mask:0xf5329; GFX1064-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:2 row_mask:0xf bank_mask:0xf5330; GFX1064-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]5331; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]5332; GFX1064-DPP-NEXT:    v_mov_b32_e32 v6, 0x7ff800005333; GFX1064-DPP-NEXT:    v_mov_b32_e32 v5, 05334; GFX1064-DPP-NEXT:    v_mov_b32_dpp v6, v4 row_xmask:4 row_mask:0xf bank_mask:0xf5335; GFX1064-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:4 row_mask:0xf bank_mask:0xf5336; GFX1064-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]5337; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]5338; GFX1064-DPP-NEXT:    v_mov_b32_e32 v6, 0x7ff800005339; GFX1064-DPP-NEXT:    v_mov_b32_e32 v5, 05340; GFX1064-DPP-NEXT:    v_mov_b32_dpp v6, v4 row_xmask:8 row_mask:0xf bank_mask:0xf5341; GFX1064-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:8 row_mask:0xf bank_mask:0xf5342; GFX1064-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]5343; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]5344; GFX1064-DPP-NEXT:    v_permlanex16_b32 v6, v4, 0, 05345; GFX1064-DPP-NEXT:    v_permlanex16_b32 v5, v3, 0, 05346; GFX1064-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]5347; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]5348; GFX1064-DPP-NEXT:    v_readlane_b32 s3, v4, 05349; GFX1064-DPP-NEXT:    v_readlane_b32 s5, v4, 325350; GFX1064-DPP-NEXT:    v_readlane_b32 s4, v3, 325351; GFX1064-DPP-NEXT:    v_readlane_b32 s2, v3, 05352; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], s[4:5], s[4:5]5353; GFX1064-DPP-NEXT:    v_max_f64 v[5:6], s[2:3], s[2:3]5354; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], v[5:6], v[3:4]5355; GFX1064-DPP-NEXT:    s_mov_b64 exec, s[0:1]5356; GFX1064-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 05357; GFX1064-DPP-NEXT:    v_mov_b32_e32 v2, 05358; GFX1064-DPP-NEXT:    v_mbcnt_hi_u32_b32 v7, exec_hi, v05359; GFX1064-DPP-NEXT:    v_mov_b32_e32 v0, v35360; GFX1064-DPP-NEXT:    v_mov_b32_e32 v1, v45361; GFX1064-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v75362; GFX1064-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc5363; GFX1064-DPP-NEXT:    s_cbranch_execz .LBB9_25364; GFX1064-DPP-NEXT:  ; %bb.1:5365; GFX1064-DPP-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x245366; GFX1064-DPP-NEXT:    s_waitcnt lgkmcnt(0)5367; GFX1064-DPP-NEXT:    global_atomic_fmax_x2 v2, v[0:1], s[0:1]5368; GFX1064-DPP-NEXT:  .LBB9_2:5369; GFX1064-DPP-NEXT:    s_endpgm5370;5371; GFX1032-DPP-LABEL: global_atomic_fmax_double_uni_address_div_value_one_as_scope_unsafe:5372; GFX1032-DPP:       ; %bb.0:5373; GFX1032-DPP-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD05374; GFX1032-DPP-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD15375; GFX1032-DPP-NEXT:    s_mov_b32 s38, -15376; GFX1032-DPP-NEXT:    s_mov_b32 s39, 0x31c160005377; GFX1032-DPP-NEXT:    s_add_u32 s36, s36, s115378; GFX1032-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]5379; GFX1032-DPP-NEXT:    s_addc_u32 s37, s37, 05380; GFX1032-DPP-NEXT:    s_mov_b32 s12, s85381; GFX1032-DPP-NEXT:    s_add_u32 s8, s34, 445382; GFX1032-DPP-NEXT:    s_mov_b32 s13, s95383; GFX1032-DPP-NEXT:    s_addc_u32 s9, s35, 05384; GFX1032-DPP-NEXT:    s_getpc_b64 s[4:5]5385; GFX1032-DPP-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+45386; GFX1032-DPP-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+125387; GFX1032-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v25388; GFX1032-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x05389; GFX1032-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v15390; GFX1032-DPP-NEXT:    s_mov_b32 s14, s105391; GFX1032-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]5392; GFX1032-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]5393; GFX1032-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]5394; GFX1032-DPP-NEXT:    v_or3_b32 v31, v0, v1, v25395; GFX1032-DPP-NEXT:    s_mov_b64 s[0:1], s[36:37]5396; GFX1032-DPP-NEXT:    s_mov_b64 s[2:3], s[38:39]5397; GFX1032-DPP-NEXT:    s_mov_b32 s32, 05398; GFX1032-DPP-NEXT:    s_waitcnt lgkmcnt(0)5399; GFX1032-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]5400; GFX1032-DPP-NEXT:    s_or_saveexec_b32 s0, -15401; GFX1032-DPP-NEXT:    v_mov_b32_e32 v4, 0x7ff800005402; GFX1032-DPP-NEXT:    v_mov_b32_e32 v3, 05403; GFX1032-DPP-NEXT:    v_cndmask_b32_e64 v6, 0x7ff80000, v1, s05404; GFX1032-DPP-NEXT:    v_cndmask_b32_e64 v5, 0, v0, s05405; GFX1032-DPP-NEXT:    v_mov_b32_dpp v4, v6 row_xmask:1 row_mask:0xf bank_mask:0xf5406; GFX1032-DPP-NEXT:    v_mov_b32_dpp v3, v5 row_xmask:1 row_mask:0xf bank_mask:0xf5407; GFX1032-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]5408; GFX1032-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[3:4]5409; GFX1032-DPP-NEXT:    v_max_f64 v[3:4], v[5:6], v[3:4]5410; GFX1032-DPP-NEXT:    v_mov_b32_e32 v6, 0x7ff800005411; GFX1032-DPP-NEXT:    v_mov_b32_e32 v5, 05412; GFX1032-DPP-NEXT:    v_mov_b32_dpp v6, v4 row_xmask:2 row_mask:0xf bank_mask:0xf5413; GFX1032-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:2 row_mask:0xf bank_mask:0xf5414; GFX1032-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]5415; GFX1032-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]5416; GFX1032-DPP-NEXT:    v_mov_b32_e32 v6, 0x7ff800005417; GFX1032-DPP-NEXT:    v_mov_b32_e32 v5, 05418; GFX1032-DPP-NEXT:    v_mov_b32_dpp v6, v4 row_xmask:4 row_mask:0xf bank_mask:0xf5419; GFX1032-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:4 row_mask:0xf bank_mask:0xf5420; GFX1032-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]5421; GFX1032-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]5422; GFX1032-DPP-NEXT:    v_mov_b32_e32 v6, 0x7ff800005423; GFX1032-DPP-NEXT:    v_mov_b32_e32 v5, 05424; GFX1032-DPP-NEXT:    v_mov_b32_dpp v6, v4 row_xmask:8 row_mask:0xf bank_mask:0xf5425; GFX1032-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:8 row_mask:0xf bank_mask:0xf5426; GFX1032-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]5427; GFX1032-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]5428; GFX1032-DPP-NEXT:    v_permlanex16_b32 v6, v4, 0, 05429; GFX1032-DPP-NEXT:    v_permlanex16_b32 v5, v3, 0, 05430; GFX1032-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]5431; GFX1032-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]5432; GFX1032-DPP-NEXT:    s_mov_b32 exec_lo, s05433; GFX1032-DPP-NEXT:    v_mbcnt_lo_u32_b32 v7, exec_lo, 05434; GFX1032-DPP-NEXT:    v_mov_b32_e32 v0, v35435; GFX1032-DPP-NEXT:    v_mov_b32_e32 v2, 05436; GFX1032-DPP-NEXT:    v_mov_b32_e32 v1, v45437; GFX1032-DPP-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v75438; GFX1032-DPP-NEXT:    s_and_saveexec_b32 s0, vcc_lo5439; GFX1032-DPP-NEXT:    s_cbranch_execz .LBB9_25440; GFX1032-DPP-NEXT:  ; %bb.1:5441; GFX1032-DPP-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x245442; GFX1032-DPP-NEXT:    s_waitcnt lgkmcnt(0)5443; GFX1032-DPP-NEXT:    global_atomic_fmax_x2 v2, v[0:1], s[0:1]5444; GFX1032-DPP-NEXT:  .LBB9_2:5445; GFX1032-DPP-NEXT:    s_endpgm5446;5447; GFX1164-DPP-LABEL: global_atomic_fmax_double_uni_address_div_value_one_as_scope_unsafe:5448; GFX1164-DPP:       ; %bb.0:5449; GFX1164-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]5450; GFX1164-DPP-NEXT:    s_mov_b32 s12, s85451; GFX1164-DPP-NEXT:    s_add_u32 s8, s34, 445452; GFX1164-DPP-NEXT:    s_mov_b32 s13, s95453; GFX1164-DPP-NEXT:    s_addc_u32 s9, s35, 05454; GFX1164-DPP-NEXT:    s_getpc_b64 s[4:5]5455; GFX1164-DPP-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+45456; GFX1164-DPP-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+125457; GFX1164-DPP-NEXT:    v_mov_b32_e32 v31, v05458; GFX1164-DPP-NEXT:    s_load_b64 s[16:17], s[4:5], 0x05459; GFX1164-DPP-NEXT:    s_mov_b32 s14, s105460; GFX1164-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]5461; GFX1164-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]5462; GFX1164-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]5463; GFX1164-DPP-NEXT:    s_mov_b32 s32, 05464; GFX1164-DPP-NEXT:    s_waitcnt lgkmcnt(0)5465; GFX1164-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]5466; GFX1164-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -15467; GFX1164-DPP-NEXT:    v_mov_b32_e32 v3, 0x7ff800005468; GFX1164-DPP-NEXT:    v_mov_b32_e32 v2, 05469; GFX1164-DPP-NEXT:    v_cndmask_b32_e64 v5, 0x7ff80000, v1, s[0:1]5470; GFX1164-DPP-NEXT:    v_cndmask_b32_e64 v4, 0, v0, s[0:1]5471; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)5472; GFX1164-DPP-NEXT:    v_mov_b32_dpp v3, v5 row_xmask:1 row_mask:0xf bank_mask:0xf5473; GFX1164-DPP-NEXT:    v_mov_b32_dpp v2, v4 row_xmask:1 row_mask:0xf bank_mask:0xf5474; GFX1164-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]5475; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)5476; GFX1164-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[2:3]5477; GFX1164-DPP-NEXT:    v_max_f64 v[2:3], v[4:5], v[2:3]5478; GFX1164-DPP-NEXT:    v_mov_b32_e32 v5, 0x7ff800005479; GFX1164-DPP-NEXT:    v_mov_b32_e32 v4, 05480; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)5481; GFX1164-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:2 row_mask:0xf bank_mask:0xf5482; GFX1164-DPP-NEXT:    v_mov_b32_dpp v4, v2 row_xmask:2 row_mask:0xf bank_mask:0xf5483; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5484; GFX1164-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]5485; GFX1164-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]5486; GFX1164-DPP-NEXT:    v_mov_b32_e32 v5, 0x7ff800005487; GFX1164-DPP-NEXT:    v_mov_b32_e32 v4, 05488; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)5489; GFX1164-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:4 row_mask:0xf bank_mask:0xf5490; GFX1164-DPP-NEXT:    v_mov_b32_dpp v4, v2 row_xmask:4 row_mask:0xf bank_mask:0xf5491; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5492; GFX1164-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]5493; GFX1164-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]5494; GFX1164-DPP-NEXT:    v_mov_b32_e32 v5, 0x7ff800005495; GFX1164-DPP-NEXT:    v_mov_b32_e32 v4, 05496; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)5497; GFX1164-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:8 row_mask:0xf bank_mask:0xf5498; GFX1164-DPP-NEXT:    v_mov_b32_dpp v4, v2 row_xmask:8 row_mask:0xf bank_mask:0xf5499; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5500; GFX1164-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]5501; GFX1164-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]5502; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)5503; GFX1164-DPP-NEXT:    v_permlanex16_b32 v5, v3, 0, 05504; GFX1164-DPP-NEXT:    v_permlanex16_b32 v4, v2, 0, 05505; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5506; GFX1164-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]5507; GFX1164-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]5508; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)5509; GFX1164-DPP-NEXT:    v_permlane64_b32 v5, v35510; GFX1164-DPP-NEXT:    v_permlane64_b32 v4, v25511; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5512; GFX1164-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]5513; GFX1164-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]5514; GFX1164-DPP-NEXT:    s_mov_b64 exec, s[0:1]5515; GFX1164-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_3) | instid1(VALU_DEP_2)5516; GFX1164-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 05517; GFX1164-DPP-NEXT:    v_mov_b32_e32 v10, 05518; GFX1164-DPP-NEXT:    s_mov_b64 s[0:1], exec5519; GFX1164-DPP-NEXT:    s_waitcnt_depctr depctr_sa_sdst(0)5520; GFX1164-DPP-NEXT:    v_mbcnt_hi_u32_b32 v6, exec_hi, v05521; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_4) | instskip(SKIP_1) | instid1(VALU_DEP_3)5522; GFX1164-DPP-NEXT:    v_mov_b32_e32 v0, v25523; GFX1164-DPP-NEXT:    v_mov_b32_e32 v1, v35524; GFX1164-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v65525; GFX1164-DPP-NEXT:    s_cbranch_execz .LBB9_35526; GFX1164-DPP-NEXT:  ; %bb.1:5527; GFX1164-DPP-NEXT:    s_load_b64 s[0:1], s[34:35], 0x245528; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2)5529; GFX1164-DPP-NEXT:    v_max_f64 v[0:1], v[0:1], v[0:1]5530; GFX1164-DPP-NEXT:    s_mov_b64 s[2:3], 05531; GFX1164-DPP-NEXT:    s_waitcnt lgkmcnt(0)5532; GFX1164-DPP-NEXT:    global_load_b64 v[8:9], v10, s[0:1]5533; GFX1164-DPP-NEXT:  .LBB9_2: ; %atomicrmw.start5534; GFX1164-DPP-NEXT:    ; =>This Inner Loop Header: Depth=15535; GFX1164-DPP-NEXT:    s_waitcnt vmcnt(0)5536; GFX1164-DPP-NEXT:    v_max_f64 v[6:7], v[8:9], v[8:9]5537; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1)5538; GFX1164-DPP-NEXT:    v_max_f64 v[6:7], v[6:7], v[0:1]5539; GFX1164-DPP-NEXT:    global_atomic_cmpswap_b64 v[6:7], v10, v[6:9], s[0:1] glc5540; GFX1164-DPP-NEXT:    s_waitcnt vmcnt(0)5541; GFX1164-DPP-NEXT:    v_cmp_eq_u64_e32 vcc, v[6:7], v[8:9]5542; GFX1164-DPP-NEXT:    v_mov_b32_e32 v9, v75543; GFX1164-DPP-NEXT:    v_mov_b32_e32 v8, v65544; GFX1164-DPP-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]5545; GFX1164-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)5546; GFX1164-DPP-NEXT:    s_and_not1_b64 exec, exec, s[2:3]5547; GFX1164-DPP-NEXT:    s_cbranch_execnz .LBB9_25548; GFX1164-DPP-NEXT:  .LBB9_3:5549; GFX1164-DPP-NEXT:    s_endpgm5550;5551; GFX1132-DPP-LABEL: global_atomic_fmax_double_uni_address_div_value_one_as_scope_unsafe:5552; GFX1132-DPP:       ; %bb.0:5553; GFX1132-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]5554; GFX1132-DPP-NEXT:    v_mov_b32_e32 v31, v05555; GFX1132-DPP-NEXT:    s_add_u32 s8, s34, 445556; GFX1132-DPP-NEXT:    s_addc_u32 s9, s35, 05557; GFX1132-DPP-NEXT:    s_getpc_b64 s[4:5]5558; GFX1132-DPP-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+45559; GFX1132-DPP-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+125560; GFX1132-DPP-NEXT:    s_mov_b32 s12, s135561; GFX1132-DPP-NEXT:    s_load_b64 s[16:17], s[4:5], 0x05562; GFX1132-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]5563; GFX1132-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]5564; GFX1132-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]5565; GFX1132-DPP-NEXT:    s_mov_b32 s13, s145566; GFX1132-DPP-NEXT:    s_mov_b32 s14, s155567; GFX1132-DPP-NEXT:    s_mov_b32 s32, 05568; GFX1132-DPP-NEXT:    s_waitcnt lgkmcnt(0)5569; GFX1132-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]5570; GFX1132-DPP-NEXT:    s_or_saveexec_b32 s0, -15571; GFX1132-DPP-NEXT:    v_dual_mov_b32 v3, 0x7ff80000 :: v_dual_mov_b32 v2, 05572; GFX1132-DPP-NEXT:    v_cndmask_b32_e64 v5, 0x7ff80000, v1, s05573; GFX1132-DPP-NEXT:    v_cndmask_b32_e64 v4, 0, v0, s05574; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)5575; GFX1132-DPP-NEXT:    v_mov_b32_dpp v3, v5 row_xmask:1 row_mask:0xf bank_mask:0xf5576; GFX1132-DPP-NEXT:    v_mov_b32_dpp v2, v4 row_xmask:1 row_mask:0xf bank_mask:0xf5577; GFX1132-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]5578; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)5579; GFX1132-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[2:3]5580; GFX1132-DPP-NEXT:    v_max_f64 v[2:3], v[4:5], v[2:3]5581; GFX1132-DPP-NEXT:    v_dual_mov_b32 v5, 0x7ff80000 :: v_dual_mov_b32 v4, 05582; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)5583; GFX1132-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:2 row_mask:0xf bank_mask:0xf5584; GFX1132-DPP-NEXT:    v_mov_b32_dpp v4, v2 row_xmask:2 row_mask:0xf bank_mask:0xf5585; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5586; GFX1132-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]5587; GFX1132-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]5588; GFX1132-DPP-NEXT:    v_dual_mov_b32 v5, 0x7ff80000 :: v_dual_mov_b32 v4, 05589; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)5590; GFX1132-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:4 row_mask:0xf bank_mask:0xf5591; GFX1132-DPP-NEXT:    v_mov_b32_dpp v4, v2 row_xmask:4 row_mask:0xf bank_mask:0xf5592; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5593; GFX1132-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]5594; GFX1132-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]5595; GFX1132-DPP-NEXT:    v_dual_mov_b32 v5, 0x7ff80000 :: v_dual_mov_b32 v4, 05596; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)5597; GFX1132-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:8 row_mask:0xf bank_mask:0xf5598; GFX1132-DPP-NEXT:    v_mov_b32_dpp v4, v2 row_xmask:8 row_mask:0xf bank_mask:0xf5599; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5600; GFX1132-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]5601; GFX1132-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]5602; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)5603; GFX1132-DPP-NEXT:    v_permlanex16_b32 v5, v3, 0, 05604; GFX1132-DPP-NEXT:    v_permlanex16_b32 v4, v2, 0, 05605; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5606; GFX1132-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]5607; GFX1132-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]5608; GFX1132-DPP-NEXT:    s_mov_b32 exec_lo, s05609; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_3)5610; GFX1132-DPP-NEXT:    v_mov_b32_e32 v0, v25611; GFX1132-DPP-NEXT:    v_mbcnt_lo_u32_b32 v6, exec_lo, 05612; GFX1132-DPP-NEXT:    v_dual_mov_b32 v10, 0 :: v_dual_mov_b32 v1, v35613; GFX1132-DPP-NEXT:    s_mov_b32 s2, 05614; GFX1132-DPP-NEXT:    s_mov_b32 s0, exec_lo5615; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2)5616; GFX1132-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v65617; GFX1132-DPP-NEXT:    s_cbranch_execz .LBB9_35618; GFX1132-DPP-NEXT:  ; %bb.1:5619; GFX1132-DPP-NEXT:    s_load_b64 s[0:1], s[34:35], 0x245620; GFX1132-DPP-NEXT:    v_max_f64 v[0:1], v[0:1], v[0:1]5621; GFX1132-DPP-NEXT:    s_waitcnt lgkmcnt(0)5622; GFX1132-DPP-NEXT:    global_load_b64 v[8:9], v10, s[0:1]5623; GFX1132-DPP-NEXT:  .LBB9_2: ; %atomicrmw.start5624; GFX1132-DPP-NEXT:    ; =>This Inner Loop Header: Depth=15625; GFX1132-DPP-NEXT:    s_waitcnt vmcnt(0)5626; GFX1132-DPP-NEXT:    v_max_f64 v[6:7], v[8:9], v[8:9]5627; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1)5628; GFX1132-DPP-NEXT:    v_max_f64 v[6:7], v[6:7], v[0:1]5629; GFX1132-DPP-NEXT:    global_atomic_cmpswap_b64 v[6:7], v10, v[6:9], s[0:1] glc5630; GFX1132-DPP-NEXT:    s_waitcnt vmcnt(0)5631; GFX1132-DPP-NEXT:    v_cmp_eq_u64_e32 vcc_lo, v[6:7], v[8:9]5632; GFX1132-DPP-NEXT:    v_dual_mov_b32 v9, v7 :: v_dual_mov_b32 v8, v65633; GFX1132-DPP-NEXT:    s_or_b32 s2, vcc_lo, s25634; GFX1132-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)5635; GFX1132-DPP-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s25636; GFX1132-DPP-NEXT:    s_cbranch_execnz .LBB9_25637; GFX1132-DPP-NEXT:  .LBB9_3:5638; GFX1132-DPP-NEXT:    s_endpgm5639  %divValue = call double @div.double.value()5640  %result = atomicrmw fmax ptr addrspace(1) %ptr, double %divValue syncscope("one-as") monotonic, !amdgpu.no.fine.grained.memory !15641  ret void5642}5643 5644define amdgpu_kernel void @global_atomic_fmax_double_uni_address_uni_value_default_scope_unsafe(ptr addrspace(1) %ptr) #0 {5645; GFX7LESS-LABEL: global_atomic_fmax_double_uni_address_uni_value_default_scope_unsafe:5646; GFX7LESS:       ; %bb.0:5647; GFX7LESS-NEXT:    v_mbcnt_lo_u32_b32_e64 v0, exec_lo, 05648; GFX7LESS-NEXT:    v_mbcnt_hi_u32_b32_e32 v0, exec_hi, v05649; GFX7LESS-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v05650; GFX7LESS-NEXT:    s_and_saveexec_b64 s[0:1], vcc5651; GFX7LESS-NEXT:    s_cbranch_execz .LBB10_35652; GFX7LESS-NEXT:  ; %bb.1:5653; GFX7LESS-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x95654; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)5655; GFX7LESS-NEXT:    s_load_dwordx2 s[6:7], s[0:1], 0x05656; GFX7LESS-NEXT:    s_mov_b64 s[4:5], 05657; GFX7LESS-NEXT:    s_mov_b32 s3, 0xf0005658; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)5659; GFX7LESS-NEXT:    v_mov_b32_e32 v2, s65660; GFX7LESS-NEXT:    v_mov_b32_e32 v3, s75661; GFX7LESS-NEXT:    s_mov_b32 s2, -15662; GFX7LESS-NEXT:  .LBB10_2: ; %atomicrmw.start5663; GFX7LESS-NEXT:    ; =>This Inner Loop Header: Depth=15664; GFX7LESS-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]5665; GFX7LESS-NEXT:    v_max_f64 v[0:1], v[0:1], 4.05666; GFX7LESS-NEXT:    s_waitcnt expcnt(0)5667; GFX7LESS-NEXT:    v_mov_b32_e32 v7, v35668; GFX7LESS-NEXT:    v_mov_b32_e32 v6, v25669; GFX7LESS-NEXT:    v_mov_b32_e32 v5, v15670; GFX7LESS-NEXT:    v_mov_b32_e32 v4, v05671; GFX7LESS-NEXT:    buffer_atomic_cmpswap_x2 v[4:7], off, s[0:3], 0 glc5672; GFX7LESS-NEXT:    s_waitcnt vmcnt(0)5673; GFX7LESS-NEXT:    v_cmp_eq_u64_e32 vcc, v[4:5], v[2:3]5674; GFX7LESS-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]5675; GFX7LESS-NEXT:    v_mov_b32_e32 v2, v45676; GFX7LESS-NEXT:    v_mov_b32_e32 v3, v55677; GFX7LESS-NEXT:    s_andn2_b64 exec, exec, s[4:5]5678; GFX7LESS-NEXT:    s_cbranch_execnz .LBB10_25679; GFX7LESS-NEXT:  .LBB10_3:5680; GFX7LESS-NEXT:    s_endpgm5681;5682; GFX9-LABEL: global_atomic_fmax_double_uni_address_uni_value_default_scope_unsafe:5683; GFX9:       ; %bb.0:5684; GFX9-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 05685; GFX9-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v05686; GFX9-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v05687; GFX9-NEXT:    s_and_saveexec_b64 s[0:1], vcc5688; GFX9-NEXT:    s_cbranch_execz .LBB10_35689; GFX9-NEXT:  ; %bb.1:5690; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x245691; GFX9-NEXT:    s_mov_b64 s[2:3], 05692; GFX9-NEXT:    v_mov_b32_e32 v4, 05693; GFX9-NEXT:    s_waitcnt lgkmcnt(0)5694; GFX9-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x05695; GFX9-NEXT:    s_waitcnt lgkmcnt(0)5696; GFX9-NEXT:    v_mov_b32_e32 v2, s45697; GFX9-NEXT:    v_mov_b32_e32 v3, s55698; GFX9-NEXT:  .LBB10_2: ; %atomicrmw.start5699; GFX9-NEXT:    ; =>This Inner Loop Header: Depth=15700; GFX9-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]5701; GFX9-NEXT:    v_max_f64 v[0:1], v[0:1], 4.05702; GFX9-NEXT:    global_atomic_cmpswap_x2 v[0:1], v4, v[0:3], s[0:1] glc5703; GFX9-NEXT:    s_waitcnt vmcnt(0)5704; GFX9-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[2:3]5705; GFX9-NEXT:    v_mov_b32_e32 v3, v15706; GFX9-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]5707; GFX9-NEXT:    v_mov_b32_e32 v2, v05708; GFX9-NEXT:    s_andn2_b64 exec, exec, s[2:3]5709; GFX9-NEXT:    s_cbranch_execnz .LBB10_25710; GFX9-NEXT:  .LBB10_3:5711; GFX9-NEXT:    s_endpgm5712;5713; GFX1064-LABEL: global_atomic_fmax_double_uni_address_uni_value_default_scope_unsafe:5714; GFX1064:       ; %bb.0:5715; GFX1064-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 05716; GFX1064-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v05717; GFX1064-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v05718; GFX1064-NEXT:    s_and_saveexec_b64 s[0:1], vcc5719; GFX1064-NEXT:    s_cbranch_execz .LBB10_25720; GFX1064-NEXT:  ; %bb.1:5721; GFX1064-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x245722; GFX1064-NEXT:    v_mov_b32_e32 v0, 05723; GFX1064-NEXT:    v_mov_b32_e32 v1, 0x401000005724; GFX1064-NEXT:    v_mov_b32_e32 v2, 05725; GFX1064-NEXT:    s_waitcnt lgkmcnt(0)5726; GFX1064-NEXT:    global_atomic_fmax_x2 v2, v[0:1], s[0:1]5727; GFX1064-NEXT:  .LBB10_2:5728; GFX1064-NEXT:    s_endpgm5729;5730; GFX1032-LABEL: global_atomic_fmax_double_uni_address_uni_value_default_scope_unsafe:5731; GFX1032:       ; %bb.0:5732; GFX1032-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 05733; GFX1032-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v05734; GFX1032-NEXT:    s_and_saveexec_b32 s0, vcc_lo5735; GFX1032-NEXT:    s_cbranch_execz .LBB10_25736; GFX1032-NEXT:  ; %bb.1:5737; GFX1032-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x245738; GFX1032-NEXT:    v_mov_b32_e32 v0, 05739; GFX1032-NEXT:    v_mov_b32_e32 v1, 0x401000005740; GFX1032-NEXT:    v_mov_b32_e32 v2, 05741; GFX1032-NEXT:    s_waitcnt lgkmcnt(0)5742; GFX1032-NEXT:    global_atomic_fmax_x2 v2, v[0:1], s[0:1]5743; GFX1032-NEXT:  .LBB10_2:5744; GFX1032-NEXT:    s_endpgm5745;5746; GFX1164-LABEL: global_atomic_fmax_double_uni_address_uni_value_default_scope_unsafe:5747; GFX1164:       ; %bb.0:5748; GFX1164-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 05749; GFX1164-NEXT:    s_mov_b64 s[0:1], exec5750; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5751; GFX1164-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v05752; GFX1164-NEXT:    v_cmpx_eq_u32_e32 0, v05753; GFX1164-NEXT:    s_cbranch_execz .LBB10_35754; GFX1164-NEXT:  ; %bb.1:5755; GFX1164-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245756; GFX1164-NEXT:    v_mov_b32_e32 v4, 05757; GFX1164-NEXT:    s_waitcnt lgkmcnt(0)5758; GFX1164-NEXT:    s_load_b64 s[2:3], s[0:1], 0x05759; GFX1164-NEXT:    s_waitcnt lgkmcnt(0)5760; GFX1164-NEXT:    v_mov_b32_e32 v2, s25761; GFX1164-NEXT:    v_mov_b32_e32 v3, s35762; GFX1164-NEXT:    s_mov_b64 s[2:3], 05763; GFX1164-NEXT:  .LBB10_2: ; %atomicrmw.start5764; GFX1164-NEXT:    ; =>This Inner Loop Header: Depth=15765; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5766; GFX1164-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]5767; GFX1164-NEXT:    v_max_f64 v[0:1], v[0:1], 4.05768; GFX1164-NEXT:    global_atomic_cmpswap_b64 v[0:1], v4, v[0:3], s[0:1] glc5769; GFX1164-NEXT:    s_waitcnt vmcnt(0)5770; GFX1164-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[2:3]5771; GFX1164-NEXT:    v_mov_b32_e32 v3, v15772; GFX1164-NEXT:    v_mov_b32_e32 v2, v05773; GFX1164-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]5774; GFX1164-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)5775; GFX1164-NEXT:    s_and_not1_b64 exec, exec, s[2:3]5776; GFX1164-NEXT:    s_cbranch_execnz .LBB10_25777; GFX1164-NEXT:  .LBB10_3:5778; GFX1164-NEXT:    s_endpgm5779;5780; GFX1132-LABEL: global_atomic_fmax_double_uni_address_uni_value_default_scope_unsafe:5781; GFX1132:       ; %bb.0:5782; GFX1132-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 05783; GFX1132-NEXT:    s_mov_b32 s2, 05784; GFX1132-NEXT:    s_mov_b32 s0, exec_lo5785; GFX1132-NEXT:    s_delay_alu instid0(VALU_DEP_1)5786; GFX1132-NEXT:    v_cmpx_eq_u32_e32 0, v05787; GFX1132-NEXT:    s_cbranch_execz .LBB10_35788; GFX1132-NEXT:  ; %bb.1:5789; GFX1132-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245790; GFX1132-NEXT:    v_mov_b32_e32 v4, 05791; GFX1132-NEXT:    s_waitcnt lgkmcnt(0)5792; GFX1132-NEXT:    s_load_b64 s[4:5], s[0:1], 0x05793; GFX1132-NEXT:    s_waitcnt lgkmcnt(0)5794; GFX1132-NEXT:    v_dual_mov_b32 v2, s4 :: v_dual_mov_b32 v3, s55795; GFX1132-NEXT:  .LBB10_2: ; %atomicrmw.start5796; GFX1132-NEXT:    ; =>This Inner Loop Header: Depth=15797; GFX1132-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5798; GFX1132-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]5799; GFX1132-NEXT:    v_max_f64 v[0:1], v[0:1], 4.05800; GFX1132-NEXT:    global_atomic_cmpswap_b64 v[0:1], v4, v[0:3], s[0:1] glc5801; GFX1132-NEXT:    s_waitcnt vmcnt(0)5802; GFX1132-NEXT:    v_cmp_eq_u64_e32 vcc_lo, v[0:1], v[2:3]5803; GFX1132-NEXT:    v_dual_mov_b32 v3, v1 :: v_dual_mov_b32 v2, v05804; GFX1132-NEXT:    s_or_b32 s2, vcc_lo, s25805; GFX1132-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)5806; GFX1132-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s25807; GFX1132-NEXT:    s_cbranch_execnz .LBB10_25808; GFX1132-NEXT:  .LBB10_3:5809; GFX1132-NEXT:    s_endpgm5810;5811; GFX7LESS-DPP-LABEL: global_atomic_fmax_double_uni_address_uni_value_default_scope_unsafe:5812; GFX7LESS-DPP:       ; %bb.0:5813; GFX7LESS-DPP-NEXT:    v_mbcnt_lo_u32_b32_e64 v0, exec_lo, 05814; GFX7LESS-DPP-NEXT:    v_mbcnt_hi_u32_b32_e32 v0, exec_hi, v05815; GFX7LESS-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v05816; GFX7LESS-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc5817; GFX7LESS-DPP-NEXT:    s_cbranch_execz .LBB10_35818; GFX7LESS-DPP-NEXT:  ; %bb.1:5819; GFX7LESS-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x95820; GFX7LESS-DPP-NEXT:    s_waitcnt lgkmcnt(0)5821; GFX7LESS-DPP-NEXT:    s_load_dwordx2 s[6:7], s[0:1], 0x05822; GFX7LESS-DPP-NEXT:    s_mov_b64 s[4:5], 05823; GFX7LESS-DPP-NEXT:    s_mov_b32 s3, 0xf0005824; GFX7LESS-DPP-NEXT:    s_waitcnt lgkmcnt(0)5825; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v2, s65826; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v3, s75827; GFX7LESS-DPP-NEXT:    s_mov_b32 s2, -15828; GFX7LESS-DPP-NEXT:  .LBB10_2: ; %atomicrmw.start5829; GFX7LESS-DPP-NEXT:    ; =>This Inner Loop Header: Depth=15830; GFX7LESS-DPP-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]5831; GFX7LESS-DPP-NEXT:    v_max_f64 v[0:1], v[0:1], 4.05832; GFX7LESS-DPP-NEXT:    s_waitcnt expcnt(0)5833; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v7, v35834; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v6, v25835; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v5, v15836; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v4, v05837; GFX7LESS-DPP-NEXT:    buffer_atomic_cmpswap_x2 v[4:7], off, s[0:3], 0 glc5838; GFX7LESS-DPP-NEXT:    s_waitcnt vmcnt(0)5839; GFX7LESS-DPP-NEXT:    v_cmp_eq_u64_e32 vcc, v[4:5], v[2:3]5840; GFX7LESS-DPP-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]5841; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v2, v45842; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v3, v55843; GFX7LESS-DPP-NEXT:    s_andn2_b64 exec, exec, s[4:5]5844; GFX7LESS-DPP-NEXT:    s_cbranch_execnz .LBB10_25845; GFX7LESS-DPP-NEXT:  .LBB10_3:5846; GFX7LESS-DPP-NEXT:    s_endpgm5847;5848; GFX9-DPP-LABEL: global_atomic_fmax_double_uni_address_uni_value_default_scope_unsafe:5849; GFX9-DPP:       ; %bb.0:5850; GFX9-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 05851; GFX9-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v05852; GFX9-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v05853; GFX9-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc5854; GFX9-DPP-NEXT:    s_cbranch_execz .LBB10_35855; GFX9-DPP-NEXT:  ; %bb.1:5856; GFX9-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x245857; GFX9-DPP-NEXT:    s_mov_b64 s[2:3], 05858; GFX9-DPP-NEXT:    v_mov_b32_e32 v4, 05859; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)5860; GFX9-DPP-NEXT:    s_load_dwordx2 s[4:5], s[0:1], 0x05861; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)5862; GFX9-DPP-NEXT:    v_mov_b32_e32 v2, s45863; GFX9-DPP-NEXT:    v_mov_b32_e32 v3, s55864; GFX9-DPP-NEXT:  .LBB10_2: ; %atomicrmw.start5865; GFX9-DPP-NEXT:    ; =>This Inner Loop Header: Depth=15866; GFX9-DPP-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]5867; GFX9-DPP-NEXT:    v_max_f64 v[0:1], v[0:1], 4.05868; GFX9-DPP-NEXT:    global_atomic_cmpswap_x2 v[0:1], v4, v[0:3], s[0:1] glc5869; GFX9-DPP-NEXT:    s_waitcnt vmcnt(0)5870; GFX9-DPP-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[2:3]5871; GFX9-DPP-NEXT:    v_mov_b32_e32 v3, v15872; GFX9-DPP-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]5873; GFX9-DPP-NEXT:    v_mov_b32_e32 v2, v05874; GFX9-DPP-NEXT:    s_andn2_b64 exec, exec, s[2:3]5875; GFX9-DPP-NEXT:    s_cbranch_execnz .LBB10_25876; GFX9-DPP-NEXT:  .LBB10_3:5877; GFX9-DPP-NEXT:    s_endpgm5878;5879; GFX1064-DPP-LABEL: global_atomic_fmax_double_uni_address_uni_value_default_scope_unsafe:5880; GFX1064-DPP:       ; %bb.0:5881; GFX1064-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 05882; GFX1064-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v05883; GFX1064-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v05884; GFX1064-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc5885; GFX1064-DPP-NEXT:    s_cbranch_execz .LBB10_25886; GFX1064-DPP-NEXT:  ; %bb.1:5887; GFX1064-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x245888; GFX1064-DPP-NEXT:    v_mov_b32_e32 v0, 05889; GFX1064-DPP-NEXT:    v_mov_b32_e32 v1, 0x401000005890; GFX1064-DPP-NEXT:    v_mov_b32_e32 v2, 05891; GFX1064-DPP-NEXT:    s_waitcnt lgkmcnt(0)5892; GFX1064-DPP-NEXT:    global_atomic_fmax_x2 v2, v[0:1], s[0:1]5893; GFX1064-DPP-NEXT:  .LBB10_2:5894; GFX1064-DPP-NEXT:    s_endpgm5895;5896; GFX1032-DPP-LABEL: global_atomic_fmax_double_uni_address_uni_value_default_scope_unsafe:5897; GFX1032-DPP:       ; %bb.0:5898; GFX1032-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 05899; GFX1032-DPP-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v05900; GFX1032-DPP-NEXT:    s_and_saveexec_b32 s0, vcc_lo5901; GFX1032-DPP-NEXT:    s_cbranch_execz .LBB10_25902; GFX1032-DPP-NEXT:  ; %bb.1:5903; GFX1032-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x245904; GFX1032-DPP-NEXT:    v_mov_b32_e32 v0, 05905; GFX1032-DPP-NEXT:    v_mov_b32_e32 v1, 0x401000005906; GFX1032-DPP-NEXT:    v_mov_b32_e32 v2, 05907; GFX1032-DPP-NEXT:    s_waitcnt lgkmcnt(0)5908; GFX1032-DPP-NEXT:    global_atomic_fmax_x2 v2, v[0:1], s[0:1]5909; GFX1032-DPP-NEXT:  .LBB10_2:5910; GFX1032-DPP-NEXT:    s_endpgm5911;5912; GFX1164-DPP-LABEL: global_atomic_fmax_double_uni_address_uni_value_default_scope_unsafe:5913; GFX1164-DPP:       ; %bb.0:5914; GFX1164-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 05915; GFX1164-DPP-NEXT:    s_mov_b64 s[0:1], exec5916; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5917; GFX1164-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v05918; GFX1164-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v05919; GFX1164-DPP-NEXT:    s_cbranch_execz .LBB10_35920; GFX1164-DPP-NEXT:  ; %bb.1:5921; GFX1164-DPP-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245922; GFX1164-DPP-NEXT:    v_mov_b32_e32 v4, 05923; GFX1164-DPP-NEXT:    s_waitcnt lgkmcnt(0)5924; GFX1164-DPP-NEXT:    s_load_b64 s[2:3], s[0:1], 0x05925; GFX1164-DPP-NEXT:    s_waitcnt lgkmcnt(0)5926; GFX1164-DPP-NEXT:    v_mov_b32_e32 v2, s25927; GFX1164-DPP-NEXT:    v_mov_b32_e32 v3, s35928; GFX1164-DPP-NEXT:    s_mov_b64 s[2:3], 05929; GFX1164-DPP-NEXT:  .LBB10_2: ; %atomicrmw.start5930; GFX1164-DPP-NEXT:    ; =>This Inner Loop Header: Depth=15931; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5932; GFX1164-DPP-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]5933; GFX1164-DPP-NEXT:    v_max_f64 v[0:1], v[0:1], 4.05934; GFX1164-DPP-NEXT:    global_atomic_cmpswap_b64 v[0:1], v4, v[0:3], s[0:1] glc5935; GFX1164-DPP-NEXT:    s_waitcnt vmcnt(0)5936; GFX1164-DPP-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[2:3]5937; GFX1164-DPP-NEXT:    v_mov_b32_e32 v3, v15938; GFX1164-DPP-NEXT:    v_mov_b32_e32 v2, v05939; GFX1164-DPP-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]5940; GFX1164-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)5941; GFX1164-DPP-NEXT:    s_and_not1_b64 exec, exec, s[2:3]5942; GFX1164-DPP-NEXT:    s_cbranch_execnz .LBB10_25943; GFX1164-DPP-NEXT:  .LBB10_3:5944; GFX1164-DPP-NEXT:    s_endpgm5945;5946; GFX1132-DPP-LABEL: global_atomic_fmax_double_uni_address_uni_value_default_scope_unsafe:5947; GFX1132-DPP:       ; %bb.0:5948; GFX1132-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 05949; GFX1132-DPP-NEXT:    s_mov_b32 s2, 05950; GFX1132-DPP-NEXT:    s_mov_b32 s0, exec_lo5951; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1)5952; GFX1132-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v05953; GFX1132-DPP-NEXT:    s_cbranch_execz .LBB10_35954; GFX1132-DPP-NEXT:  ; %bb.1:5955; GFX1132-DPP-NEXT:    s_load_b64 s[0:1], s[4:5], 0x245956; GFX1132-DPP-NEXT:    v_mov_b32_e32 v4, 05957; GFX1132-DPP-NEXT:    s_waitcnt lgkmcnt(0)5958; GFX1132-DPP-NEXT:    s_load_b64 s[4:5], s[0:1], 0x05959; GFX1132-DPP-NEXT:    s_waitcnt lgkmcnt(0)5960; GFX1132-DPP-NEXT:    v_dual_mov_b32 v2, s4 :: v_dual_mov_b32 v3, s55961; GFX1132-DPP-NEXT:  .LBB10_2: ; %atomicrmw.start5962; GFX1132-DPP-NEXT:    ; =>This Inner Loop Header: Depth=15963; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5964; GFX1132-DPP-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]5965; GFX1132-DPP-NEXT:    v_max_f64 v[0:1], v[0:1], 4.05966; GFX1132-DPP-NEXT:    global_atomic_cmpswap_b64 v[0:1], v4, v[0:3], s[0:1] glc5967; GFX1132-DPP-NEXT:    s_waitcnt vmcnt(0)5968; GFX1132-DPP-NEXT:    v_cmp_eq_u64_e32 vcc_lo, v[0:1], v[2:3]5969; GFX1132-DPP-NEXT:    v_dual_mov_b32 v3, v1 :: v_dual_mov_b32 v2, v05970; GFX1132-DPP-NEXT:    s_or_b32 s2, vcc_lo, s25971; GFX1132-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)5972; GFX1132-DPP-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s25973; GFX1132-DPP-NEXT:    s_cbranch_execnz .LBB10_25974; GFX1132-DPP-NEXT:  .LBB10_3:5975; GFX1132-DPP-NEXT:    s_endpgm5976  %result = atomicrmw fmax ptr addrspace(1) %ptr, double 4.0 monotonic, align 8, !amdgpu.no.fine.grained.memory !15977  ret void5978}5979 5980define amdgpu_kernel void @global_atomic_fmax_double_uni_address_div_value_default_scope_unsafe(ptr addrspace(1) %ptr) #0 {5981; GFX7LESS-LABEL: global_atomic_fmax_double_uni_address_div_value_default_scope_unsafe:5982; GFX7LESS:       ; %bb.0:5983; GFX7LESS-NEXT:    s_mov_b32 s32, 05984; GFX7LESS-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD05985; GFX7LESS-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD15986; GFX7LESS-NEXT:    s_mov_b32 s38, -15987; GFX7LESS-NEXT:    s_mov_b32 s39, 0xe8f0005988; GFX7LESS-NEXT:    s_add_u32 s36, s36, s115989; GFX7LESS-NEXT:    s_addc_u32 s37, s37, 05990; GFX7LESS-NEXT:    s_mov_b32 s14, s105991; GFX7LESS-NEXT:    s_mov_b32 s13, s95992; GFX7LESS-NEXT:    s_mov_b32 s12, s85993; GFX7LESS-NEXT:    s_mov_b64 s[10:11], s[6:7]5994; GFX7LESS-NEXT:    s_mov_b64 s[34:35], s[4:5]5995; GFX7LESS-NEXT:    s_add_u32 s8, s34, 445996; GFX7LESS-NEXT:    s_addc_u32 s9, s35, 05997; GFX7LESS-NEXT:    s_getpc_b64 s[4:5]5998; GFX7LESS-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+45999; GFX7LESS-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+126000; GFX7LESS-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x06001; GFX7LESS-NEXT:    v_lshlrev_b32_e32 v2, 20, v26002; GFX7LESS-NEXT:    v_lshlrev_b32_e32 v1, 10, v16003; GFX7LESS-NEXT:    v_or_b32_e32 v0, v0, v16004; GFX7LESS-NEXT:    v_or_b32_e32 v31, v0, v26005; GFX7LESS-NEXT:    s_mov_b64 s[4:5], s[0:1]6006; GFX7LESS-NEXT:    s_mov_b64 s[6:7], s[2:3]6007; GFX7LESS-NEXT:    s_mov_b64 s[0:1], s[36:37]6008; GFX7LESS-NEXT:    s_mov_b64 s[2:3], s[38:39]6009; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)6010; GFX7LESS-NEXT:    s_swappc_b64 s[30:31], s[16:17]6011; GFX7LESS-NEXT:    s_mov_b64 s[0:1], exec6012; GFX7LESS-NEXT:    v_mov_b32_e32 v4, 06013; GFX7LESS-NEXT:    v_mov_b32_e32 v5, 0x7ff800006014; GFX7LESS-NEXT:  .LBB11_1: ; %ComputeLoop6015; GFX7LESS-NEXT:    ; =>This Inner Loop Header: Depth=16016; GFX7LESS-NEXT:    s_ff1_i32_b64 s4, s[0:1]6017; GFX7LESS-NEXT:    v_max_f64 v[2:3], v[4:5], v[4:5]6018; GFX7LESS-NEXT:    v_readlane_b32 s3, v1, s46019; GFX7LESS-NEXT:    v_readlane_b32 s2, v0, s46020; GFX7LESS-NEXT:    s_lshl_b64 s[4:5], 1, s46021; GFX7LESS-NEXT:    v_max_f64 v[4:5], s[2:3], s[2:3]6022; GFX7LESS-NEXT:    s_andn2_b64 s[0:1], s[0:1], s[4:5]6023; GFX7LESS-NEXT:    v_cmp_ne_u64_e64 s[2:3], s[0:1], 06024; GFX7LESS-NEXT:    s_and_b64 vcc, exec, s[2:3]6025; GFX7LESS-NEXT:    v_max_f64 v[4:5], v[2:3], v[4:5]6026; GFX7LESS-NEXT:    s_cbranch_vccnz .LBB11_16027; GFX7LESS-NEXT:  ; %bb.2: ; %ComputeEnd6028; GFX7LESS-NEXT:    v_mbcnt_lo_u32_b32_e64 v0, exec_lo, 06029; GFX7LESS-NEXT:    v_mbcnt_hi_u32_b32_e32 v0, exec_hi, v06030; GFX7LESS-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v06031; GFX7LESS-NEXT:    s_and_saveexec_b64 s[0:1], vcc6032; GFX7LESS-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]6033; GFX7LESS-NEXT:    s_cbranch_execz .LBB11_56034; GFX7LESS-NEXT:  ; %bb.3:6035; GFX7LESS-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x96036; GFX7LESS-NEXT:    s_mov_b32 s3, 0xf0006037; GFX7LESS-NEXT:    s_mov_b32 s2, -16038; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)6039; GFX7LESS-NEXT:    buffer_load_dwordx2 v[2:3], off, s[0:3], 06040; GFX7LESS-NEXT:    s_mov_b64 s[4:5], 06041; GFX7LESS-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]6042; GFX7LESS-NEXT:  .LBB11_4: ; %atomicrmw.start6043; GFX7LESS-NEXT:    ; =>This Inner Loop Header: Depth=16044; GFX7LESS-NEXT:    s_waitcnt vmcnt(0)6045; GFX7LESS-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]6046; GFX7LESS-NEXT:    v_max_f64 v[0:1], v[0:1], v[4:5]6047; GFX7LESS-NEXT:    s_waitcnt expcnt(0)6048; GFX7LESS-NEXT:    v_mov_b32_e32 v9, v36049; GFX7LESS-NEXT:    v_mov_b32_e32 v8, v26050; GFX7LESS-NEXT:    v_mov_b32_e32 v7, v16051; GFX7LESS-NEXT:    v_mov_b32_e32 v6, v06052; GFX7LESS-NEXT:    buffer_atomic_cmpswap_x2 v[6:9], off, s[0:3], 0 glc6053; GFX7LESS-NEXT:    s_waitcnt vmcnt(0)6054; GFX7LESS-NEXT:    v_cmp_eq_u64_e32 vcc, v[6:7], v[2:3]6055; GFX7LESS-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]6056; GFX7LESS-NEXT:    v_mov_b32_e32 v2, v66057; GFX7LESS-NEXT:    v_mov_b32_e32 v3, v76058; GFX7LESS-NEXT:    s_andn2_b64 exec, exec, s[4:5]6059; GFX7LESS-NEXT:    s_cbranch_execnz .LBB11_46060; GFX7LESS-NEXT:  .LBB11_5:6061; GFX7LESS-NEXT:    s_endpgm6062;6063; GFX9-LABEL: global_atomic_fmax_double_uni_address_div_value_default_scope_unsafe:6064; GFX9:       ; %bb.0:6065; GFX9-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD06066; GFX9-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD16067; GFX9-NEXT:    s_mov_b32 s38, -16068; GFX9-NEXT:    s_mov_b32 s39, 0xe000006069; GFX9-NEXT:    s_add_u32 s36, s36, s116070; GFX9-NEXT:    s_addc_u32 s37, s37, 06071; GFX9-NEXT:    s_mov_b64 s[34:35], s[4:5]6072; GFX9-NEXT:    s_mov_b32 s12, s86073; GFX9-NEXT:    s_add_u32 s8, s34, 446074; GFX9-NEXT:    s_mov_b32 s13, s96075; GFX9-NEXT:    s_addc_u32 s9, s35, 06076; GFX9-NEXT:    s_getpc_b64 s[4:5]6077; GFX9-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+46078; GFX9-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+126079; GFX9-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x06080; GFX9-NEXT:    s_mov_b32 s14, s106081; GFX9-NEXT:    s_mov_b64 s[10:11], s[6:7]6082; GFX9-NEXT:    v_lshlrev_b32_e32 v2, 20, v26083; GFX9-NEXT:    v_lshlrev_b32_e32 v1, 10, v16084; GFX9-NEXT:    s_mov_b64 s[4:5], s[0:1]6085; GFX9-NEXT:    s_mov_b64 s[6:7], s[2:3]6086; GFX9-NEXT:    s_mov_b64 s[0:1], s[36:37]6087; GFX9-NEXT:    v_or3_b32 v31, v0, v1, v26088; GFX9-NEXT:    s_mov_b64 s[2:3], s[38:39]6089; GFX9-NEXT:    s_mov_b32 s32, 06090; GFX9-NEXT:    s_waitcnt lgkmcnt(0)6091; GFX9-NEXT:    s_swappc_b64 s[30:31], s[16:17]6092; GFX9-NEXT:    v_mov_b32_e32 v4, 06093; GFX9-NEXT:    s_mov_b64 s[0:1], exec6094; GFX9-NEXT:    v_mov_b32_e32 v5, 0x7ff800006095; GFX9-NEXT:  .LBB11_1: ; %ComputeLoop6096; GFX9-NEXT:    ; =>This Inner Loop Header: Depth=16097; GFX9-NEXT:    s_ff1_i32_b64 s4, s[0:1]6098; GFX9-NEXT:    v_readlane_b32 s3, v1, s46099; GFX9-NEXT:    v_readlane_b32 s2, v0, s46100; GFX9-NEXT:    v_max_f64 v[2:3], v[4:5], v[4:5]6101; GFX9-NEXT:    v_max_f64 v[4:5], s[2:3], s[2:3]6102; GFX9-NEXT:    s_lshl_b64 s[2:3], 1, s46103; GFX9-NEXT:    s_andn2_b64 s[0:1], s[0:1], s[2:3]6104; GFX9-NEXT:    v_max_f64 v[4:5], v[2:3], v[4:5]6105; GFX9-NEXT:    s_cbranch_scc1 .LBB11_16106; GFX9-NEXT:  ; %bb.2: ; %ComputeEnd6107; GFX9-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 06108; GFX9-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v06109; GFX9-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v06110; GFX9-NEXT:    s_and_saveexec_b64 s[0:1], vcc6111; GFX9-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]6112; GFX9-NEXT:    s_cbranch_execz .LBB11_56113; GFX9-NEXT:  ; %bb.3:6114; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x246115; GFX9-NEXT:    v_mov_b32_e32 v6, 06116; GFX9-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]6117; GFX9-NEXT:    s_mov_b64 s[2:3], 06118; GFX9-NEXT:    s_waitcnt lgkmcnt(0)6119; GFX9-NEXT:    global_load_dwordx2 v[2:3], v6, s[0:1]6120; GFX9-NEXT:  .LBB11_4: ; %atomicrmw.start6121; GFX9-NEXT:    ; =>This Inner Loop Header: Depth=16122; GFX9-NEXT:    s_waitcnt vmcnt(0)6123; GFX9-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]6124; GFX9-NEXT:    v_max_f64 v[0:1], v[0:1], v[4:5]6125; GFX9-NEXT:    global_atomic_cmpswap_x2 v[0:1], v6, v[0:3], s[0:1] glc6126; GFX9-NEXT:    s_waitcnt vmcnt(0)6127; GFX9-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[2:3]6128; GFX9-NEXT:    v_mov_b32_e32 v3, v16129; GFX9-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]6130; GFX9-NEXT:    v_mov_b32_e32 v2, v06131; GFX9-NEXT:    s_andn2_b64 exec, exec, s[2:3]6132; GFX9-NEXT:    s_cbranch_execnz .LBB11_46133; GFX9-NEXT:  .LBB11_5:6134; GFX9-NEXT:    s_endpgm6135;6136; GFX1064-LABEL: global_atomic_fmax_double_uni_address_div_value_default_scope_unsafe:6137; GFX1064:       ; %bb.0:6138; GFX1064-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD06139; GFX1064-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD16140; GFX1064-NEXT:    s_mov_b32 s38, -16141; GFX1064-NEXT:    s_mov_b32 s39, 0x31e160006142; GFX1064-NEXT:    s_add_u32 s36, s36, s116143; GFX1064-NEXT:    s_mov_b64 s[34:35], s[4:5]6144; GFX1064-NEXT:    s_addc_u32 s37, s37, 06145; GFX1064-NEXT:    s_mov_b32 s12, s86146; GFX1064-NEXT:    s_add_u32 s8, s34, 446147; GFX1064-NEXT:    s_mov_b32 s13, s96148; GFX1064-NEXT:    s_addc_u32 s9, s35, 06149; GFX1064-NEXT:    s_getpc_b64 s[4:5]6150; GFX1064-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+46151; GFX1064-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+126152; GFX1064-NEXT:    v_lshlrev_b32_e32 v2, 20, v26153; GFX1064-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x06154; GFX1064-NEXT:    v_lshlrev_b32_e32 v1, 10, v16155; GFX1064-NEXT:    s_mov_b32 s14, s106156; GFX1064-NEXT:    s_mov_b64 s[10:11], s[6:7]6157; GFX1064-NEXT:    s_mov_b64 s[4:5], s[0:1]6158; GFX1064-NEXT:    s_mov_b64 s[6:7], s[2:3]6159; GFX1064-NEXT:    v_or3_b32 v31, v0, v1, v26160; GFX1064-NEXT:    s_mov_b64 s[0:1], s[36:37]6161; GFX1064-NEXT:    s_mov_b64 s[2:3], s[38:39]6162; GFX1064-NEXT:    s_mov_b32 s32, 06163; GFX1064-NEXT:    s_waitcnt lgkmcnt(0)6164; GFX1064-NEXT:    s_swappc_b64 s[30:31], s[16:17]6165; GFX1064-NEXT:    v_mov_b32_e32 v2, 06166; GFX1064-NEXT:    v_mov_b32_e32 v3, 0x7ff800006167; GFX1064-NEXT:    s_mov_b64 s[0:1], exec6168; GFX1064-NEXT:  .LBB11_1: ; %ComputeLoop6169; GFX1064-NEXT:    ; =>This Inner Loop Header: Depth=16170; GFX1064-NEXT:    s_ff1_i32_b64 s4, s[0:1]6171; GFX1064-NEXT:    v_max_f64 v[2:3], v[2:3], v[2:3]6172; GFX1064-NEXT:    v_readlane_b32 s3, v1, s46173; GFX1064-NEXT:    v_readlane_b32 s2, v0, s46174; GFX1064-NEXT:    v_max_f64 v[4:5], s[2:3], s[2:3]6175; GFX1064-NEXT:    s_lshl_b64 s[2:3], 1, s46176; GFX1064-NEXT:    s_andn2_b64 s[0:1], s[0:1], s[2:3]6177; GFX1064-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]6178; GFX1064-NEXT:    s_cbranch_scc1 .LBB11_16179; GFX1064-NEXT:  ; %bb.2: ; %ComputeEnd6180; GFX1064-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 06181; GFX1064-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v06182; GFX1064-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v06183; GFX1064-NEXT:    s_and_saveexec_b64 s[0:1], vcc6184; GFX1064-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]6185; GFX1064-NEXT:    s_cbranch_execz .LBB11_46186; GFX1064-NEXT:  ; %bb.3:6187; GFX1064-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x246188; GFX1064-NEXT:    v_mov_b32_e32 v0, 06189; GFX1064-NEXT:    s_waitcnt lgkmcnt(0)6190; GFX1064-NEXT:    global_atomic_fmax_x2 v0, v[2:3], s[0:1]6191; GFX1064-NEXT:  .LBB11_4:6192; GFX1064-NEXT:    s_endpgm6193;6194; GFX1032-LABEL: global_atomic_fmax_double_uni_address_div_value_default_scope_unsafe:6195; GFX1032:       ; %bb.0:6196; GFX1032-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD06197; GFX1032-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD16198; GFX1032-NEXT:    s_mov_b32 s38, -16199; GFX1032-NEXT:    s_mov_b32 s39, 0x31c160006200; GFX1032-NEXT:    s_add_u32 s36, s36, s116201; GFX1032-NEXT:    s_mov_b64 s[34:35], s[4:5]6202; GFX1032-NEXT:    s_addc_u32 s37, s37, 06203; GFX1032-NEXT:    s_mov_b32 s12, s86204; GFX1032-NEXT:    s_add_u32 s8, s34, 446205; GFX1032-NEXT:    s_mov_b32 s13, s96206; GFX1032-NEXT:    s_addc_u32 s9, s35, 06207; GFX1032-NEXT:    s_getpc_b64 s[4:5]6208; GFX1032-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+46209; GFX1032-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+126210; GFX1032-NEXT:    v_lshlrev_b32_e32 v2, 20, v26211; GFX1032-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x06212; GFX1032-NEXT:    v_lshlrev_b32_e32 v1, 10, v16213; GFX1032-NEXT:    s_mov_b32 s14, s106214; GFX1032-NEXT:    s_mov_b64 s[10:11], s[6:7]6215; GFX1032-NEXT:    s_mov_b64 s[4:5], s[0:1]6216; GFX1032-NEXT:    s_mov_b64 s[6:7], s[2:3]6217; GFX1032-NEXT:    v_or3_b32 v31, v0, v1, v26218; GFX1032-NEXT:    s_mov_b64 s[0:1], s[36:37]6219; GFX1032-NEXT:    s_mov_b64 s[2:3], s[38:39]6220; GFX1032-NEXT:    s_mov_b32 s32, 06221; GFX1032-NEXT:    s_waitcnt lgkmcnt(0)6222; GFX1032-NEXT:    s_swappc_b64 s[30:31], s[16:17]6223; GFX1032-NEXT:    v_mov_b32_e32 v2, 06224; GFX1032-NEXT:    v_mov_b32_e32 v3, 0x7ff800006225; GFX1032-NEXT:    s_mov_b32 s0, exec_lo6226; GFX1032-NEXT:  .LBB11_1: ; %ComputeLoop6227; GFX1032-NEXT:    ; =>This Inner Loop Header: Depth=16228; GFX1032-NEXT:    s_ff1_i32_b32 s1, s06229; GFX1032-NEXT:    v_max_f64 v[2:3], v[2:3], v[2:3]6230; GFX1032-NEXT:    v_readlane_b32 s3, v1, s16231; GFX1032-NEXT:    v_readlane_b32 s2, v0, s16232; GFX1032-NEXT:    s_lshl_b32 s1, 1, s16233; GFX1032-NEXT:    s_andn2_b32 s0, s0, s16234; GFX1032-NEXT:    v_max_f64 v[4:5], s[2:3], s[2:3]6235; GFX1032-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]6236; GFX1032-NEXT:    s_cbranch_scc1 .LBB11_16237; GFX1032-NEXT:  ; %bb.2: ; %ComputeEnd6238; GFX1032-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 06239; GFX1032-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v06240; GFX1032-NEXT:    s_and_saveexec_b32 s0, vcc_lo6241; GFX1032-NEXT:    s_xor_b32 s0, exec_lo, s06242; GFX1032-NEXT:    s_cbranch_execz .LBB11_46243; GFX1032-NEXT:  ; %bb.3:6244; GFX1032-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x246245; GFX1032-NEXT:    v_mov_b32_e32 v0, 06246; GFX1032-NEXT:    s_waitcnt lgkmcnt(0)6247; GFX1032-NEXT:    global_atomic_fmax_x2 v0, v[2:3], s[0:1]6248; GFX1032-NEXT:  .LBB11_4:6249; GFX1032-NEXT:    s_endpgm6250;6251; GFX1164-LABEL: global_atomic_fmax_double_uni_address_div_value_default_scope_unsafe:6252; GFX1164:       ; %bb.0:6253; GFX1164-NEXT:    s_mov_b64 s[34:35], s[4:5]6254; GFX1164-NEXT:    s_mov_b32 s12, s86255; GFX1164-NEXT:    s_add_u32 s8, s34, 446256; GFX1164-NEXT:    s_mov_b32 s13, s96257; GFX1164-NEXT:    s_addc_u32 s9, s35, 06258; GFX1164-NEXT:    s_getpc_b64 s[4:5]6259; GFX1164-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+46260; GFX1164-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+126261; GFX1164-NEXT:    v_mov_b32_e32 v31, v06262; GFX1164-NEXT:    s_load_b64 s[16:17], s[4:5], 0x06263; GFX1164-NEXT:    s_mov_b32 s14, s106264; GFX1164-NEXT:    s_mov_b64 s[10:11], s[6:7]6265; GFX1164-NEXT:    s_mov_b64 s[4:5], s[0:1]6266; GFX1164-NEXT:    s_mov_b64 s[6:7], s[2:3]6267; GFX1164-NEXT:    s_mov_b32 s32, 06268; GFX1164-NEXT:    s_waitcnt lgkmcnt(0)6269; GFX1164-NEXT:    s_swappc_b64 s[30:31], s[16:17]6270; GFX1164-NEXT:    v_mov_b32_e32 v4, 06271; GFX1164-NEXT:    v_mov_b32_e32 v5, 0x7ff800006272; GFX1164-NEXT:    s_mov_b64 s[0:1], exec6273; GFX1164-NEXT:  .LBB11_1: ; %ComputeLoop6274; GFX1164-NEXT:    ; =>This Inner Loop Header: Depth=16275; GFX1164-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_1)6276; GFX1164-NEXT:    s_ctz_i32_b64 s4, s[0:1]6277; GFX1164-NEXT:    v_max_f64 v[2:3], v[4:5], v[4:5]6278; GFX1164-NEXT:    v_readlane_b32 s3, v1, s46279; GFX1164-NEXT:    v_readlane_b32 s2, v0, s46280; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1)6281; GFX1164-NEXT:    v_max_f64 v[4:5], s[2:3], s[2:3]6282; GFX1164-NEXT:    s_lshl_b64 s[2:3], 1, s46283; GFX1164-NEXT:    s_and_not1_b64 s[0:1], s[0:1], s[2:3]6284; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1)6285; GFX1164-NEXT:    v_max_f64 v[4:5], v[2:3], v[4:5]6286; GFX1164-NEXT:    s_cbranch_scc1 .LBB11_16287; GFX1164-NEXT:  ; %bb.2: ; %ComputeEnd6288; GFX1164-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 06289; GFX1164-NEXT:    s_mov_b64 s[0:1], exec6290; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)6291; GFX1164-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v06292; GFX1164-NEXT:    v_cmpx_eq_u32_e32 0, v06293; GFX1164-NEXT:    s_xor_b64 s[0:1], exec, s[0:1]6294; GFX1164-NEXT:    s_cbranch_execz .LBB11_56295; GFX1164-NEXT:  ; %bb.3:6296; GFX1164-NEXT:    s_load_b64 s[0:1], s[34:35], 0x246297; GFX1164-NEXT:    v_mov_b32_e32 v6, 06298; GFX1164-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]6299; GFX1164-NEXT:    s_mov_b64 s[2:3], 06300; GFX1164-NEXT:    s_waitcnt lgkmcnt(0)6301; GFX1164-NEXT:    global_load_b64 v[2:3], v6, s[0:1]6302; GFX1164-NEXT:  .LBB11_4: ; %atomicrmw.start6303; GFX1164-NEXT:    ; =>This Inner Loop Header: Depth=16304; GFX1164-NEXT:    s_waitcnt vmcnt(0)6305; GFX1164-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]6306; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1)6307; GFX1164-NEXT:    v_max_f64 v[0:1], v[0:1], v[4:5]6308; GFX1164-NEXT:    global_atomic_cmpswap_b64 v[0:1], v6, v[0:3], s[0:1] glc6309; GFX1164-NEXT:    s_waitcnt vmcnt(0)6310; GFX1164-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[2:3]6311; GFX1164-NEXT:    v_mov_b32_e32 v3, v16312; GFX1164-NEXT:    v_mov_b32_e32 v2, v06313; GFX1164-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]6314; GFX1164-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)6315; GFX1164-NEXT:    s_and_not1_b64 exec, exec, s[2:3]6316; GFX1164-NEXT:    s_cbranch_execnz .LBB11_46317; GFX1164-NEXT:  .LBB11_5:6318; GFX1164-NEXT:    s_endpgm6319;6320; GFX1132-LABEL: global_atomic_fmax_double_uni_address_div_value_default_scope_unsafe:6321; GFX1132:       ; %bb.0:6322; GFX1132-NEXT:    s_mov_b64 s[34:35], s[4:5]6323; GFX1132-NEXT:    v_mov_b32_e32 v31, v06324; GFX1132-NEXT:    s_add_u32 s8, s34, 446325; GFX1132-NEXT:    s_addc_u32 s9, s35, 06326; GFX1132-NEXT:    s_getpc_b64 s[4:5]6327; GFX1132-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+46328; GFX1132-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+126329; GFX1132-NEXT:    s_mov_b32 s12, s136330; GFX1132-NEXT:    s_load_b64 s[16:17], s[4:5], 0x06331; GFX1132-NEXT:    s_mov_b64 s[10:11], s[6:7]6332; GFX1132-NEXT:    s_mov_b64 s[4:5], s[0:1]6333; GFX1132-NEXT:    s_mov_b64 s[6:7], s[2:3]6334; GFX1132-NEXT:    s_mov_b32 s13, s146335; GFX1132-NEXT:    s_mov_b32 s14, s156336; GFX1132-NEXT:    s_mov_b32 s32, 06337; GFX1132-NEXT:    s_waitcnt lgkmcnt(0)6338; GFX1132-NEXT:    s_swappc_b64 s[30:31], s[16:17]6339; GFX1132-NEXT:    v_mov_b32_e32 v4, 06340; GFX1132-NEXT:    v_mov_b32_e32 v5, 0x7ff800006341; GFX1132-NEXT:    s_mov_b32 s0, exec_lo6342; GFX1132-NEXT:  .LBB11_1: ; %ComputeLoop6343; GFX1132-NEXT:    ; =>This Inner Loop Header: Depth=16344; GFX1132-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_1)6345; GFX1132-NEXT:    s_ctz_i32_b32 s1, s06346; GFX1132-NEXT:    v_max_f64 v[2:3], v[4:5], v[4:5]6347; GFX1132-NEXT:    v_readlane_b32 s3, v1, s16348; GFX1132-NEXT:    v_readlane_b32 s2, v0, s16349; GFX1132-NEXT:    s_lshl_b32 s1, 1, s16350; GFX1132-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_1) | instid1(VALU_DEP_1)6351; GFX1132-NEXT:    s_and_not1_b32 s0, s0, s16352; GFX1132-NEXT:    v_max_f64 v[4:5], s[2:3], s[2:3]6353; GFX1132-NEXT:    v_max_f64 v[4:5], v[2:3], v[4:5]6354; GFX1132-NEXT:    s_cbranch_scc1 .LBB11_16355; GFX1132-NEXT:  ; %bb.2: ; %ComputeEnd6356; GFX1132-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 06357; GFX1132-NEXT:    s_mov_b32 s2, 06358; GFX1132-NEXT:    s_mov_b32 s0, exec_lo6359; GFX1132-NEXT:    s_delay_alu instid0(VALU_DEP_1)6360; GFX1132-NEXT:    v_cmpx_eq_u32_e32 0, v06361; GFX1132-NEXT:    s_xor_b32 s0, exec_lo, s06362; GFX1132-NEXT:    s_cbranch_execz .LBB11_56363; GFX1132-NEXT:  ; %bb.3:6364; GFX1132-NEXT:    s_load_b64 s[0:1], s[34:35], 0x246365; GFX1132-NEXT:    v_mov_b32_e32 v6, 06366; GFX1132-NEXT:    s_delay_alu instid0(VALU_DEP_4)6367; GFX1132-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]6368; GFX1132-NEXT:    s_waitcnt lgkmcnt(0)6369; GFX1132-NEXT:    global_load_b64 v[2:3], v6, s[0:1]6370; GFX1132-NEXT:  .LBB11_4: ; %atomicrmw.start6371; GFX1132-NEXT:    ; =>This Inner Loop Header: Depth=16372; GFX1132-NEXT:    s_waitcnt vmcnt(0)6373; GFX1132-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]6374; GFX1132-NEXT:    s_delay_alu instid0(VALU_DEP_1)6375; GFX1132-NEXT:    v_max_f64 v[0:1], v[0:1], v[4:5]6376; GFX1132-NEXT:    global_atomic_cmpswap_b64 v[0:1], v6, v[0:3], s[0:1] glc6377; GFX1132-NEXT:    s_waitcnt vmcnt(0)6378; GFX1132-NEXT:    v_cmp_eq_u64_e32 vcc_lo, v[0:1], v[2:3]6379; GFX1132-NEXT:    v_dual_mov_b32 v3, v1 :: v_dual_mov_b32 v2, v06380; GFX1132-NEXT:    s_or_b32 s2, vcc_lo, s26381; GFX1132-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)6382; GFX1132-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s26383; GFX1132-NEXT:    s_cbranch_execnz .LBB11_46384; GFX1132-NEXT:  .LBB11_5:6385; GFX1132-NEXT:    s_endpgm6386;6387; GFX7LESS-DPP-LABEL: global_atomic_fmax_double_uni_address_div_value_default_scope_unsafe:6388; GFX7LESS-DPP:       ; %bb.0:6389; GFX7LESS-DPP-NEXT:    s_mov_b32 s32, 06390; GFX7LESS-DPP-NEXT:    s_mov_b32 s48, SCRATCH_RSRC_DWORD06391; GFX7LESS-DPP-NEXT:    s_mov_b32 s49, SCRATCH_RSRC_DWORD16392; GFX7LESS-DPP-NEXT:    s_mov_b32 s50, -16393; GFX7LESS-DPP-NEXT:    s_mov_b32 s51, 0xe8f0006394; GFX7LESS-DPP-NEXT:    s_add_u32 s48, s48, s116395; GFX7LESS-DPP-NEXT:    s_addc_u32 s49, s49, 06396; GFX7LESS-DPP-NEXT:    s_mov_b32 s14, s106397; GFX7LESS-DPP-NEXT:    s_mov_b32 s13, s96398; GFX7LESS-DPP-NEXT:    s_mov_b32 s12, s86399; GFX7LESS-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]6400; GFX7LESS-DPP-NEXT:    s_load_dwordx2 s[36:37], s[4:5], 0x96401; GFX7LESS-DPP-NEXT:    s_mov_b32 s39, 0xf0006402; GFX7LESS-DPP-NEXT:    s_mov_b32 s38, -16403; GFX7LESS-DPP-NEXT:    s_add_u32 s8, s4, 446404; GFX7LESS-DPP-NEXT:    s_addc_u32 s9, s5, 06405; GFX7LESS-DPP-NEXT:    s_getpc_b64 s[4:5]6406; GFX7LESS-DPP-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+46407; GFX7LESS-DPP-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+126408; GFX7LESS-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x06409; GFX7LESS-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v26410; GFX7LESS-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v16411; GFX7LESS-DPP-NEXT:    v_or_b32_e32 v0, v0, v16412; GFX7LESS-DPP-NEXT:    v_or_b32_e32 v31, v0, v26413; GFX7LESS-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]6414; GFX7LESS-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]6415; GFX7LESS-DPP-NEXT:    s_mov_b64 s[0:1], s[48:49]6416; GFX7LESS-DPP-NEXT:    s_mov_b64 s[2:3], s[50:51]6417; GFX7LESS-DPP-NEXT:    s_waitcnt lgkmcnt(0)6418; GFX7LESS-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]6419; GFX7LESS-DPP-NEXT:    buffer_load_dwordx2 v[2:3], off, s[36:39], 06420; GFX7LESS-DPP-NEXT:    s_mov_b64 s[0:1], 06421; GFX7LESS-DPP-NEXT:    v_max_f64 v[4:5], v[0:1], v[0:1]6422; GFX7LESS-DPP-NEXT:  .LBB11_1: ; %atomicrmw.start6423; GFX7LESS-DPP-NEXT:    ; =>This Inner Loop Header: Depth=16424; GFX7LESS-DPP-NEXT:    s_waitcnt vmcnt(0)6425; GFX7LESS-DPP-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]6426; GFX7LESS-DPP-NEXT:    v_max_f64 v[0:1], v[0:1], v[4:5]6427; GFX7LESS-DPP-NEXT:    s_waitcnt expcnt(0)6428; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v9, v36429; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v8, v26430; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v7, v16431; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v6, v06432; GFX7LESS-DPP-NEXT:    buffer_atomic_cmpswap_x2 v[6:9], off, s[36:39], 0 glc6433; GFX7LESS-DPP-NEXT:    s_waitcnt vmcnt(0)6434; GFX7LESS-DPP-NEXT:    v_cmp_eq_u64_e32 vcc, v[6:7], v[2:3]6435; GFX7LESS-DPP-NEXT:    s_or_b64 s[0:1], vcc, s[0:1]6436; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v2, v66437; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v3, v76438; GFX7LESS-DPP-NEXT:    s_andn2_b64 exec, exec, s[0:1]6439; GFX7LESS-DPP-NEXT:    s_cbranch_execnz .LBB11_16440; GFX7LESS-DPP-NEXT:  ; %bb.2: ; %atomicrmw.end6441; GFX7LESS-DPP-NEXT:    s_endpgm6442;6443; GFX9-DPP-LABEL: global_atomic_fmax_double_uni_address_div_value_default_scope_unsafe:6444; GFX9-DPP:       ; %bb.0:6445; GFX9-DPP-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD06446; GFX9-DPP-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD16447; GFX9-DPP-NEXT:    s_mov_b32 s38, -16448; GFX9-DPP-NEXT:    s_mov_b32 s39, 0xe000006449; GFX9-DPP-NEXT:    s_add_u32 s36, s36, s116450; GFX9-DPP-NEXT:    s_addc_u32 s37, s37, 06451; GFX9-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]6452; GFX9-DPP-NEXT:    s_mov_b32 s12, s86453; GFX9-DPP-NEXT:    s_add_u32 s8, s34, 446454; GFX9-DPP-NEXT:    s_mov_b32 s13, s96455; GFX9-DPP-NEXT:    s_addc_u32 s9, s35, 06456; GFX9-DPP-NEXT:    s_getpc_b64 s[4:5]6457; GFX9-DPP-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+46458; GFX9-DPP-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+126459; GFX9-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x06460; GFX9-DPP-NEXT:    s_mov_b32 s14, s106461; GFX9-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]6462; GFX9-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v26463; GFX9-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v16464; GFX9-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]6465; GFX9-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]6466; GFX9-DPP-NEXT:    s_mov_b64 s[0:1], s[36:37]6467; GFX9-DPP-NEXT:    v_or3_b32 v31, v0, v1, v26468; GFX9-DPP-NEXT:    s_mov_b64 s[2:3], s[38:39]6469; GFX9-DPP-NEXT:    s_mov_b32 s32, 06470; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)6471; GFX9-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]6472; GFX9-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -16473; GFX9-DPP-NEXT:    v_mov_b32_e32 v4, 0x7ff800006474; GFX9-DPP-NEXT:    v_cndmask_b32_e64 v6, v4, v1, s[0:1]6475; GFX9-DPP-NEXT:    v_cndmask_b32_e64 v5, 0, v0, s[0:1]6476; GFX9-DPP-NEXT:    v_mov_b32_e32 v8, 0x7ff800006477; GFX9-DPP-NEXT:    v_mov_b32_e32 v7, 06478; GFX9-DPP-NEXT:    v_mov_b32_e32 v3, 06479; GFX9-DPP-NEXT:    v_mov_b32_dpp v8, v6 row_shr:1 row_mask:0xf bank_mask:0xf6480; GFX9-DPP-NEXT:    v_mov_b32_dpp v7, v5 row_shr:1 row_mask:0xf bank_mask:0xf6481; GFX9-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]6482; GFX9-DPP-NEXT:    v_max_f64 v[7:8], v[7:8], v[7:8]6483; GFX9-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[7:8]6484; GFX9-DPP-NEXT:    v_mov_b32_e32 v8, 0x7ff800006485; GFX9-DPP-NEXT:    v_mov_b32_e32 v7, 06486; GFX9-DPP-NEXT:    s_nop 06487; GFX9-DPP-NEXT:    v_mov_b32_dpp v8, v6 row_shr:2 row_mask:0xf bank_mask:0xf6488; GFX9-DPP-NEXT:    v_mov_b32_dpp v7, v5 row_shr:2 row_mask:0xf bank_mask:0xf6489; GFX9-DPP-NEXT:    v_max_f64 v[7:8], v[7:8], v[7:8]6490; GFX9-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[7:8]6491; GFX9-DPP-NEXT:    v_mov_b32_e32 v8, 0x7ff800006492; GFX9-DPP-NEXT:    v_mov_b32_e32 v7, 06493; GFX9-DPP-NEXT:    s_nop 06494; GFX9-DPP-NEXT:    v_mov_b32_dpp v8, v6 row_shr:4 row_mask:0xf bank_mask:0xf6495; GFX9-DPP-NEXT:    v_mov_b32_dpp v7, v5 row_shr:4 row_mask:0xf bank_mask:0xf6496; GFX9-DPP-NEXT:    v_max_f64 v[7:8], v[7:8], v[7:8]6497; GFX9-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[7:8]6498; GFX9-DPP-NEXT:    v_mov_b32_e32 v8, 0x7ff800006499; GFX9-DPP-NEXT:    v_mov_b32_e32 v7, 06500; GFX9-DPP-NEXT:    s_nop 06501; GFX9-DPP-NEXT:    v_mov_b32_dpp v8, v6 row_shr:8 row_mask:0xf bank_mask:0xf6502; GFX9-DPP-NEXT:    v_mov_b32_dpp v7, v5 row_shr:8 row_mask:0xf bank_mask:0xf6503; GFX9-DPP-NEXT:    v_max_f64 v[7:8], v[7:8], v[7:8]6504; GFX9-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[7:8]6505; GFX9-DPP-NEXT:    v_mov_b32_e32 v8, 0x7ff800006506; GFX9-DPP-NEXT:    v_mov_b32_e32 v7, 06507; GFX9-DPP-NEXT:    s_nop 06508; GFX9-DPP-NEXT:    v_mov_b32_dpp v8, v6 row_bcast:15 row_mask:0xa bank_mask:0xf6509; GFX9-DPP-NEXT:    v_mov_b32_dpp v7, v5 row_bcast:15 row_mask:0xa bank_mask:0xf6510; GFX9-DPP-NEXT:    v_max_f64 v[7:8], v[7:8], v[7:8]6511; GFX9-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[7:8]6512; GFX9-DPP-NEXT:    s_nop 16513; GFX9-DPP-NEXT:    v_mov_b32_dpp v4, v6 row_bcast:31 row_mask:0xc bank_mask:0xf6514; GFX9-DPP-NEXT:    v_mov_b32_dpp v3, v5 row_bcast:31 row_mask:0xc bank_mask:0xf6515; GFX9-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[3:4]6516; GFX9-DPP-NEXT:    v_max_f64 v[3:4], v[5:6], v[3:4]6517; GFX9-DPP-NEXT:    s_mov_b64 exec, s[0:1]6518; GFX9-DPP-NEXT:    v_mov_b32_e32 v0, 06519; GFX9-DPP-NEXT:    v_mbcnt_lo_u32_b32 v1, exec_lo, 06520; GFX9-DPP-NEXT:    v_mbcnt_hi_u32_b32 v1, exec_hi, v16521; GFX9-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -16522; GFX9-DPP-NEXT:    v_readlane_b32 s3, v4, 636523; GFX9-DPP-NEXT:    v_readlane_b32 s2, v3, 636524; GFX9-DPP-NEXT:    s_mov_b64 exec, s[0:1]6525; GFX9-DPP-NEXT:    s_mov_b64 s[0:1], s[2:3]6526; GFX9-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v16527; GFX9-DPP-NEXT:    s_and_saveexec_b64 s[2:3], vcc6528; GFX9-DPP-NEXT:    s_cbranch_execz .LBB11_36529; GFX9-DPP-NEXT:  ; %bb.1:6530; GFX9-DPP-NEXT:    s_load_dwordx2 s[2:3], s[34:35], 0x246531; GFX9-DPP-NEXT:    s_mov_b64 s[4:5], 06532; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)6533; GFX9-DPP-NEXT:    global_load_dwordx2 v[11:12], v0, s[2:3]6534; GFX9-DPP-NEXT:  .LBB11_2: ; %atomicrmw.start6535; GFX9-DPP-NEXT:    ; =>This Inner Loop Header: Depth=16536; GFX9-DPP-NEXT:    v_max_f64 v[1:2], s[0:1], s[0:1]6537; GFX9-DPP-NEXT:    s_waitcnt vmcnt(0)6538; GFX9-DPP-NEXT:    v_max_f64 v[9:10], v[11:12], v[11:12]6539; GFX9-DPP-NEXT:    v_max_f64 v[9:10], v[9:10], v[1:2]6540; GFX9-DPP-NEXT:    global_atomic_cmpswap_x2 v[1:2], v0, v[9:12], s[2:3] glc6541; GFX9-DPP-NEXT:    s_waitcnt vmcnt(0)6542; GFX9-DPP-NEXT:    v_cmp_eq_u64_e32 vcc, v[1:2], v[11:12]6543; GFX9-DPP-NEXT:    v_mov_b32_e32 v12, v26544; GFX9-DPP-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]6545; GFX9-DPP-NEXT:    v_mov_b32_e32 v11, v16546; GFX9-DPP-NEXT:    s_andn2_b64 exec, exec, s[4:5]6547; GFX9-DPP-NEXT:    s_cbranch_execnz .LBB11_26548; GFX9-DPP-NEXT:  .LBB11_3:6549; GFX9-DPP-NEXT:    s_endpgm6550;6551; GFX1064-DPP-LABEL: global_atomic_fmax_double_uni_address_div_value_default_scope_unsafe:6552; GFX1064-DPP:       ; %bb.0:6553; GFX1064-DPP-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD06554; GFX1064-DPP-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD16555; GFX1064-DPP-NEXT:    s_mov_b32 s38, -16556; GFX1064-DPP-NEXT:    s_mov_b32 s39, 0x31e160006557; GFX1064-DPP-NEXT:    s_add_u32 s36, s36, s116558; GFX1064-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]6559; GFX1064-DPP-NEXT:    s_addc_u32 s37, s37, 06560; GFX1064-DPP-NEXT:    s_mov_b32 s12, s86561; GFX1064-DPP-NEXT:    s_add_u32 s8, s34, 446562; GFX1064-DPP-NEXT:    s_mov_b32 s13, s96563; GFX1064-DPP-NEXT:    s_addc_u32 s9, s35, 06564; GFX1064-DPP-NEXT:    s_getpc_b64 s[4:5]6565; GFX1064-DPP-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+46566; GFX1064-DPP-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+126567; GFX1064-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v26568; GFX1064-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x06569; GFX1064-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v16570; GFX1064-DPP-NEXT:    s_mov_b32 s14, s106571; GFX1064-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]6572; GFX1064-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]6573; GFX1064-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]6574; GFX1064-DPP-NEXT:    v_or3_b32 v31, v0, v1, v26575; GFX1064-DPP-NEXT:    s_mov_b64 s[0:1], s[36:37]6576; GFX1064-DPP-NEXT:    s_mov_b64 s[2:3], s[38:39]6577; GFX1064-DPP-NEXT:    s_mov_b32 s32, 06578; GFX1064-DPP-NEXT:    s_waitcnt lgkmcnt(0)6579; GFX1064-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]6580; GFX1064-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -16581; GFX1064-DPP-NEXT:    v_mov_b32_e32 v4, 0x7ff800006582; GFX1064-DPP-NEXT:    v_mov_b32_e32 v3, 06583; GFX1064-DPP-NEXT:    v_cndmask_b32_e64 v6, 0x7ff80000, v1, s[0:1]6584; GFX1064-DPP-NEXT:    v_cndmask_b32_e64 v5, 0, v0, s[0:1]6585; GFX1064-DPP-NEXT:    v_mov_b32_dpp v4, v6 row_xmask:1 row_mask:0xf bank_mask:0xf6586; GFX1064-DPP-NEXT:    v_mov_b32_dpp v3, v5 row_xmask:1 row_mask:0xf bank_mask:0xf6587; GFX1064-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]6588; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[3:4]6589; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], v[5:6], v[3:4]6590; GFX1064-DPP-NEXT:    v_mov_b32_e32 v6, 0x7ff800006591; GFX1064-DPP-NEXT:    v_mov_b32_e32 v5, 06592; GFX1064-DPP-NEXT:    v_mov_b32_dpp v6, v4 row_xmask:2 row_mask:0xf bank_mask:0xf6593; GFX1064-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:2 row_mask:0xf bank_mask:0xf6594; GFX1064-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]6595; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]6596; GFX1064-DPP-NEXT:    v_mov_b32_e32 v6, 0x7ff800006597; GFX1064-DPP-NEXT:    v_mov_b32_e32 v5, 06598; GFX1064-DPP-NEXT:    v_mov_b32_dpp v6, v4 row_xmask:4 row_mask:0xf bank_mask:0xf6599; GFX1064-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:4 row_mask:0xf bank_mask:0xf6600; GFX1064-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]6601; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]6602; GFX1064-DPP-NEXT:    v_mov_b32_e32 v6, 0x7ff800006603; GFX1064-DPP-NEXT:    v_mov_b32_e32 v5, 06604; GFX1064-DPP-NEXT:    v_mov_b32_dpp v6, v4 row_xmask:8 row_mask:0xf bank_mask:0xf6605; GFX1064-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:8 row_mask:0xf bank_mask:0xf6606; GFX1064-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]6607; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]6608; GFX1064-DPP-NEXT:    v_permlanex16_b32 v6, v4, 0, 06609; GFX1064-DPP-NEXT:    v_permlanex16_b32 v5, v3, 0, 06610; GFX1064-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]6611; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]6612; GFX1064-DPP-NEXT:    v_readlane_b32 s3, v4, 06613; GFX1064-DPP-NEXT:    v_readlane_b32 s5, v4, 326614; GFX1064-DPP-NEXT:    v_readlane_b32 s4, v3, 326615; GFX1064-DPP-NEXT:    v_readlane_b32 s2, v3, 06616; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], s[4:5], s[4:5]6617; GFX1064-DPP-NEXT:    v_max_f64 v[5:6], s[2:3], s[2:3]6618; GFX1064-DPP-NEXT:    v_max_f64 v[3:4], v[5:6], v[3:4]6619; GFX1064-DPP-NEXT:    s_mov_b64 exec, s[0:1]6620; GFX1064-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 06621; GFX1064-DPP-NEXT:    v_mov_b32_e32 v2, 06622; GFX1064-DPP-NEXT:    v_mbcnt_hi_u32_b32 v7, exec_hi, v06623; GFX1064-DPP-NEXT:    v_mov_b32_e32 v0, v36624; GFX1064-DPP-NEXT:    v_mov_b32_e32 v1, v46625; GFX1064-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v76626; GFX1064-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc6627; GFX1064-DPP-NEXT:    s_cbranch_execz .LBB11_26628; GFX1064-DPP-NEXT:  ; %bb.1:6629; GFX1064-DPP-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x246630; GFX1064-DPP-NEXT:    s_waitcnt lgkmcnt(0)6631; GFX1064-DPP-NEXT:    global_atomic_fmax_x2 v2, v[0:1], s[0:1]6632; GFX1064-DPP-NEXT:  .LBB11_2:6633; GFX1064-DPP-NEXT:    s_endpgm6634;6635; GFX1032-DPP-LABEL: global_atomic_fmax_double_uni_address_div_value_default_scope_unsafe:6636; GFX1032-DPP:       ; %bb.0:6637; GFX1032-DPP-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD06638; GFX1032-DPP-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD16639; GFX1032-DPP-NEXT:    s_mov_b32 s38, -16640; GFX1032-DPP-NEXT:    s_mov_b32 s39, 0x31c160006641; GFX1032-DPP-NEXT:    s_add_u32 s36, s36, s116642; GFX1032-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]6643; GFX1032-DPP-NEXT:    s_addc_u32 s37, s37, 06644; GFX1032-DPP-NEXT:    s_mov_b32 s12, s86645; GFX1032-DPP-NEXT:    s_add_u32 s8, s34, 446646; GFX1032-DPP-NEXT:    s_mov_b32 s13, s96647; GFX1032-DPP-NEXT:    s_addc_u32 s9, s35, 06648; GFX1032-DPP-NEXT:    s_getpc_b64 s[4:5]6649; GFX1032-DPP-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+46650; GFX1032-DPP-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+126651; GFX1032-DPP-NEXT:    v_lshlrev_b32_e32 v2, 20, v26652; GFX1032-DPP-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x06653; GFX1032-DPP-NEXT:    v_lshlrev_b32_e32 v1, 10, v16654; GFX1032-DPP-NEXT:    s_mov_b32 s14, s106655; GFX1032-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]6656; GFX1032-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]6657; GFX1032-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]6658; GFX1032-DPP-NEXT:    v_or3_b32 v31, v0, v1, v26659; GFX1032-DPP-NEXT:    s_mov_b64 s[0:1], s[36:37]6660; GFX1032-DPP-NEXT:    s_mov_b64 s[2:3], s[38:39]6661; GFX1032-DPP-NEXT:    s_mov_b32 s32, 06662; GFX1032-DPP-NEXT:    s_waitcnt lgkmcnt(0)6663; GFX1032-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]6664; GFX1032-DPP-NEXT:    s_or_saveexec_b32 s0, -16665; GFX1032-DPP-NEXT:    v_mov_b32_e32 v4, 0x7ff800006666; GFX1032-DPP-NEXT:    v_mov_b32_e32 v3, 06667; GFX1032-DPP-NEXT:    v_cndmask_b32_e64 v6, 0x7ff80000, v1, s06668; GFX1032-DPP-NEXT:    v_cndmask_b32_e64 v5, 0, v0, s06669; GFX1032-DPP-NEXT:    v_mov_b32_dpp v4, v6 row_xmask:1 row_mask:0xf bank_mask:0xf6670; GFX1032-DPP-NEXT:    v_mov_b32_dpp v3, v5 row_xmask:1 row_mask:0xf bank_mask:0xf6671; GFX1032-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]6672; GFX1032-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[3:4]6673; GFX1032-DPP-NEXT:    v_max_f64 v[3:4], v[5:6], v[3:4]6674; GFX1032-DPP-NEXT:    v_mov_b32_e32 v6, 0x7ff800006675; GFX1032-DPP-NEXT:    v_mov_b32_e32 v5, 06676; GFX1032-DPP-NEXT:    v_mov_b32_dpp v6, v4 row_xmask:2 row_mask:0xf bank_mask:0xf6677; GFX1032-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:2 row_mask:0xf bank_mask:0xf6678; GFX1032-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]6679; GFX1032-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]6680; GFX1032-DPP-NEXT:    v_mov_b32_e32 v6, 0x7ff800006681; GFX1032-DPP-NEXT:    v_mov_b32_e32 v5, 06682; GFX1032-DPP-NEXT:    v_mov_b32_dpp v6, v4 row_xmask:4 row_mask:0xf bank_mask:0xf6683; GFX1032-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:4 row_mask:0xf bank_mask:0xf6684; GFX1032-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]6685; GFX1032-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]6686; GFX1032-DPP-NEXT:    v_mov_b32_e32 v6, 0x7ff800006687; GFX1032-DPP-NEXT:    v_mov_b32_e32 v5, 06688; GFX1032-DPP-NEXT:    v_mov_b32_dpp v6, v4 row_xmask:8 row_mask:0xf bank_mask:0xf6689; GFX1032-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:8 row_mask:0xf bank_mask:0xf6690; GFX1032-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]6691; GFX1032-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]6692; GFX1032-DPP-NEXT:    v_permlanex16_b32 v6, v4, 0, 06693; GFX1032-DPP-NEXT:    v_permlanex16_b32 v5, v3, 0, 06694; GFX1032-DPP-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]6695; GFX1032-DPP-NEXT:    v_max_f64 v[3:4], v[3:4], v[5:6]6696; GFX1032-DPP-NEXT:    s_mov_b32 exec_lo, s06697; GFX1032-DPP-NEXT:    v_mbcnt_lo_u32_b32 v7, exec_lo, 06698; GFX1032-DPP-NEXT:    v_mov_b32_e32 v0, v36699; GFX1032-DPP-NEXT:    v_mov_b32_e32 v2, 06700; GFX1032-DPP-NEXT:    v_mov_b32_e32 v1, v46701; GFX1032-DPP-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v76702; GFX1032-DPP-NEXT:    s_and_saveexec_b32 s0, vcc_lo6703; GFX1032-DPP-NEXT:    s_cbranch_execz .LBB11_26704; GFX1032-DPP-NEXT:  ; %bb.1:6705; GFX1032-DPP-NEXT:    s_load_dwordx2 s[0:1], s[34:35], 0x246706; GFX1032-DPP-NEXT:    s_waitcnt lgkmcnt(0)6707; GFX1032-DPP-NEXT:    global_atomic_fmax_x2 v2, v[0:1], s[0:1]6708; GFX1032-DPP-NEXT:  .LBB11_2:6709; GFX1032-DPP-NEXT:    s_endpgm6710;6711; GFX1164-DPP-LABEL: global_atomic_fmax_double_uni_address_div_value_default_scope_unsafe:6712; GFX1164-DPP:       ; %bb.0:6713; GFX1164-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]6714; GFX1164-DPP-NEXT:    s_mov_b32 s12, s86715; GFX1164-DPP-NEXT:    s_add_u32 s8, s34, 446716; GFX1164-DPP-NEXT:    s_mov_b32 s13, s96717; GFX1164-DPP-NEXT:    s_addc_u32 s9, s35, 06718; GFX1164-DPP-NEXT:    s_getpc_b64 s[4:5]6719; GFX1164-DPP-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+46720; GFX1164-DPP-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+126721; GFX1164-DPP-NEXT:    v_mov_b32_e32 v31, v06722; GFX1164-DPP-NEXT:    s_load_b64 s[16:17], s[4:5], 0x06723; GFX1164-DPP-NEXT:    s_mov_b32 s14, s106724; GFX1164-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]6725; GFX1164-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]6726; GFX1164-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]6727; GFX1164-DPP-NEXT:    s_mov_b32 s32, 06728; GFX1164-DPP-NEXT:    s_waitcnt lgkmcnt(0)6729; GFX1164-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]6730; GFX1164-DPP-NEXT:    s_or_saveexec_b64 s[0:1], -16731; GFX1164-DPP-NEXT:    v_mov_b32_e32 v3, 0x7ff800006732; GFX1164-DPP-NEXT:    v_mov_b32_e32 v2, 06733; GFX1164-DPP-NEXT:    v_cndmask_b32_e64 v5, 0x7ff80000, v1, s[0:1]6734; GFX1164-DPP-NEXT:    v_cndmask_b32_e64 v4, 0, v0, s[0:1]6735; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)6736; GFX1164-DPP-NEXT:    v_mov_b32_dpp v3, v5 row_xmask:1 row_mask:0xf bank_mask:0xf6737; GFX1164-DPP-NEXT:    v_mov_b32_dpp v2, v4 row_xmask:1 row_mask:0xf bank_mask:0xf6738; GFX1164-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]6739; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)6740; GFX1164-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[2:3]6741; GFX1164-DPP-NEXT:    v_max_f64 v[2:3], v[4:5], v[2:3]6742; GFX1164-DPP-NEXT:    v_mov_b32_e32 v5, 0x7ff800006743; GFX1164-DPP-NEXT:    v_mov_b32_e32 v4, 06744; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)6745; GFX1164-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:2 row_mask:0xf bank_mask:0xf6746; GFX1164-DPP-NEXT:    v_mov_b32_dpp v4, v2 row_xmask:2 row_mask:0xf bank_mask:0xf6747; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)6748; GFX1164-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]6749; GFX1164-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]6750; GFX1164-DPP-NEXT:    v_mov_b32_e32 v5, 0x7ff800006751; GFX1164-DPP-NEXT:    v_mov_b32_e32 v4, 06752; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)6753; GFX1164-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:4 row_mask:0xf bank_mask:0xf6754; GFX1164-DPP-NEXT:    v_mov_b32_dpp v4, v2 row_xmask:4 row_mask:0xf bank_mask:0xf6755; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)6756; GFX1164-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]6757; GFX1164-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]6758; GFX1164-DPP-NEXT:    v_mov_b32_e32 v5, 0x7ff800006759; GFX1164-DPP-NEXT:    v_mov_b32_e32 v4, 06760; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)6761; GFX1164-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:8 row_mask:0xf bank_mask:0xf6762; GFX1164-DPP-NEXT:    v_mov_b32_dpp v4, v2 row_xmask:8 row_mask:0xf bank_mask:0xf6763; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)6764; GFX1164-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]6765; GFX1164-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]6766; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)6767; GFX1164-DPP-NEXT:    v_permlanex16_b32 v5, v3, 0, 06768; GFX1164-DPP-NEXT:    v_permlanex16_b32 v4, v2, 0, 06769; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)6770; GFX1164-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]6771; GFX1164-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]6772; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)6773; GFX1164-DPP-NEXT:    v_permlane64_b32 v5, v36774; GFX1164-DPP-NEXT:    v_permlane64_b32 v4, v26775; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)6776; GFX1164-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]6777; GFX1164-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]6778; GFX1164-DPP-NEXT:    s_mov_b64 exec, s[0:1]6779; GFX1164-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_3) | instid1(VALU_DEP_2)6780; GFX1164-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 06781; GFX1164-DPP-NEXT:    v_mov_b32_e32 v10, 06782; GFX1164-DPP-NEXT:    s_mov_b64 s[0:1], exec6783; GFX1164-DPP-NEXT:    s_waitcnt_depctr depctr_sa_sdst(0)6784; GFX1164-DPP-NEXT:    v_mbcnt_hi_u32_b32 v6, exec_hi, v06785; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_4) | instskip(SKIP_1) | instid1(VALU_DEP_3)6786; GFX1164-DPP-NEXT:    v_mov_b32_e32 v0, v26787; GFX1164-DPP-NEXT:    v_mov_b32_e32 v1, v36788; GFX1164-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v66789; GFX1164-DPP-NEXT:    s_cbranch_execz .LBB11_36790; GFX1164-DPP-NEXT:  ; %bb.1:6791; GFX1164-DPP-NEXT:    s_load_b64 s[0:1], s[34:35], 0x246792; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2)6793; GFX1164-DPP-NEXT:    v_max_f64 v[0:1], v[0:1], v[0:1]6794; GFX1164-DPP-NEXT:    s_mov_b64 s[2:3], 06795; GFX1164-DPP-NEXT:    s_waitcnt lgkmcnt(0)6796; GFX1164-DPP-NEXT:    global_load_b64 v[8:9], v10, s[0:1]6797; GFX1164-DPP-NEXT:  .LBB11_2: ; %atomicrmw.start6798; GFX1164-DPP-NEXT:    ; =>This Inner Loop Header: Depth=16799; GFX1164-DPP-NEXT:    s_waitcnt vmcnt(0)6800; GFX1164-DPP-NEXT:    v_max_f64 v[6:7], v[8:9], v[8:9]6801; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1)6802; GFX1164-DPP-NEXT:    v_max_f64 v[6:7], v[6:7], v[0:1]6803; GFX1164-DPP-NEXT:    global_atomic_cmpswap_b64 v[6:7], v10, v[6:9], s[0:1] glc6804; GFX1164-DPP-NEXT:    s_waitcnt vmcnt(0)6805; GFX1164-DPP-NEXT:    v_cmp_eq_u64_e32 vcc, v[6:7], v[8:9]6806; GFX1164-DPP-NEXT:    v_mov_b32_e32 v9, v76807; GFX1164-DPP-NEXT:    v_mov_b32_e32 v8, v66808; GFX1164-DPP-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]6809; GFX1164-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)6810; GFX1164-DPP-NEXT:    s_and_not1_b64 exec, exec, s[2:3]6811; GFX1164-DPP-NEXT:    s_cbranch_execnz .LBB11_26812; GFX1164-DPP-NEXT:  .LBB11_3:6813; GFX1164-DPP-NEXT:    s_endpgm6814;6815; GFX1132-DPP-LABEL: global_atomic_fmax_double_uni_address_div_value_default_scope_unsafe:6816; GFX1132-DPP:       ; %bb.0:6817; GFX1132-DPP-NEXT:    s_mov_b64 s[34:35], s[4:5]6818; GFX1132-DPP-NEXT:    v_mov_b32_e32 v31, v06819; GFX1132-DPP-NEXT:    s_add_u32 s8, s34, 446820; GFX1132-DPP-NEXT:    s_addc_u32 s9, s35, 06821; GFX1132-DPP-NEXT:    s_getpc_b64 s[4:5]6822; GFX1132-DPP-NEXT:    s_add_u32 s4, s4, div.double.value@gotpcrel32@lo+46823; GFX1132-DPP-NEXT:    s_addc_u32 s5, s5, div.double.value@gotpcrel32@hi+126824; GFX1132-DPP-NEXT:    s_mov_b32 s12, s136825; GFX1132-DPP-NEXT:    s_load_b64 s[16:17], s[4:5], 0x06826; GFX1132-DPP-NEXT:    s_mov_b64 s[10:11], s[6:7]6827; GFX1132-DPP-NEXT:    s_mov_b64 s[4:5], s[0:1]6828; GFX1132-DPP-NEXT:    s_mov_b64 s[6:7], s[2:3]6829; GFX1132-DPP-NEXT:    s_mov_b32 s13, s146830; GFX1132-DPP-NEXT:    s_mov_b32 s14, s156831; GFX1132-DPP-NEXT:    s_mov_b32 s32, 06832; GFX1132-DPP-NEXT:    s_waitcnt lgkmcnt(0)6833; GFX1132-DPP-NEXT:    s_swappc_b64 s[30:31], s[16:17]6834; GFX1132-DPP-NEXT:    s_or_saveexec_b32 s0, -16835; GFX1132-DPP-NEXT:    v_dual_mov_b32 v3, 0x7ff80000 :: v_dual_mov_b32 v2, 06836; GFX1132-DPP-NEXT:    v_cndmask_b32_e64 v5, 0x7ff80000, v1, s06837; GFX1132-DPP-NEXT:    v_cndmask_b32_e64 v4, 0, v0, s06838; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)6839; GFX1132-DPP-NEXT:    v_mov_b32_dpp v3, v5 row_xmask:1 row_mask:0xf bank_mask:0xf6840; GFX1132-DPP-NEXT:    v_mov_b32_dpp v2, v4 row_xmask:1 row_mask:0xf bank_mask:0xf6841; GFX1132-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]6842; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)6843; GFX1132-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[2:3]6844; GFX1132-DPP-NEXT:    v_max_f64 v[2:3], v[4:5], v[2:3]6845; GFX1132-DPP-NEXT:    v_dual_mov_b32 v5, 0x7ff80000 :: v_dual_mov_b32 v4, 06846; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)6847; GFX1132-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:2 row_mask:0xf bank_mask:0xf6848; GFX1132-DPP-NEXT:    v_mov_b32_dpp v4, v2 row_xmask:2 row_mask:0xf bank_mask:0xf6849; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)6850; GFX1132-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]6851; GFX1132-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]6852; GFX1132-DPP-NEXT:    v_dual_mov_b32 v5, 0x7ff80000 :: v_dual_mov_b32 v4, 06853; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)6854; GFX1132-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:4 row_mask:0xf bank_mask:0xf6855; GFX1132-DPP-NEXT:    v_mov_b32_dpp v4, v2 row_xmask:4 row_mask:0xf bank_mask:0xf6856; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)6857; GFX1132-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]6858; GFX1132-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]6859; GFX1132-DPP-NEXT:    v_dual_mov_b32 v5, 0x7ff80000 :: v_dual_mov_b32 v4, 06860; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)6861; GFX1132-DPP-NEXT:    v_mov_b32_dpp v5, v3 row_xmask:8 row_mask:0xf bank_mask:0xf6862; GFX1132-DPP-NEXT:    v_mov_b32_dpp v4, v2 row_xmask:8 row_mask:0xf bank_mask:0xf6863; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)6864; GFX1132-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]6865; GFX1132-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]6866; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)6867; GFX1132-DPP-NEXT:    v_permlanex16_b32 v5, v3, 0, 06868; GFX1132-DPP-NEXT:    v_permlanex16_b32 v4, v2, 0, 06869; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)6870; GFX1132-DPP-NEXT:    v_max_f64 v[4:5], v[4:5], v[4:5]6871; GFX1132-DPP-NEXT:    v_max_f64 v[2:3], v[2:3], v[4:5]6872; GFX1132-DPP-NEXT:    s_mov_b32 exec_lo, s06873; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_3)6874; GFX1132-DPP-NEXT:    v_mov_b32_e32 v0, v26875; GFX1132-DPP-NEXT:    v_mbcnt_lo_u32_b32 v6, exec_lo, 06876; GFX1132-DPP-NEXT:    v_dual_mov_b32 v10, 0 :: v_dual_mov_b32 v1, v36877; GFX1132-DPP-NEXT:    s_mov_b32 s2, 06878; GFX1132-DPP-NEXT:    s_mov_b32 s0, exec_lo6879; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_2)6880; GFX1132-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v66881; GFX1132-DPP-NEXT:    s_cbranch_execz .LBB11_36882; GFX1132-DPP-NEXT:  ; %bb.1:6883; GFX1132-DPP-NEXT:    s_load_b64 s[0:1], s[34:35], 0x246884; GFX1132-DPP-NEXT:    v_max_f64 v[0:1], v[0:1], v[0:1]6885; GFX1132-DPP-NEXT:    s_waitcnt lgkmcnt(0)6886; GFX1132-DPP-NEXT:    global_load_b64 v[8:9], v10, s[0:1]6887; GFX1132-DPP-NEXT:  .LBB11_2: ; %atomicrmw.start6888; GFX1132-DPP-NEXT:    ; =>This Inner Loop Header: Depth=16889; GFX1132-DPP-NEXT:    s_waitcnt vmcnt(0)6890; GFX1132-DPP-NEXT:    v_max_f64 v[6:7], v[8:9], v[8:9]6891; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1)6892; GFX1132-DPP-NEXT:    v_max_f64 v[6:7], v[6:7], v[0:1]6893; GFX1132-DPP-NEXT:    global_atomic_cmpswap_b64 v[6:7], v10, v[6:9], s[0:1] glc6894; GFX1132-DPP-NEXT:    s_waitcnt vmcnt(0)6895; GFX1132-DPP-NEXT:    v_cmp_eq_u64_e32 vcc_lo, v[6:7], v[8:9]6896; GFX1132-DPP-NEXT:    v_dual_mov_b32 v9, v7 :: v_dual_mov_b32 v8, v66897; GFX1132-DPP-NEXT:    s_or_b32 s2, vcc_lo, s26898; GFX1132-DPP-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)6899; GFX1132-DPP-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s26900; GFX1132-DPP-NEXT:    s_cbranch_execnz .LBB11_26901; GFX1132-DPP-NEXT:  .LBB11_3:6902; GFX1132-DPP-NEXT:    s_endpgm6903  %divValue = call double @div.double.value()6904  %result = atomicrmw fmax ptr addrspace(1) %ptr, double %divValue monotonic, align 8, !amdgpu.no.fine.grained.memory !16905  ret void6906}6907 6908define amdgpu_kernel void @global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_ignore_denormal_mode__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory(ptr addrspace(1) %ptr) {6909; GFX7LESS-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_ignore_denormal_mode__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:6910; GFX7LESS:       ; %bb.0:6911; GFX7LESS-NEXT:    v_mbcnt_lo_u32_b32_e64 v0, exec_lo, 06912; GFX7LESS-NEXT:    v_mbcnt_hi_u32_b32_e32 v0, exec_hi, v06913; GFX7LESS-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v06914; GFX7LESS-NEXT:    s_and_saveexec_b64 s[0:1], vcc6915; GFX7LESS-NEXT:    s_cbranch_execz .LBB12_36916; GFX7LESS-NEXT:  ; %bb.1:6917; GFX7LESS-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x96918; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)6919; GFX7LESS-NEXT:    s_load_dword s2, s[0:1], 0x06920; GFX7LESS-NEXT:    s_mov_b64 s[4:5], 06921; GFX7LESS-NEXT:    s_mov_b32 s3, 0xf0006922; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)6923; GFX7LESS-NEXT:    v_mov_b32_e32 v1, s26924; GFX7LESS-NEXT:    s_mov_b32 s2, -16925; GFX7LESS-NEXT:  .LBB12_2: ; %atomicrmw.start6926; GFX7LESS-NEXT:    ; =>This Inner Loop Header: Depth=16927; GFX7LESS-NEXT:    v_mul_f32_e32 v0, 1.0, v16928; GFX7LESS-NEXT:    v_max_f32_e32 v0, 4.0, v06929; GFX7LESS-NEXT:    s_waitcnt expcnt(0)6930; GFX7LESS-NEXT:    v_mov_b32_e32 v3, v16931; GFX7LESS-NEXT:    v_mov_b32_e32 v2, v06932; GFX7LESS-NEXT:    buffer_atomic_cmpswap v[2:3], off, s[0:3], 0 glc6933; GFX7LESS-NEXT:    s_waitcnt vmcnt(0)6934; GFX7LESS-NEXT:    v_cmp_eq_u32_e32 vcc, v2, v16935; GFX7LESS-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]6936; GFX7LESS-NEXT:    v_mov_b32_e32 v1, v26937; GFX7LESS-NEXT:    s_andn2_b64 exec, exec, s[4:5]6938; GFX7LESS-NEXT:    s_cbranch_execnz .LBB12_26939; GFX7LESS-NEXT:  .LBB12_3:6940; GFX7LESS-NEXT:    s_endpgm6941;6942; GFX9-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_ignore_denormal_mode__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:6943; GFX9:       ; %bb.0:6944; GFX9-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 06945; GFX9-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v06946; GFX9-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v06947; GFX9-NEXT:    s_and_saveexec_b64 s[0:1], vcc6948; GFX9-NEXT:    s_cbranch_execz .LBB12_36949; GFX9-NEXT:  ; %bb.1:6950; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x246951; GFX9-NEXT:    s_mov_b64 s[2:3], 06952; GFX9-NEXT:    v_mov_b32_e32 v2, 06953; GFX9-NEXT:    s_waitcnt lgkmcnt(0)6954; GFX9-NEXT:    s_load_dword s4, s[0:1], 0x06955; GFX9-NEXT:    s_waitcnt lgkmcnt(0)6956; GFX9-NEXT:    v_mov_b32_e32 v1, s46957; GFX9-NEXT:  .LBB12_2: ; %atomicrmw.start6958; GFX9-NEXT:    ; =>This Inner Loop Header: Depth=16959; GFX9-NEXT:    v_max_f32_e32 v0, v1, v16960; GFX9-NEXT:    v_max_f32_e32 v0, 4.0, v06961; GFX9-NEXT:    global_atomic_cmpswap v0, v2, v[0:1], s[0:1] glc6962; GFX9-NEXT:    s_waitcnt vmcnt(0)6963; GFX9-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v16964; GFX9-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]6965; GFX9-NEXT:    v_mov_b32_e32 v1, v06966; GFX9-NEXT:    s_andn2_b64 exec, exec, s[2:3]6967; GFX9-NEXT:    s_cbranch_execnz .LBB12_26968; GFX9-NEXT:  .LBB12_3:6969; GFX9-NEXT:    s_endpgm6970;6971; GFX1064-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_ignore_denormal_mode__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:6972; GFX1064:       ; %bb.0:6973; GFX1064-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 06974; GFX1064-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v06975; GFX1064-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v06976; GFX1064-NEXT:    s_and_saveexec_b64 s[0:1], vcc6977; GFX1064-NEXT:    s_cbranch_execz .LBB12_26978; GFX1064-NEXT:  ; %bb.1:6979; GFX1064-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x246980; GFX1064-NEXT:    v_mov_b32_e32 v0, 06981; GFX1064-NEXT:    v_mov_b32_e32 v1, 4.06982; GFX1064-NEXT:    s_waitcnt lgkmcnt(0)6983; GFX1064-NEXT:    global_atomic_fmax v0, v1, s[0:1]6984; GFX1064-NEXT:  .LBB12_2:6985; GFX1064-NEXT:    s_endpgm6986;6987; GFX1032-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_ignore_denormal_mode__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:6988; GFX1032:       ; %bb.0:6989; GFX1032-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 06990; GFX1032-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v06991; GFX1032-NEXT:    s_and_saveexec_b32 s0, vcc_lo6992; GFX1032-NEXT:    s_cbranch_execz .LBB12_26993; GFX1032-NEXT:  ; %bb.1:6994; GFX1032-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x246995; GFX1032-NEXT:    v_mov_b32_e32 v0, 06996; GFX1032-NEXT:    v_mov_b32_e32 v1, 4.06997; GFX1032-NEXT:    s_waitcnt lgkmcnt(0)6998; GFX1032-NEXT:    global_atomic_fmax v0, v1, s[0:1]6999; GFX1032-NEXT:  .LBB12_2:7000; GFX1032-NEXT:    s_endpgm7001;7002; GFX1164-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_ignore_denormal_mode__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:7003; GFX1164:       ; %bb.0:7004; GFX1164-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 07005; GFX1164-NEXT:    s_mov_b64 s[0:1], exec7006; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)7007; GFX1164-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v07008; GFX1164-NEXT:    v_cmpx_eq_u32_e32 0, v07009; GFX1164-NEXT:    s_cbranch_execz .LBB12_27010; GFX1164-NEXT:  ; %bb.1:7011; GFX1164-NEXT:    s_load_b64 s[0:1], s[4:5], 0x247012; GFX1164-NEXT:    v_mov_b32_e32 v0, 07013; GFX1164-NEXT:    v_mov_b32_e32 v1, 4.07014; GFX1164-NEXT:    s_waitcnt lgkmcnt(0)7015; GFX1164-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]7016; GFX1164-NEXT:  .LBB12_2:7017; GFX1164-NEXT:    s_endpgm7018;7019; GFX1132-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_ignore_denormal_mode__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:7020; GFX1132:       ; %bb.0:7021; GFX1132-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 07022; GFX1132-NEXT:    s_mov_b32 s0, exec_lo7023; GFX1132-NEXT:    s_delay_alu instid0(VALU_DEP_1)7024; GFX1132-NEXT:    v_cmpx_eq_u32_e32 0, v07025; GFX1132-NEXT:    s_cbranch_execz .LBB12_27026; GFX1132-NEXT:  ; %bb.1:7027; GFX1132-NEXT:    s_load_b64 s[0:1], s[4:5], 0x247028; GFX1132-NEXT:    v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, 4.07029; GFX1132-NEXT:    s_waitcnt lgkmcnt(0)7030; GFX1132-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]7031; GFX1132-NEXT:  .LBB12_2:7032; GFX1132-NEXT:    s_endpgm7033;7034; GFX7LESS-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_ignore_denormal_mode__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:7035; GFX7LESS-DPP:       ; %bb.0:7036; GFX7LESS-DPP-NEXT:    v_mbcnt_lo_u32_b32_e64 v0, exec_lo, 07037; GFX7LESS-DPP-NEXT:    v_mbcnt_hi_u32_b32_e32 v0, exec_hi, v07038; GFX7LESS-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v07039; GFX7LESS-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc7040; GFX7LESS-DPP-NEXT:    s_cbranch_execz .LBB12_37041; GFX7LESS-DPP-NEXT:  ; %bb.1:7042; GFX7LESS-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x97043; GFX7LESS-DPP-NEXT:    s_waitcnt lgkmcnt(0)7044; GFX7LESS-DPP-NEXT:    s_load_dword s2, s[0:1], 0x07045; GFX7LESS-DPP-NEXT:    s_mov_b64 s[4:5], 07046; GFX7LESS-DPP-NEXT:    s_mov_b32 s3, 0xf0007047; GFX7LESS-DPP-NEXT:    s_waitcnt lgkmcnt(0)7048; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v1, s27049; GFX7LESS-DPP-NEXT:    s_mov_b32 s2, -17050; GFX7LESS-DPP-NEXT:  .LBB12_2: ; %atomicrmw.start7051; GFX7LESS-DPP-NEXT:    ; =>This Inner Loop Header: Depth=17052; GFX7LESS-DPP-NEXT:    v_mul_f32_e32 v0, 1.0, v17053; GFX7LESS-DPP-NEXT:    v_max_f32_e32 v0, 4.0, v07054; GFX7LESS-DPP-NEXT:    s_waitcnt expcnt(0)7055; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v3, v17056; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v2, v07057; GFX7LESS-DPP-NEXT:    buffer_atomic_cmpswap v[2:3], off, s[0:3], 0 glc7058; GFX7LESS-DPP-NEXT:    s_waitcnt vmcnt(0)7059; GFX7LESS-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, v2, v17060; GFX7LESS-DPP-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]7061; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v1, v27062; GFX7LESS-DPP-NEXT:    s_andn2_b64 exec, exec, s[4:5]7063; GFX7LESS-DPP-NEXT:    s_cbranch_execnz .LBB12_27064; GFX7LESS-DPP-NEXT:  .LBB12_3:7065; GFX7LESS-DPP-NEXT:    s_endpgm7066;7067; GFX9-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_ignore_denormal_mode__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:7068; GFX9-DPP:       ; %bb.0:7069; GFX9-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 07070; GFX9-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v07071; GFX9-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v07072; GFX9-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc7073; GFX9-DPP-NEXT:    s_cbranch_execz .LBB12_37074; GFX9-DPP-NEXT:  ; %bb.1:7075; GFX9-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x247076; GFX9-DPP-NEXT:    s_mov_b64 s[2:3], 07077; GFX9-DPP-NEXT:    v_mov_b32_e32 v2, 07078; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)7079; GFX9-DPP-NEXT:    s_load_dword s4, s[0:1], 0x07080; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)7081; GFX9-DPP-NEXT:    v_mov_b32_e32 v1, s47082; GFX9-DPP-NEXT:  .LBB12_2: ; %atomicrmw.start7083; GFX9-DPP-NEXT:    ; =>This Inner Loop Header: Depth=17084; GFX9-DPP-NEXT:    v_max_f32_e32 v0, v1, v17085; GFX9-DPP-NEXT:    v_max_f32_e32 v0, 4.0, v07086; GFX9-DPP-NEXT:    global_atomic_cmpswap v0, v2, v[0:1], s[0:1] glc7087; GFX9-DPP-NEXT:    s_waitcnt vmcnt(0)7088; GFX9-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v17089; GFX9-DPP-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]7090; GFX9-DPP-NEXT:    v_mov_b32_e32 v1, v07091; GFX9-DPP-NEXT:    s_andn2_b64 exec, exec, s[2:3]7092; GFX9-DPP-NEXT:    s_cbranch_execnz .LBB12_27093; GFX9-DPP-NEXT:  .LBB12_3:7094; GFX9-DPP-NEXT:    s_endpgm7095;7096; GFX1064-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_ignore_denormal_mode__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:7097; GFX1064-DPP:       ; %bb.0:7098; GFX1064-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 07099; GFX1064-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v07100; GFX1064-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v07101; GFX1064-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc7102; GFX1064-DPP-NEXT:    s_cbranch_execz .LBB12_27103; GFX1064-DPP-NEXT:  ; %bb.1:7104; GFX1064-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x247105; GFX1064-DPP-NEXT:    v_mov_b32_e32 v0, 07106; GFX1064-DPP-NEXT:    v_mov_b32_e32 v1, 4.07107; GFX1064-DPP-NEXT:    s_waitcnt lgkmcnt(0)7108; GFX1064-DPP-NEXT:    global_atomic_fmax v0, v1, s[0:1]7109; GFX1064-DPP-NEXT:  .LBB12_2:7110; GFX1064-DPP-NEXT:    s_endpgm7111;7112; GFX1032-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_ignore_denormal_mode__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:7113; GFX1032-DPP:       ; %bb.0:7114; GFX1032-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 07115; GFX1032-DPP-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v07116; GFX1032-DPP-NEXT:    s_and_saveexec_b32 s0, vcc_lo7117; GFX1032-DPP-NEXT:    s_cbranch_execz .LBB12_27118; GFX1032-DPP-NEXT:  ; %bb.1:7119; GFX1032-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x247120; GFX1032-DPP-NEXT:    v_mov_b32_e32 v0, 07121; GFX1032-DPP-NEXT:    v_mov_b32_e32 v1, 4.07122; GFX1032-DPP-NEXT:    s_waitcnt lgkmcnt(0)7123; GFX1032-DPP-NEXT:    global_atomic_fmax v0, v1, s[0:1]7124; GFX1032-DPP-NEXT:  .LBB12_2:7125; GFX1032-DPP-NEXT:    s_endpgm7126;7127; GFX1164-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_ignore_denormal_mode__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:7128; GFX1164-DPP:       ; %bb.0:7129; GFX1164-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 07130; GFX1164-DPP-NEXT:    s_mov_b64 s[0:1], exec7131; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)7132; GFX1164-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v07133; GFX1164-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v07134; GFX1164-DPP-NEXT:    s_cbranch_execz .LBB12_27135; GFX1164-DPP-NEXT:  ; %bb.1:7136; GFX1164-DPP-NEXT:    s_load_b64 s[0:1], s[4:5], 0x247137; GFX1164-DPP-NEXT:    v_mov_b32_e32 v0, 07138; GFX1164-DPP-NEXT:    v_mov_b32_e32 v1, 4.07139; GFX1164-DPP-NEXT:    s_waitcnt lgkmcnt(0)7140; GFX1164-DPP-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]7141; GFX1164-DPP-NEXT:  .LBB12_2:7142; GFX1164-DPP-NEXT:    s_endpgm7143;7144; GFX1132-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_ignore_denormal_mode__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:7145; GFX1132-DPP:       ; %bb.0:7146; GFX1132-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 07147; GFX1132-DPP-NEXT:    s_mov_b32 s0, exec_lo7148; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1)7149; GFX1132-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v07150; GFX1132-DPP-NEXT:    s_cbranch_execz .LBB12_27151; GFX1132-DPP-NEXT:  ; %bb.1:7152; GFX1132-DPP-NEXT:    s_load_b64 s[0:1], s[4:5], 0x247153; GFX1132-DPP-NEXT:    v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, 4.07154; GFX1132-DPP-NEXT:    s_waitcnt lgkmcnt(0)7155; GFX1132-DPP-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]7156; GFX1132-DPP-NEXT:  .LBB12_2:7157; GFX1132-DPP-NEXT:    s_endpgm7158  %result = atomicrmw fmax ptr addrspace(1) %ptr, float 4.0  monotonic, align 4, !amdgpu.no.fine.grained.memory !1, !amdgpu.no.remote.memory !1, !amdgpu.ignore.denormal.mode !17159  ret void7160}7161 7162define amdgpu_kernel void @global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory(ptr addrspace(1) %ptr) {7163; GFX7LESS-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:7164; GFX7LESS:       ; %bb.0:7165; GFX7LESS-NEXT:    v_mbcnt_lo_u32_b32_e64 v0, exec_lo, 07166; GFX7LESS-NEXT:    v_mbcnt_hi_u32_b32_e32 v0, exec_hi, v07167; GFX7LESS-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v07168; GFX7LESS-NEXT:    s_and_saveexec_b64 s[0:1], vcc7169; GFX7LESS-NEXT:    s_cbranch_execz .LBB13_37170; GFX7LESS-NEXT:  ; %bb.1:7171; GFX7LESS-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x97172; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)7173; GFX7LESS-NEXT:    s_load_dword s2, s[0:1], 0x07174; GFX7LESS-NEXT:    s_mov_b64 s[4:5], 07175; GFX7LESS-NEXT:    s_mov_b32 s3, 0xf0007176; GFX7LESS-NEXT:    s_waitcnt lgkmcnt(0)7177; GFX7LESS-NEXT:    v_mov_b32_e32 v1, s27178; GFX7LESS-NEXT:    s_mov_b32 s2, -17179; GFX7LESS-NEXT:  .LBB13_2: ; %atomicrmw.start7180; GFX7LESS-NEXT:    ; =>This Inner Loop Header: Depth=17181; GFX7LESS-NEXT:    v_mul_f32_e32 v0, 1.0, v17182; GFX7LESS-NEXT:    v_max_f32_e32 v0, 4.0, v07183; GFX7LESS-NEXT:    s_waitcnt expcnt(0)7184; GFX7LESS-NEXT:    v_mov_b32_e32 v3, v17185; GFX7LESS-NEXT:    v_mov_b32_e32 v2, v07186; GFX7LESS-NEXT:    buffer_atomic_cmpswap v[2:3], off, s[0:3], 0 glc7187; GFX7LESS-NEXT:    s_waitcnt vmcnt(0)7188; GFX7LESS-NEXT:    v_cmp_eq_u32_e32 vcc, v2, v17189; GFX7LESS-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]7190; GFX7LESS-NEXT:    v_mov_b32_e32 v1, v27191; GFX7LESS-NEXT:    s_andn2_b64 exec, exec, s[4:5]7192; GFX7LESS-NEXT:    s_cbranch_execnz .LBB13_27193; GFX7LESS-NEXT:  .LBB13_3:7194; GFX7LESS-NEXT:    s_endpgm7195;7196; GFX9-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:7197; GFX9:       ; %bb.0:7198; GFX9-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 07199; GFX9-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v07200; GFX9-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v07201; GFX9-NEXT:    s_and_saveexec_b64 s[0:1], vcc7202; GFX9-NEXT:    s_cbranch_execz .LBB13_37203; GFX9-NEXT:  ; %bb.1:7204; GFX9-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x247205; GFX9-NEXT:    s_mov_b64 s[2:3], 07206; GFX9-NEXT:    v_mov_b32_e32 v2, 07207; GFX9-NEXT:    s_waitcnt lgkmcnt(0)7208; GFX9-NEXT:    s_load_dword s4, s[0:1], 0x07209; GFX9-NEXT:    s_waitcnt lgkmcnt(0)7210; GFX9-NEXT:    v_mov_b32_e32 v1, s47211; GFX9-NEXT:  .LBB13_2: ; %atomicrmw.start7212; GFX9-NEXT:    ; =>This Inner Loop Header: Depth=17213; GFX9-NEXT:    v_max_f32_e32 v0, v1, v17214; GFX9-NEXT:    v_max_f32_e32 v0, 4.0, v07215; GFX9-NEXT:    global_atomic_cmpswap v0, v2, v[0:1], s[0:1] glc7216; GFX9-NEXT:    s_waitcnt vmcnt(0)7217; GFX9-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v17218; GFX9-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]7219; GFX9-NEXT:    v_mov_b32_e32 v1, v07220; GFX9-NEXT:    s_andn2_b64 exec, exec, s[2:3]7221; GFX9-NEXT:    s_cbranch_execnz .LBB13_27222; GFX9-NEXT:  .LBB13_3:7223; GFX9-NEXT:    s_endpgm7224;7225; GFX1064-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:7226; GFX1064:       ; %bb.0:7227; GFX1064-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 07228; GFX1064-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v07229; GFX1064-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v07230; GFX1064-NEXT:    s_and_saveexec_b64 s[0:1], vcc7231; GFX1064-NEXT:    s_cbranch_execz .LBB13_27232; GFX1064-NEXT:  ; %bb.1:7233; GFX1064-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x247234; GFX1064-NEXT:    v_mov_b32_e32 v0, 07235; GFX1064-NEXT:    v_mov_b32_e32 v1, 4.07236; GFX1064-NEXT:    s_waitcnt lgkmcnt(0)7237; GFX1064-NEXT:    global_atomic_fmax v0, v1, s[0:1]7238; GFX1064-NEXT:  .LBB13_2:7239; GFX1064-NEXT:    s_endpgm7240;7241; GFX1032-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:7242; GFX1032:       ; %bb.0:7243; GFX1032-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 07244; GFX1032-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v07245; GFX1032-NEXT:    s_and_saveexec_b32 s0, vcc_lo7246; GFX1032-NEXT:    s_cbranch_execz .LBB13_27247; GFX1032-NEXT:  ; %bb.1:7248; GFX1032-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x247249; GFX1032-NEXT:    v_mov_b32_e32 v0, 07250; GFX1032-NEXT:    v_mov_b32_e32 v1, 4.07251; GFX1032-NEXT:    s_waitcnt lgkmcnt(0)7252; GFX1032-NEXT:    global_atomic_fmax v0, v1, s[0:1]7253; GFX1032-NEXT:  .LBB13_2:7254; GFX1032-NEXT:    s_endpgm7255;7256; GFX1164-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:7257; GFX1164:       ; %bb.0:7258; GFX1164-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 07259; GFX1164-NEXT:    s_mov_b64 s[0:1], exec7260; GFX1164-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)7261; GFX1164-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v07262; GFX1164-NEXT:    v_cmpx_eq_u32_e32 0, v07263; GFX1164-NEXT:    s_cbranch_execz .LBB13_27264; GFX1164-NEXT:  ; %bb.1:7265; GFX1164-NEXT:    s_load_b64 s[0:1], s[4:5], 0x247266; GFX1164-NEXT:    v_mov_b32_e32 v0, 07267; GFX1164-NEXT:    v_mov_b32_e32 v1, 4.07268; GFX1164-NEXT:    s_waitcnt lgkmcnt(0)7269; GFX1164-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]7270; GFX1164-NEXT:  .LBB13_2:7271; GFX1164-NEXT:    s_endpgm7272;7273; GFX1132-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:7274; GFX1132:       ; %bb.0:7275; GFX1132-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 07276; GFX1132-NEXT:    s_mov_b32 s0, exec_lo7277; GFX1132-NEXT:    s_delay_alu instid0(VALU_DEP_1)7278; GFX1132-NEXT:    v_cmpx_eq_u32_e32 0, v07279; GFX1132-NEXT:    s_cbranch_execz .LBB13_27280; GFX1132-NEXT:  ; %bb.1:7281; GFX1132-NEXT:    s_load_b64 s[0:1], s[4:5], 0x247282; GFX1132-NEXT:    v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, 4.07283; GFX1132-NEXT:    s_waitcnt lgkmcnt(0)7284; GFX1132-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]7285; GFX1132-NEXT:  .LBB13_2:7286; GFX1132-NEXT:    s_endpgm7287;7288; GFX7LESS-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:7289; GFX7LESS-DPP:       ; %bb.0:7290; GFX7LESS-DPP-NEXT:    v_mbcnt_lo_u32_b32_e64 v0, exec_lo, 07291; GFX7LESS-DPP-NEXT:    v_mbcnt_hi_u32_b32_e32 v0, exec_hi, v07292; GFX7LESS-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v07293; GFX7LESS-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc7294; GFX7LESS-DPP-NEXT:    s_cbranch_execz .LBB13_37295; GFX7LESS-DPP-NEXT:  ; %bb.1:7296; GFX7LESS-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x97297; GFX7LESS-DPP-NEXT:    s_waitcnt lgkmcnt(0)7298; GFX7LESS-DPP-NEXT:    s_load_dword s2, s[0:1], 0x07299; GFX7LESS-DPP-NEXT:    s_mov_b64 s[4:5], 07300; GFX7LESS-DPP-NEXT:    s_mov_b32 s3, 0xf0007301; GFX7LESS-DPP-NEXT:    s_waitcnt lgkmcnt(0)7302; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v1, s27303; GFX7LESS-DPP-NEXT:    s_mov_b32 s2, -17304; GFX7LESS-DPP-NEXT:  .LBB13_2: ; %atomicrmw.start7305; GFX7LESS-DPP-NEXT:    ; =>This Inner Loop Header: Depth=17306; GFX7LESS-DPP-NEXT:    v_mul_f32_e32 v0, 1.0, v17307; GFX7LESS-DPP-NEXT:    v_max_f32_e32 v0, 4.0, v07308; GFX7LESS-DPP-NEXT:    s_waitcnt expcnt(0)7309; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v3, v17310; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v2, v07311; GFX7LESS-DPP-NEXT:    buffer_atomic_cmpswap v[2:3], off, s[0:3], 0 glc7312; GFX7LESS-DPP-NEXT:    s_waitcnt vmcnt(0)7313; GFX7LESS-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, v2, v17314; GFX7LESS-DPP-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]7315; GFX7LESS-DPP-NEXT:    v_mov_b32_e32 v1, v27316; GFX7LESS-DPP-NEXT:    s_andn2_b64 exec, exec, s[4:5]7317; GFX7LESS-DPP-NEXT:    s_cbranch_execnz .LBB13_27318; GFX7LESS-DPP-NEXT:  .LBB13_3:7319; GFX7LESS-DPP-NEXT:    s_endpgm7320;7321; GFX9-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:7322; GFX9-DPP:       ; %bb.0:7323; GFX9-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 07324; GFX9-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v07325; GFX9-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v07326; GFX9-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc7327; GFX9-DPP-NEXT:    s_cbranch_execz .LBB13_37328; GFX9-DPP-NEXT:  ; %bb.1:7329; GFX9-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x247330; GFX9-DPP-NEXT:    s_mov_b64 s[2:3], 07331; GFX9-DPP-NEXT:    v_mov_b32_e32 v2, 07332; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)7333; GFX9-DPP-NEXT:    s_load_dword s4, s[0:1], 0x07334; GFX9-DPP-NEXT:    s_waitcnt lgkmcnt(0)7335; GFX9-DPP-NEXT:    v_mov_b32_e32 v1, s47336; GFX9-DPP-NEXT:  .LBB13_2: ; %atomicrmw.start7337; GFX9-DPP-NEXT:    ; =>This Inner Loop Header: Depth=17338; GFX9-DPP-NEXT:    v_max_f32_e32 v0, v1, v17339; GFX9-DPP-NEXT:    v_max_f32_e32 v0, 4.0, v07340; GFX9-DPP-NEXT:    global_atomic_cmpswap v0, v2, v[0:1], s[0:1] glc7341; GFX9-DPP-NEXT:    s_waitcnt vmcnt(0)7342; GFX9-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v17343; GFX9-DPP-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]7344; GFX9-DPP-NEXT:    v_mov_b32_e32 v1, v07345; GFX9-DPP-NEXT:    s_andn2_b64 exec, exec, s[2:3]7346; GFX9-DPP-NEXT:    s_cbranch_execnz .LBB13_27347; GFX9-DPP-NEXT:  .LBB13_3:7348; GFX9-DPP-NEXT:    s_endpgm7349;7350; GFX1064-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:7351; GFX1064-DPP:       ; %bb.0:7352; GFX1064-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 07353; GFX1064-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v07354; GFX1064-DPP-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v07355; GFX1064-DPP-NEXT:    s_and_saveexec_b64 s[0:1], vcc7356; GFX1064-DPP-NEXT:    s_cbranch_execz .LBB13_27357; GFX1064-DPP-NEXT:  ; %bb.1:7358; GFX1064-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x247359; GFX1064-DPP-NEXT:    v_mov_b32_e32 v0, 07360; GFX1064-DPP-NEXT:    v_mov_b32_e32 v1, 4.07361; GFX1064-DPP-NEXT:    s_waitcnt lgkmcnt(0)7362; GFX1064-DPP-NEXT:    global_atomic_fmax v0, v1, s[0:1]7363; GFX1064-DPP-NEXT:  .LBB13_2:7364; GFX1064-DPP-NEXT:    s_endpgm7365;7366; GFX1032-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:7367; GFX1032-DPP:       ; %bb.0:7368; GFX1032-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 07369; GFX1032-DPP-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v07370; GFX1032-DPP-NEXT:    s_and_saveexec_b32 s0, vcc_lo7371; GFX1032-DPP-NEXT:    s_cbranch_execz .LBB13_27372; GFX1032-DPP-NEXT:  ; %bb.1:7373; GFX1032-DPP-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x247374; GFX1032-DPP-NEXT:    v_mov_b32_e32 v0, 07375; GFX1032-DPP-NEXT:    v_mov_b32_e32 v1, 4.07376; GFX1032-DPP-NEXT:    s_waitcnt lgkmcnt(0)7377; GFX1032-DPP-NEXT:    global_atomic_fmax v0, v1, s[0:1]7378; GFX1032-DPP-NEXT:  .LBB13_2:7379; GFX1032-DPP-NEXT:    s_endpgm7380;7381; GFX1164-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:7382; GFX1164-DPP:       ; %bb.0:7383; GFX1164-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 07384; GFX1164-DPP-NEXT:    s_mov_b64 s[0:1], exec7385; GFX1164-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)7386; GFX1164-DPP-NEXT:    v_mbcnt_hi_u32_b32 v0, exec_hi, v07387; GFX1164-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v07388; GFX1164-DPP-NEXT:    s_cbranch_execz .LBB13_27389; GFX1164-DPP-NEXT:  ; %bb.1:7390; GFX1164-DPP-NEXT:    s_load_b64 s[0:1], s[4:5], 0x247391; GFX1164-DPP-NEXT:    v_mov_b32_e32 v0, 07392; GFX1164-DPP-NEXT:    v_mov_b32_e32 v1, 4.07393; GFX1164-DPP-NEXT:    s_waitcnt lgkmcnt(0)7394; GFX1164-DPP-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]7395; GFX1164-DPP-NEXT:  .LBB13_2:7396; GFX1164-DPP-NEXT:    s_endpgm7397;7398; GFX1132-DPP-LABEL: global_atomic_fmax_uni_address_uni_value_system_scope__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:7399; GFX1132-DPP:       ; %bb.0:7400; GFX1132-DPP-NEXT:    v_mbcnt_lo_u32_b32 v0, exec_lo, 07401; GFX1132-DPP-NEXT:    s_mov_b32 s0, exec_lo7402; GFX1132-DPP-NEXT:    s_delay_alu instid0(VALU_DEP_1)7403; GFX1132-DPP-NEXT:    v_cmpx_eq_u32_e32 0, v07404; GFX1132-DPP-NEXT:    s_cbranch_execz .LBB13_27405; GFX1132-DPP-NEXT:  ; %bb.1:7406; GFX1132-DPP-NEXT:    s_load_b64 s[0:1], s[4:5], 0x247407; GFX1132-DPP-NEXT:    v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, 4.07408; GFX1132-DPP-NEXT:    s_waitcnt lgkmcnt(0)7409; GFX1132-DPP-NEXT:    global_atomic_max_f32 v0, v1, s[0:1]7410; GFX1132-DPP-NEXT:  .LBB13_2:7411; GFX1132-DPP-NEXT:    s_endpgm7412  %result = atomicrmw fmax ptr addrspace(1) %ptr, float 4.0  monotonic, align 4, !amdgpu.no.fine.grained.memory !1, !amdgpu.no.remote.memory !17413  ret void7414}7415 7416attributes #0 = { "denormal-fp-math-f32"="preserve-sign,preserve-sign" }7417 7418!1 = !{}7419 7420