brintos

brintos / llvm-project-archived public Read only

0
0
Text · 440.6 KiB · d1dc76f Raw
9349 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx1200 -mattr=+real-true16 < %s | FileCheck -check-prefixes=GFX12,GFX12-TRUE16 %s3; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx1200 -mattr=-real-true16 < %s | FileCheck -check-prefixes=GFX12,GFX12-FAKE16 %s4; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx942 < %s | FileCheck -check-prefix=GFX942 %s5; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx1100 -mattr=+real-true16 < %s | FileCheck -check-prefixes=GFX11,GFX11-TRUE16 %s6; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx1100 -mattr=-real-true16 < %s | FileCheck -check-prefixes=GFX11,GFX11-FAKE16 %s7; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx1010 < %s | FileCheck -check-prefix=GFX10 %s8; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx90a < %s | FileCheck -check-prefix=GFX90A %s9; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx908 < %s | FileCheck -check-prefix=GFX908 %s10; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=tonga < %s | FileCheck -check-prefix=GFX8 %s11; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=hawaii < %s | FileCheck -check-prefix=GFX7 %s12; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=tahiti < %s | FileCheck -check-prefix=GFX6 %s13 14; --------------------------------------------------------------------15; float16; --------------------------------------------------------------------17 18define float @buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory(ptr addrspace(7) inreg %ptr, float %val) #0 {19; GFX12-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory:20; GFX12:       ; %bb.0:21; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x022; GFX12-NEXT:    s_wait_expcnt 0x023; GFX12-NEXT:    s_wait_samplecnt 0x024; GFX12-NEXT:    s_wait_bvhcnt 0x025; GFX12-NEXT:    s_wait_kmcnt 0x026; GFX12-NEXT:    v_mov_b32_e32 v1, s1627; GFX12-NEXT:    s_wait_storecnt 0x028; GFX12-NEXT:    buffer_atomic_min_num_f32 v0, v1, s[0:3], null offen offset:1024 th:TH_ATOMIC_RETURN29; GFX12-NEXT:    s_wait_loadcnt 0x030; GFX12-NEXT:    global_inv scope:SCOPE_DEV31; GFX12-NEXT:    s_wait_loadcnt 0x032; GFX12-NEXT:    s_setpc_b64 s[30:31]33;34; GFX942-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory:35; GFX942:       ; %bb.0:36; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)37; GFX942-NEXT:    v_mov_b32_e32 v1, v038; GFX942-NEXT:    v_mov_b32_e32 v0, s1639; GFX942-NEXT:    buffer_load_dword v0, v0, s[0:3], 0 offen offset:102440; GFX942-NEXT:    s_mov_b64 s[4:5], 041; GFX942-NEXT:    v_max_f32_e32 v2, v1, v142; GFX942-NEXT:    v_mov_b32_e32 v3, s1643; GFX942-NEXT:  .LBB0_1: ; %atomicrmw.start44; GFX942-NEXT:    ; =>This Inner Loop Header: Depth=145; GFX942-NEXT:    s_waitcnt vmcnt(0)46; GFX942-NEXT:    v_mov_b32_e32 v5, v047; GFX942-NEXT:    v_max_f32_e32 v0, v5, v548; GFX942-NEXT:    v_min_f32_e32 v4, v0, v249; GFX942-NEXT:    v_mov_b64_e32 v[0:1], v[4:5]50; GFX942-NEXT:    buffer_wbl2 sc151; GFX942-NEXT:    buffer_atomic_cmpswap v[0:1], v3, s[0:3], 0 offen offset:1024 sc052; GFX942-NEXT:    s_waitcnt vmcnt(0)53; GFX942-NEXT:    buffer_inv sc154; GFX942-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v555; GFX942-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]56; GFX942-NEXT:    s_andn2_b64 exec, exec, s[4:5]57; GFX942-NEXT:    s_cbranch_execnz .LBB0_158; GFX942-NEXT:  ; %bb.2: ; %atomicrmw.end59; GFX942-NEXT:    s_or_b64 exec, exec, s[4:5]60; GFX942-NEXT:    s_setpc_b64 s[30:31]61;62; GFX11-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory:63; GFX11:       ; %bb.0:64; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)65; GFX11-NEXT:    v_mov_b32_e32 v1, s1666; GFX11-NEXT:    s_waitcnt_vscnt null, 0x067; GFX11-NEXT:    buffer_atomic_min_f32 v0, v1, s[0:3], 0 offen offset:1024 glc68; GFX11-NEXT:    s_waitcnt vmcnt(0)69; GFX11-NEXT:    buffer_gl1_inv70; GFX11-NEXT:    buffer_gl0_inv71; GFX11-NEXT:    s_setpc_b64 s[30:31]72;73; GFX10-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory:74; GFX10:       ; %bb.0:75; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)76; GFX10-NEXT:    v_mov_b32_e32 v1, s2077; GFX10-NEXT:    s_waitcnt_vscnt null, 0x078; GFX10-NEXT:    buffer_atomic_fmin v0, v1, s[16:19], 0 offen offset:1024 glc79; GFX10-NEXT:    s_waitcnt vmcnt(0)80; GFX10-NEXT:    buffer_gl1_inv81; GFX10-NEXT:    buffer_gl0_inv82; GFX10-NEXT:    s_setpc_b64 s[30:31]83;84; GFX90A-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory:85; GFX90A:       ; %bb.0:86; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)87; GFX90A-NEXT:    v_mov_b32_e32 v1, v088; GFX90A-NEXT:    v_mov_b32_e32 v0, s2089; GFX90A-NEXT:    buffer_load_dword v0, v0, s[16:19], 0 offen offset:102490; GFX90A-NEXT:    s_mov_b64 s[4:5], 091; GFX90A-NEXT:    v_max_f32_e32 v2, v1, v192; GFX90A-NEXT:    v_mov_b32_e32 v3, s2093; GFX90A-NEXT:  .LBB0_1: ; %atomicrmw.start94; GFX90A-NEXT:    ; =>This Inner Loop Header: Depth=195; GFX90A-NEXT:    s_waitcnt vmcnt(0)96; GFX90A-NEXT:    v_mov_b32_e32 v5, v097; GFX90A-NEXT:    v_max_f32_e32 v0, v5, v598; GFX90A-NEXT:    v_min_f32_e32 v4, v0, v299; GFX90A-NEXT:    v_pk_mov_b32 v[0:1], v[4:5], v[4:5] op_sel:[0,1]100; GFX90A-NEXT:    buffer_atomic_cmpswap v[0:1], v3, s[16:19], 0 offen offset:1024 glc101; GFX90A-NEXT:    s_waitcnt vmcnt(0)102; GFX90A-NEXT:    buffer_wbinvl1103; GFX90A-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v5104; GFX90A-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]105; GFX90A-NEXT:    s_andn2_b64 exec, exec, s[4:5]106; GFX90A-NEXT:    s_cbranch_execnz .LBB0_1107; GFX90A-NEXT:  ; %bb.2: ; %atomicrmw.end108; GFX90A-NEXT:    s_or_b64 exec, exec, s[4:5]109; GFX90A-NEXT:    s_setpc_b64 s[30:31]110;111; GFX908-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory:112; GFX908:       ; %bb.0:113; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)114; GFX908-NEXT:    v_mov_b32_e32 v1, v0115; GFX908-NEXT:    v_mov_b32_e32 v0, s20116; GFX908-NEXT:    buffer_load_dword v0, v0, s[16:19], 0 offen offset:1024117; GFX908-NEXT:    s_mov_b64 s[4:5], 0118; GFX908-NEXT:    v_max_f32_e32 v2, v1, v1119; GFX908-NEXT:    v_mov_b32_e32 v3, s20120; GFX908-NEXT:  .LBB0_1: ; %atomicrmw.start121; GFX908-NEXT:    ; =>This Inner Loop Header: Depth=1122; GFX908-NEXT:    s_waitcnt vmcnt(0)123; GFX908-NEXT:    v_mov_b32_e32 v5, v0124; GFX908-NEXT:    v_max_f32_e32 v0, v5, v5125; GFX908-NEXT:    v_min_f32_e32 v4, v0, v2126; GFX908-NEXT:    v_mov_b32_e32 v0, v4127; GFX908-NEXT:    v_mov_b32_e32 v1, v5128; GFX908-NEXT:    buffer_atomic_cmpswap v[0:1], v3, s[16:19], 0 offen offset:1024 glc129; GFX908-NEXT:    s_waitcnt vmcnt(0)130; GFX908-NEXT:    buffer_wbinvl1131; GFX908-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v5132; GFX908-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]133; GFX908-NEXT:    s_andn2_b64 exec, exec, s[4:5]134; GFX908-NEXT:    s_cbranch_execnz .LBB0_1135; GFX908-NEXT:  ; %bb.2: ; %atomicrmw.end136; GFX908-NEXT:    s_or_b64 exec, exec, s[4:5]137; GFX908-NEXT:    s_setpc_b64 s[30:31]138;139; GFX8-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory:140; GFX8:       ; %bb.0:141; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)142; GFX8-NEXT:    v_mov_b32_e32 v1, v0143; GFX8-NEXT:    v_mov_b32_e32 v0, s20144; GFX8-NEXT:    buffer_load_dword v0, v0, s[16:19], 0 offen offset:1024145; GFX8-NEXT:    s_mov_b64 s[4:5], 0146; GFX8-NEXT:    v_mul_f32_e32 v2, 1.0, v1147; GFX8-NEXT:    v_mov_b32_e32 v3, s20148; GFX8-NEXT:  .LBB0_1: ; %atomicrmw.start149; GFX8-NEXT:    ; =>This Inner Loop Header: Depth=1150; GFX8-NEXT:    s_waitcnt vmcnt(0)151; GFX8-NEXT:    v_mov_b32_e32 v5, v0152; GFX8-NEXT:    v_mul_f32_e32 v0, 1.0, v5153; GFX8-NEXT:    v_min_f32_e32 v4, v0, v2154; GFX8-NEXT:    v_mov_b32_e32 v0, v4155; GFX8-NEXT:    v_mov_b32_e32 v1, v5156; GFX8-NEXT:    buffer_atomic_cmpswap v[0:1], v3, s[16:19], 0 offen offset:1024 glc157; GFX8-NEXT:    s_waitcnt vmcnt(0)158; GFX8-NEXT:    buffer_wbinvl1159; GFX8-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v5160; GFX8-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]161; GFX8-NEXT:    s_andn2_b64 exec, exec, s[4:5]162; GFX8-NEXT:    s_cbranch_execnz .LBB0_1163; GFX8-NEXT:  ; %bb.2: ; %atomicrmw.end164; GFX8-NEXT:    s_or_b64 exec, exec, s[4:5]165; GFX8-NEXT:    s_setpc_b64 s[30:31]166;167; GFX7-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory:168; GFX7:       ; %bb.0:169; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)170; GFX7-NEXT:    v_mov_b32_e32 v1, s20171; GFX7-NEXT:    buffer_atomic_fmin v0, v1, s[16:19], 0 offen offset:1024 glc172; GFX7-NEXT:    s_waitcnt vmcnt(0)173; GFX7-NEXT:    buffer_wbinvl1174; GFX7-NEXT:    s_setpc_b64 s[30:31]175;176; GFX6-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory:177; GFX6:       ; %bb.0:178; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)179; GFX6-NEXT:    v_mov_b32_e32 v1, s20180; GFX6-NEXT:    buffer_atomic_fmin v0, v1, s[16:19], 0 offen offset:1024 glc181; GFX6-NEXT:    s_waitcnt vmcnt(0)182; GFX6-NEXT:    buffer_wbinvl1183; GFX6-NEXT:    s_waitcnt expcnt(0)184; GFX6-NEXT:    s_setpc_b64 s[30:31]185  %gep = getelementptr float, ptr addrspace(7) %ptr, i32 256186  %result = atomicrmw fmin ptr addrspace(7) %gep, float %val syncscope("agent") seq_cst, !amdgpu.no.fine.grained.memory !0187  ret float %result188}189 190define void @buffer_fat_ptr_agent_atomic_fmin_noret_f32__offset__amdgpu_no_fine_grained_memory(ptr addrspace(7) inreg %ptr, float %val) #0 {191; GFX12-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f32__offset__amdgpu_no_fine_grained_memory:192; GFX12:       ; %bb.0:193; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0194; GFX12-NEXT:    s_wait_expcnt 0x0195; GFX12-NEXT:    s_wait_samplecnt 0x0196; GFX12-NEXT:    s_wait_bvhcnt 0x0197; GFX12-NEXT:    s_wait_kmcnt 0x0198; GFX12-NEXT:    v_mov_b32_e32 v1, s16199; GFX12-NEXT:    s_wait_storecnt 0x0200; GFX12-NEXT:    buffer_atomic_min_num_f32 v0, v1, s[0:3], null offen offset:1024201; GFX12-NEXT:    s_wait_storecnt 0x0202; GFX12-NEXT:    global_inv scope:SCOPE_DEV203; GFX12-NEXT:    s_wait_loadcnt 0x0204; GFX12-NEXT:    s_setpc_b64 s[30:31]205;206; GFX942-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f32__offset__amdgpu_no_fine_grained_memory:207; GFX942:       ; %bb.0:208; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)209; GFX942-NEXT:    v_mov_b32_e32 v1, s16210; GFX942-NEXT:    buffer_load_dword v1, v1, s[0:3], 0 offen offset:1024211; GFX942-NEXT:    s_mov_b64 s[4:5], 0212; GFX942-NEXT:    v_max_f32_e32 v2, v0, v0213; GFX942-NEXT:    v_mov_b32_e32 v3, s16214; GFX942-NEXT:  .LBB1_1: ; %atomicrmw.start215; GFX942-NEXT:    ; =>This Inner Loop Header: Depth=1216; GFX942-NEXT:    s_waitcnt vmcnt(0)217; GFX942-NEXT:    v_max_f32_e32 v0, v1, v1218; GFX942-NEXT:    v_min_f32_e32 v0, v0, v2219; GFX942-NEXT:    v_mov_b64_e32 v[4:5], v[0:1]220; GFX942-NEXT:    buffer_wbl2 sc1221; GFX942-NEXT:    buffer_atomic_cmpswap v[4:5], v3, s[0:3], 0 offen offset:1024 sc0222; GFX942-NEXT:    s_waitcnt vmcnt(0)223; GFX942-NEXT:    buffer_inv sc1224; GFX942-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v1225; GFX942-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]226; GFX942-NEXT:    v_mov_b32_e32 v1, v4227; GFX942-NEXT:    s_andn2_b64 exec, exec, s[4:5]228; GFX942-NEXT:    s_cbranch_execnz .LBB1_1229; GFX942-NEXT:  ; %bb.2: ; %atomicrmw.end230; GFX942-NEXT:    s_or_b64 exec, exec, s[4:5]231; GFX942-NEXT:    s_setpc_b64 s[30:31]232;233; GFX11-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f32__offset__amdgpu_no_fine_grained_memory:234; GFX11:       ; %bb.0:235; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)236; GFX11-NEXT:    v_mov_b32_e32 v1, s16237; GFX11-NEXT:    s_waitcnt_vscnt null, 0x0238; GFX11-NEXT:    buffer_atomic_min_f32 v0, v1, s[0:3], 0 offen offset:1024239; GFX11-NEXT:    s_waitcnt_vscnt null, 0x0240; GFX11-NEXT:    buffer_gl1_inv241; GFX11-NEXT:    buffer_gl0_inv242; GFX11-NEXT:    s_setpc_b64 s[30:31]243;244; GFX10-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f32__offset__amdgpu_no_fine_grained_memory:245; GFX10:       ; %bb.0:246; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)247; GFX10-NEXT:    v_mov_b32_e32 v1, s20248; GFX10-NEXT:    s_waitcnt_vscnt null, 0x0249; GFX10-NEXT:    buffer_atomic_fmin v0, v1, s[16:19], 0 offen offset:1024250; GFX10-NEXT:    s_waitcnt_vscnt null, 0x0251; GFX10-NEXT:    buffer_gl1_inv252; GFX10-NEXT:    buffer_gl0_inv253; GFX10-NEXT:    s_setpc_b64 s[30:31]254;255; GFX90A-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f32__offset__amdgpu_no_fine_grained_memory:256; GFX90A:       ; %bb.0:257; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)258; GFX90A-NEXT:    v_mov_b32_e32 v1, s20259; GFX90A-NEXT:    buffer_load_dword v1, v1, s[16:19], 0 offen offset:1024260; GFX90A-NEXT:    s_mov_b64 s[4:5], 0261; GFX90A-NEXT:    v_max_f32_e32 v2, v0, v0262; GFX90A-NEXT:    v_mov_b32_e32 v3, s20263; GFX90A-NEXT:  .LBB1_1: ; %atomicrmw.start264; GFX90A-NEXT:    ; =>This Inner Loop Header: Depth=1265; GFX90A-NEXT:    s_waitcnt vmcnt(0)266; GFX90A-NEXT:    v_max_f32_e32 v0, v1, v1267; GFX90A-NEXT:    v_min_f32_e32 v0, v0, v2268; GFX90A-NEXT:    v_pk_mov_b32 v[4:5], v[0:1], v[0:1] op_sel:[0,1]269; GFX90A-NEXT:    buffer_atomic_cmpswap v[4:5], v3, s[16:19], 0 offen offset:1024 glc270; GFX90A-NEXT:    s_waitcnt vmcnt(0)271; GFX90A-NEXT:    buffer_wbinvl1272; GFX90A-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v1273; GFX90A-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]274; GFX90A-NEXT:    v_mov_b32_e32 v1, v4275; GFX90A-NEXT:    s_andn2_b64 exec, exec, s[4:5]276; GFX90A-NEXT:    s_cbranch_execnz .LBB1_1277; GFX90A-NEXT:  ; %bb.2: ; %atomicrmw.end278; GFX90A-NEXT:    s_or_b64 exec, exec, s[4:5]279; GFX90A-NEXT:    s_setpc_b64 s[30:31]280;281; GFX908-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f32__offset__amdgpu_no_fine_grained_memory:282; GFX908:       ; %bb.0:283; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)284; GFX908-NEXT:    v_mov_b32_e32 v1, s20285; GFX908-NEXT:    buffer_load_dword v1, v1, s[16:19], 0 offen offset:1024286; GFX908-NEXT:    s_mov_b64 s[4:5], 0287; GFX908-NEXT:    v_max_f32_e32 v2, v0, v0288; GFX908-NEXT:    v_mov_b32_e32 v3, s20289; GFX908-NEXT:  .LBB1_1: ; %atomicrmw.start290; GFX908-NEXT:    ; =>This Inner Loop Header: Depth=1291; GFX908-NEXT:    s_waitcnt vmcnt(0)292; GFX908-NEXT:    v_max_f32_e32 v0, v1, v1293; GFX908-NEXT:    v_min_f32_e32 v0, v0, v2294; GFX908-NEXT:    v_mov_b32_e32 v5, v1295; GFX908-NEXT:    v_mov_b32_e32 v4, v0296; GFX908-NEXT:    buffer_atomic_cmpswap v[4:5], v3, s[16:19], 0 offen offset:1024 glc297; GFX908-NEXT:    s_waitcnt vmcnt(0)298; GFX908-NEXT:    buffer_wbinvl1299; GFX908-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v1300; GFX908-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]301; GFX908-NEXT:    v_mov_b32_e32 v1, v4302; GFX908-NEXT:    s_andn2_b64 exec, exec, s[4:5]303; GFX908-NEXT:    s_cbranch_execnz .LBB1_1304; GFX908-NEXT:  ; %bb.2: ; %atomicrmw.end305; GFX908-NEXT:    s_or_b64 exec, exec, s[4:5]306; GFX908-NEXT:    s_setpc_b64 s[30:31]307;308; GFX8-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f32__offset__amdgpu_no_fine_grained_memory:309; GFX8:       ; %bb.0:310; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)311; GFX8-NEXT:    v_mov_b32_e32 v1, s20312; GFX8-NEXT:    buffer_load_dword v1, v1, s[16:19], 0 offen offset:1024313; GFX8-NEXT:    s_mov_b64 s[4:5], 0314; GFX8-NEXT:    v_mul_f32_e32 v2, 1.0, v0315; GFX8-NEXT:    v_mov_b32_e32 v3, s20316; GFX8-NEXT:  .LBB1_1: ; %atomicrmw.start317; GFX8-NEXT:    ; =>This Inner Loop Header: Depth=1318; GFX8-NEXT:    s_waitcnt vmcnt(0)319; GFX8-NEXT:    v_mul_f32_e32 v0, 1.0, v1320; GFX8-NEXT:    v_min_f32_e32 v0, v0, v2321; GFX8-NEXT:    v_mov_b32_e32 v5, v1322; GFX8-NEXT:    v_mov_b32_e32 v4, v0323; GFX8-NEXT:    buffer_atomic_cmpswap v[4:5], v3, s[16:19], 0 offen offset:1024 glc324; GFX8-NEXT:    s_waitcnt vmcnt(0)325; GFX8-NEXT:    buffer_wbinvl1326; GFX8-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v1327; GFX8-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]328; GFX8-NEXT:    v_mov_b32_e32 v1, v4329; GFX8-NEXT:    s_andn2_b64 exec, exec, s[4:5]330; GFX8-NEXT:    s_cbranch_execnz .LBB1_1331; GFX8-NEXT:  ; %bb.2: ; %atomicrmw.end332; GFX8-NEXT:    s_or_b64 exec, exec, s[4:5]333; GFX8-NEXT:    s_setpc_b64 s[30:31]334;335; GFX7-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f32__offset__amdgpu_no_fine_grained_memory:336; GFX7:       ; %bb.0:337; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)338; GFX7-NEXT:    v_mov_b32_e32 v1, s20339; GFX7-NEXT:    buffer_atomic_fmin v0, v1, s[16:19], 0 offen offset:1024340; GFX7-NEXT:    s_waitcnt vmcnt(0)341; GFX7-NEXT:    buffer_wbinvl1342; GFX7-NEXT:    s_setpc_b64 s[30:31]343;344; GFX6-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f32__offset__amdgpu_no_fine_grained_memory:345; GFX6:       ; %bb.0:346; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)347; GFX6-NEXT:    v_mov_b32_e32 v1, s20348; GFX6-NEXT:    buffer_atomic_fmin v0, v1, s[16:19], 0 offen offset:1024349; GFX6-NEXT:    s_waitcnt vmcnt(0)350; GFX6-NEXT:    buffer_wbinvl1351; GFX6-NEXT:    s_waitcnt expcnt(0)352; GFX6-NEXT:    s_setpc_b64 s[30:31]353  %gep = getelementptr float, ptr addrspace(7) %ptr, i32 256354  %unused = atomicrmw fmin ptr addrspace(7) %gep, float %val syncscope("agent") seq_cst, !amdgpu.no.fine.grained.memory !0355  ret void356}357 358define float @buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__waterfall__amdgpu_no_fine_grained_memory(ptr addrspace(7) %ptr, float %val) #0 {359; GFX12-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__waterfall__amdgpu_no_fine_grained_memory:360; GFX12:       ; %bb.0:361; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0362; GFX12-NEXT:    s_wait_expcnt 0x0363; GFX12-NEXT:    s_wait_samplecnt 0x0364; GFX12-NEXT:    s_wait_bvhcnt 0x0365; GFX12-NEXT:    s_wait_kmcnt 0x0366; GFX12-NEXT:    s_mov_b32 s1, exec_lo367; GFX12-NEXT:    s_wait_storecnt 0x0368; GFX12-NEXT:  .LBB2_1: ; =>This Inner Loop Header: Depth=1369; GFX12-NEXT:    v_readfirstlane_b32 s4, v0370; GFX12-NEXT:    v_readfirstlane_b32 s5, v1371; GFX12-NEXT:    v_readfirstlane_b32 s6, v2372; GFX12-NEXT:    v_readfirstlane_b32 s7, v3373; GFX12-NEXT:    s_wait_alu depctr_va_sdst(0)374; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)375; GFX12-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]376; GFX12-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]377; GFX12-NEXT:    s_and_b32 s0, vcc_lo, s0378; GFX12-NEXT:    s_wait_alu depctr_sa_sdst(0)379; GFX12-NEXT:    s_and_saveexec_b32 s0, s0380; GFX12-NEXT:    s_wait_loadcnt 0x0381; GFX12-NEXT:    buffer_atomic_min_num_f32 v5, v4, s[4:7], null offen offset:1024 th:TH_ATOMIC_RETURN382; GFX12-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3383; GFX12-NEXT:    ; implicit-def: $vgpr4384; GFX12-NEXT:    s_xor_b32 exec_lo, exec_lo, s0385; GFX12-NEXT:    s_cbranch_execnz .LBB2_1386; GFX12-NEXT:  ; %bb.2:387; GFX12-NEXT:    s_mov_b32 exec_lo, s1388; GFX12-NEXT:    s_wait_loadcnt 0x0389; GFX12-NEXT:    v_mov_b32_e32 v0, v5390; GFX12-NEXT:    global_inv scope:SCOPE_DEV391; GFX12-NEXT:    s_wait_loadcnt 0x0392; GFX12-NEXT:    s_setpc_b64 s[30:31]393;394; GFX942-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__waterfall__amdgpu_no_fine_grained_memory:395; GFX942:       ; %bb.0:396; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)397; GFX942-NEXT:    s_mov_b64 s[2:3], exec398; GFX942-NEXT:  .LBB2_1: ; =>This Inner Loop Header: Depth=1399; GFX942-NEXT:    v_readfirstlane_b32 s4, v0400; GFX942-NEXT:    v_readfirstlane_b32 s5, v1401; GFX942-NEXT:    v_readfirstlane_b32 s6, v2402; GFX942-NEXT:    v_readfirstlane_b32 s7, v3403; GFX942-NEXT:    v_cmp_eq_u64_e32 vcc, s[4:5], v[0:1]404; GFX942-NEXT:    s_nop 0405; GFX942-NEXT:    v_cmp_eq_u64_e64 s[0:1], s[6:7], v[2:3]406; GFX942-NEXT:    s_and_b64 s[0:1], vcc, s[0:1]407; GFX942-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]408; GFX942-NEXT:    buffer_load_dword v9, v4, s[4:7], 0 offen offset:1024409; GFX942-NEXT:    s_xor_b64 exec, exec, s[0:1]410; GFX942-NEXT:    s_cbranch_execnz .LBB2_1411; GFX942-NEXT:  ; %bb.2:412; GFX942-NEXT:    s_mov_b64 exec, s[2:3]413; GFX942-NEXT:    s_mov_b64 s[2:3], 0414; GFX942-NEXT:    v_max_f32_e32 v5, v5, v5415; GFX942-NEXT:  .LBB2_3: ; %atomicrmw.start416; GFX942-NEXT:    ; =>This Loop Header: Depth=1417; GFX942-NEXT:    ; Child Loop BB2_4 Depth 2418; GFX942-NEXT:    s_waitcnt vmcnt(0)419; GFX942-NEXT:    v_max_f32_e32 v6, v9, v9420; GFX942-NEXT:    v_min_f32_e32 v8, v6, v5421; GFX942-NEXT:    s_mov_b64 s[8:9], exec422; GFX942-NEXT:    v_mov_b64_e32 v[6:7], v[8:9]423; GFX942-NEXT:    buffer_wbl2 sc1424; GFX942-NEXT:  .LBB2_4: ; Parent Loop BB2_3 Depth=1425; GFX942-NEXT:    ; => This Inner Loop Header: Depth=2426; GFX942-NEXT:    v_readfirstlane_b32 s4, v0427; GFX942-NEXT:    v_readfirstlane_b32 s5, v1428; GFX942-NEXT:    v_readfirstlane_b32 s6, v2429; GFX942-NEXT:    v_readfirstlane_b32 s7, v3430; GFX942-NEXT:    v_cmp_eq_u64_e32 vcc, s[4:5], v[0:1]431; GFX942-NEXT:    s_nop 0432; GFX942-NEXT:    v_cmp_eq_u64_e64 s[0:1], s[6:7], v[2:3]433; GFX942-NEXT:    s_and_b64 s[0:1], vcc, s[0:1]434; GFX942-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]435; GFX942-NEXT:    s_waitcnt vmcnt(0)436; GFX942-NEXT:    buffer_atomic_cmpswap v[6:7], v4, s[4:7], 0 offen offset:1024 sc0437; GFX942-NEXT:    s_xor_b64 exec, exec, s[0:1]438; GFX942-NEXT:    s_cbranch_execnz .LBB2_4439; GFX942-NEXT:  ; %bb.5: ; in Loop: Header=BB2_3 Depth=1440; GFX942-NEXT:    s_mov_b64 exec, s[8:9]441; GFX942-NEXT:    s_waitcnt vmcnt(0)442; GFX942-NEXT:    v_cmp_eq_u32_e32 vcc, v6, v9443; GFX942-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]444; GFX942-NEXT:    v_mov_b32_e32 v9, v6445; GFX942-NEXT:    buffer_inv sc1446; GFX942-NEXT:    s_andn2_b64 exec, exec, s[2:3]447; GFX942-NEXT:    s_cbranch_execnz .LBB2_3448; GFX942-NEXT:  ; %bb.6: ; %atomicrmw.end449; GFX942-NEXT:    s_or_b64 exec, exec, s[2:3]450; GFX942-NEXT:    v_mov_b32_e32 v0, v6451; GFX942-NEXT:    s_setpc_b64 s[30:31]452;453; GFX11-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__waterfall__amdgpu_no_fine_grained_memory:454; GFX11:       ; %bb.0:455; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)456; GFX11-NEXT:    s_mov_b32 s1, exec_lo457; GFX11-NEXT:    s_waitcnt_vscnt null, 0x0458; GFX11-NEXT:  .LBB2_1: ; =>This Inner Loop Header: Depth=1459; GFX11-NEXT:    v_readfirstlane_b32 s4, v0460; GFX11-NEXT:    v_readfirstlane_b32 s5, v1461; GFX11-NEXT:    v_readfirstlane_b32 s6, v2462; GFX11-NEXT:    v_readfirstlane_b32 s7, v3463; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)464; GFX11-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]465; GFX11-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]466; GFX11-NEXT:    s_and_b32 s0, vcc_lo, s0467; GFX11-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)468; GFX11-NEXT:    s_and_saveexec_b32 s0, s0469; GFX11-NEXT:    s_waitcnt vmcnt(0)470; GFX11-NEXT:    buffer_atomic_min_f32 v5, v4, s[4:7], 0 offen offset:1024 glc471; GFX11-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3472; GFX11-NEXT:    ; implicit-def: $vgpr4473; GFX11-NEXT:    s_xor_b32 exec_lo, exec_lo, s0474; GFX11-NEXT:    s_cbranch_execnz .LBB2_1475; GFX11-NEXT:  ; %bb.2:476; GFX11-NEXT:    s_mov_b32 exec_lo, s1477; GFX11-NEXT:    s_waitcnt vmcnt(0)478; GFX11-NEXT:    v_mov_b32_e32 v0, v5479; GFX11-NEXT:    buffer_gl1_inv480; GFX11-NEXT:    buffer_gl0_inv481; GFX11-NEXT:    s_setpc_b64 s[30:31]482;483; GFX10-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__waterfall__amdgpu_no_fine_grained_memory:484; GFX10:       ; %bb.0:485; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)486; GFX10-NEXT:    s_mov_b32 s5, exec_lo487; GFX10-NEXT:    s_waitcnt_vscnt null, 0x0488; GFX10-NEXT:  .LBB2_1: ; =>This Inner Loop Header: Depth=1489; GFX10-NEXT:    v_readfirstlane_b32 s8, v0490; GFX10-NEXT:    v_readfirstlane_b32 s9, v1491; GFX10-NEXT:    v_readfirstlane_b32 s10, v2492; GFX10-NEXT:    v_readfirstlane_b32 s11, v3493; GFX10-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[8:9], v[0:1]494; GFX10-NEXT:    v_cmp_eq_u64_e64 s4, s[10:11], v[2:3]495; GFX10-NEXT:    s_and_b32 s4, vcc_lo, s4496; GFX10-NEXT:    s_and_saveexec_b32 s4, s4497; GFX10-NEXT:    s_waitcnt vmcnt(0)498; GFX10-NEXT:    buffer_atomic_fmin v5, v4, s[8:11], 0 offen offset:1024 glc499; GFX10-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3500; GFX10-NEXT:    ; implicit-def: $vgpr4501; GFX10-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)502; GFX10-NEXT:    s_xor_b32 exec_lo, exec_lo, s4503; GFX10-NEXT:    s_cbranch_execnz .LBB2_1504; GFX10-NEXT:  ; %bb.2:505; GFX10-NEXT:    s_mov_b32 exec_lo, s5506; GFX10-NEXT:    s_waitcnt vmcnt(0)507; GFX10-NEXT:    v_mov_b32_e32 v0, v5508; GFX10-NEXT:    buffer_gl1_inv509; GFX10-NEXT:    buffer_gl0_inv510; GFX10-NEXT:    s_setpc_b64 s[30:31]511;512; GFX90A-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__waterfall__amdgpu_no_fine_grained_memory:513; GFX90A:       ; %bb.0:514; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)515; GFX90A-NEXT:    s_mov_b64 s[6:7], exec516; GFX90A-NEXT:  .LBB2_1: ; =>This Inner Loop Header: Depth=1517; GFX90A-NEXT:    v_readfirstlane_b32 s8, v0518; GFX90A-NEXT:    v_readfirstlane_b32 s9, v1519; GFX90A-NEXT:    v_readfirstlane_b32 s10, v2520; GFX90A-NEXT:    v_readfirstlane_b32 s11, v3521; GFX90A-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]522; GFX90A-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]523; GFX90A-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]524; GFX90A-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]525; GFX90A-NEXT:    s_nop 0526; GFX90A-NEXT:    buffer_load_dword v9, v4, s[8:11], 0 offen offset:1024527; GFX90A-NEXT:    s_xor_b64 exec, exec, s[4:5]528; GFX90A-NEXT:    s_cbranch_execnz .LBB2_1529; GFX90A-NEXT:  ; %bb.2:530; GFX90A-NEXT:    s_mov_b64 exec, s[6:7]531; GFX90A-NEXT:    s_mov_b64 s[6:7], 0532; GFX90A-NEXT:    v_max_f32_e32 v5, v5, v5533; GFX90A-NEXT:  .LBB2_3: ; %atomicrmw.start534; GFX90A-NEXT:    ; =>This Loop Header: Depth=1535; GFX90A-NEXT:    ; Child Loop BB2_4 Depth 2536; GFX90A-NEXT:    s_waitcnt vmcnt(0)537; GFX90A-NEXT:    v_max_f32_e32 v6, v9, v9538; GFX90A-NEXT:    v_min_f32_e32 v8, v6, v5539; GFX90A-NEXT:    s_mov_b64 s[12:13], exec540; GFX90A-NEXT:    v_pk_mov_b32 v[6:7], v[8:9], v[8:9] op_sel:[0,1]541; GFX90A-NEXT:  .LBB2_4: ; Parent Loop BB2_3 Depth=1542; GFX90A-NEXT:    ; => This Inner Loop Header: Depth=2543; GFX90A-NEXT:    v_readfirstlane_b32 s8, v0544; GFX90A-NEXT:    v_readfirstlane_b32 s9, v1545; GFX90A-NEXT:    v_readfirstlane_b32 s10, v2546; GFX90A-NEXT:    v_readfirstlane_b32 s11, v3547; GFX90A-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]548; GFX90A-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]549; GFX90A-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]550; GFX90A-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]551; GFX90A-NEXT:    s_waitcnt vmcnt(0)552; GFX90A-NEXT:    buffer_atomic_cmpswap v[6:7], v4, s[8:11], 0 offen offset:1024 glc553; GFX90A-NEXT:    s_xor_b64 exec, exec, s[4:5]554; GFX90A-NEXT:    s_cbranch_execnz .LBB2_4555; GFX90A-NEXT:  ; %bb.5: ; in Loop: Header=BB2_3 Depth=1556; GFX90A-NEXT:    s_mov_b64 exec, s[12:13]557; GFX90A-NEXT:    s_waitcnt vmcnt(0)558; GFX90A-NEXT:    v_cmp_eq_u32_e32 vcc, v6, v9559; GFX90A-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]560; GFX90A-NEXT:    v_mov_b32_e32 v9, v6561; GFX90A-NEXT:    buffer_wbinvl1562; GFX90A-NEXT:    s_andn2_b64 exec, exec, s[6:7]563; GFX90A-NEXT:    s_cbranch_execnz .LBB2_3564; GFX90A-NEXT:  ; %bb.6: ; %atomicrmw.end565; GFX90A-NEXT:    s_or_b64 exec, exec, s[6:7]566; GFX90A-NEXT:    v_mov_b32_e32 v0, v6567; GFX90A-NEXT:    s_setpc_b64 s[30:31]568;569; GFX908-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__waterfall__amdgpu_no_fine_grained_memory:570; GFX908:       ; %bb.0:571; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)572; GFX908-NEXT:    s_mov_b64 s[6:7], exec573; GFX908-NEXT:  .LBB2_1: ; =>This Inner Loop Header: Depth=1574; GFX908-NEXT:    v_readfirstlane_b32 s8, v0575; GFX908-NEXT:    v_readfirstlane_b32 s9, v1576; GFX908-NEXT:    v_readfirstlane_b32 s10, v2577; GFX908-NEXT:    v_readfirstlane_b32 s11, v3578; GFX908-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]579; GFX908-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]580; GFX908-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]581; GFX908-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]582; GFX908-NEXT:    s_nop 0583; GFX908-NEXT:    buffer_load_dword v7, v4, s[8:11], 0 offen offset:1024584; GFX908-NEXT:    s_xor_b64 exec, exec, s[4:5]585; GFX908-NEXT:    s_cbranch_execnz .LBB2_1586; GFX908-NEXT:  ; %bb.2:587; GFX908-NEXT:    s_mov_b64 exec, s[6:7]588; GFX908-NEXT:    s_mov_b64 s[6:7], 0589; GFX908-NEXT:    v_max_f32_e32 v8, v5, v5590; GFX908-NEXT:  .LBB2_3: ; %atomicrmw.start591; GFX908-NEXT:    ; =>This Loop Header: Depth=1592; GFX908-NEXT:    ; Child Loop BB2_4 Depth 2593; GFX908-NEXT:    s_waitcnt vmcnt(0)594; GFX908-NEXT:    v_max_f32_e32 v5, v7, v7595; GFX908-NEXT:    v_min_f32_e32 v6, v5, v8596; GFX908-NEXT:    v_mov_b32_e32 v5, v6597; GFX908-NEXT:    s_mov_b64 s[12:13], exec598; GFX908-NEXT:    v_mov_b32_e32 v6, v7599; GFX908-NEXT:  .LBB2_4: ; Parent Loop BB2_3 Depth=1600; GFX908-NEXT:    ; => This Inner Loop Header: Depth=2601; GFX908-NEXT:    v_readfirstlane_b32 s8, v0602; GFX908-NEXT:    v_readfirstlane_b32 s9, v1603; GFX908-NEXT:    v_readfirstlane_b32 s10, v2604; GFX908-NEXT:    v_readfirstlane_b32 s11, v3605; GFX908-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]606; GFX908-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]607; GFX908-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]608; GFX908-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]609; GFX908-NEXT:    s_waitcnt vmcnt(0)610; GFX908-NEXT:    buffer_atomic_cmpswap v[5:6], v4, s[8:11], 0 offen offset:1024 glc611; GFX908-NEXT:    s_xor_b64 exec, exec, s[4:5]612; GFX908-NEXT:    s_cbranch_execnz .LBB2_4613; GFX908-NEXT:  ; %bb.5: ; in Loop: Header=BB2_3 Depth=1614; GFX908-NEXT:    s_mov_b64 exec, s[12:13]615; GFX908-NEXT:    s_waitcnt vmcnt(0)616; GFX908-NEXT:    v_cmp_eq_u32_e32 vcc, v5, v7617; GFX908-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]618; GFX908-NEXT:    v_mov_b32_e32 v7, v5619; GFX908-NEXT:    buffer_wbinvl1620; GFX908-NEXT:    s_andn2_b64 exec, exec, s[6:7]621; GFX908-NEXT:    s_cbranch_execnz .LBB2_3622; GFX908-NEXT:  ; %bb.6: ; %atomicrmw.end623; GFX908-NEXT:    s_or_b64 exec, exec, s[6:7]624; GFX908-NEXT:    v_mov_b32_e32 v0, v5625; GFX908-NEXT:    s_setpc_b64 s[30:31]626;627; GFX8-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__waterfall__amdgpu_no_fine_grained_memory:628; GFX8:       ; %bb.0:629; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)630; GFX8-NEXT:    s_mov_b64 s[6:7], exec631; GFX8-NEXT:  .LBB2_1: ; =>This Inner Loop Header: Depth=1632; GFX8-NEXT:    v_readfirstlane_b32 s8, v0633; GFX8-NEXT:    v_readfirstlane_b32 s9, v1634; GFX8-NEXT:    v_readfirstlane_b32 s10, v2635; GFX8-NEXT:    v_readfirstlane_b32 s11, v3636; GFX8-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]637; GFX8-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]638; GFX8-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]639; GFX8-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]640; GFX8-NEXT:    s_nop 0641; GFX8-NEXT:    buffer_load_dword v7, v4, s[8:11], 0 offen offset:1024642; GFX8-NEXT:    s_xor_b64 exec, exec, s[4:5]643; GFX8-NEXT:    s_cbranch_execnz .LBB2_1644; GFX8-NEXT:  ; %bb.2:645; GFX8-NEXT:    s_mov_b64 exec, s[6:7]646; GFX8-NEXT:    s_mov_b64 s[6:7], 0647; GFX8-NEXT:    v_mul_f32_e32 v8, 1.0, v5648; GFX8-NEXT:  .LBB2_3: ; %atomicrmw.start649; GFX8-NEXT:    ; =>This Loop Header: Depth=1650; GFX8-NEXT:    ; Child Loop BB2_4 Depth 2651; GFX8-NEXT:    s_waitcnt vmcnt(0)652; GFX8-NEXT:    v_mul_f32_e32 v5, 1.0, v7653; GFX8-NEXT:    v_min_f32_e32 v6, v5, v8654; GFX8-NEXT:    v_mov_b32_e32 v5, v6655; GFX8-NEXT:    s_mov_b64 s[12:13], exec656; GFX8-NEXT:    v_mov_b32_e32 v6, v7657; GFX8-NEXT:  .LBB2_4: ; Parent Loop BB2_3 Depth=1658; GFX8-NEXT:    ; => This Inner Loop Header: Depth=2659; GFX8-NEXT:    v_readfirstlane_b32 s8, v0660; GFX8-NEXT:    v_readfirstlane_b32 s9, v1661; GFX8-NEXT:    v_readfirstlane_b32 s10, v2662; GFX8-NEXT:    v_readfirstlane_b32 s11, v3663; GFX8-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]664; GFX8-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]665; GFX8-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]666; GFX8-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]667; GFX8-NEXT:    s_waitcnt vmcnt(0)668; GFX8-NEXT:    buffer_atomic_cmpswap v[5:6], v4, s[8:11], 0 offen offset:1024 glc669; GFX8-NEXT:    s_xor_b64 exec, exec, s[4:5]670; GFX8-NEXT:    s_cbranch_execnz .LBB2_4671; GFX8-NEXT:  ; %bb.5: ; in Loop: Header=BB2_3 Depth=1672; GFX8-NEXT:    s_mov_b64 exec, s[12:13]673; GFX8-NEXT:    s_waitcnt vmcnt(0)674; GFX8-NEXT:    v_cmp_eq_u32_e32 vcc, v5, v7675; GFX8-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]676; GFX8-NEXT:    v_mov_b32_e32 v7, v5677; GFX8-NEXT:    buffer_wbinvl1678; GFX8-NEXT:    s_andn2_b64 exec, exec, s[6:7]679; GFX8-NEXT:    s_cbranch_execnz .LBB2_3680; GFX8-NEXT:  ; %bb.6: ; %atomicrmw.end681; GFX8-NEXT:    s_or_b64 exec, exec, s[6:7]682; GFX8-NEXT:    v_mov_b32_e32 v0, v5683; GFX8-NEXT:    s_setpc_b64 s[30:31]684;685; GFX7-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__waterfall__amdgpu_no_fine_grained_memory:686; GFX7:       ; %bb.0:687; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)688; GFX7-NEXT:    s_mov_b64 s[6:7], exec689; GFX7-NEXT:  .LBB2_1: ; =>This Inner Loop Header: Depth=1690; GFX7-NEXT:    v_readfirstlane_b32 s8, v0691; GFX7-NEXT:    v_readfirstlane_b32 s9, v1692; GFX7-NEXT:    v_readfirstlane_b32 s10, v2693; GFX7-NEXT:    v_readfirstlane_b32 s11, v3694; GFX7-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]695; GFX7-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]696; GFX7-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]697; GFX7-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]698; GFX7-NEXT:    s_waitcnt vmcnt(0)699; GFX7-NEXT:    buffer_atomic_fmin v5, v4, s[8:11], 0 offen offset:1024 glc700; GFX7-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3701; GFX7-NEXT:    ; implicit-def: $vgpr4702; GFX7-NEXT:    s_xor_b64 exec, exec, s[4:5]703; GFX7-NEXT:    s_cbranch_execnz .LBB2_1704; GFX7-NEXT:  ; %bb.2:705; GFX7-NEXT:    s_mov_b64 exec, s[6:7]706; GFX7-NEXT:    s_waitcnt vmcnt(0)707; GFX7-NEXT:    v_mov_b32_e32 v0, v5708; GFX7-NEXT:    buffer_wbinvl1709; GFX7-NEXT:    s_setpc_b64 s[30:31]710;711; GFX6-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__waterfall__amdgpu_no_fine_grained_memory:712; GFX6:       ; %bb.0:713; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)714; GFX6-NEXT:    s_mov_b64 s[6:7], exec715; GFX6-NEXT:  .LBB2_1: ; =>This Inner Loop Header: Depth=1716; GFX6-NEXT:    v_readfirstlane_b32 s8, v0717; GFX6-NEXT:    v_readfirstlane_b32 s9, v1718; GFX6-NEXT:    v_readfirstlane_b32 s10, v2719; GFX6-NEXT:    v_readfirstlane_b32 s11, v3720; GFX6-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]721; GFX6-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]722; GFX6-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]723; GFX6-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]724; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0)725; GFX6-NEXT:    buffer_atomic_fmin v5, v4, s[8:11], 0 offen offset:1024 glc726; GFX6-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3727; GFX6-NEXT:    ; implicit-def: $vgpr4728; GFX6-NEXT:    s_xor_b64 exec, exec, s[4:5]729; GFX6-NEXT:    s_cbranch_execnz .LBB2_1730; GFX6-NEXT:  ; %bb.2:731; GFX6-NEXT:    s_mov_b64 exec, s[6:7]732; GFX6-NEXT:    s_waitcnt vmcnt(0)733; GFX6-NEXT:    v_mov_b32_e32 v0, v5734; GFX6-NEXT:    buffer_wbinvl1735; GFX6-NEXT:    s_waitcnt expcnt(0)736; GFX6-NEXT:    s_setpc_b64 s[30:31]737  %gep = getelementptr float, ptr addrspace(7) %ptr, i32 256738  %result = atomicrmw fmin ptr addrspace(7) %gep, float %val syncscope("agent") seq_cst, !amdgpu.no.fine.grained.memory !0739  ret float %result740}741 742define float @buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_remote_memory(ptr addrspace(7) inreg %ptr, float %val) #0 {743; GFX12-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_remote_memory:744; GFX12:       ; %bb.0:745; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0746; GFX12-NEXT:    s_wait_expcnt 0x0747; GFX12-NEXT:    s_wait_samplecnt 0x0748; GFX12-NEXT:    s_wait_bvhcnt 0x0749; GFX12-NEXT:    s_wait_kmcnt 0x0750; GFX12-NEXT:    v_mov_b32_e32 v1, s16751; GFX12-NEXT:    s_wait_storecnt 0x0752; GFX12-NEXT:    buffer_atomic_min_num_f32 v0, v1, s[0:3], null offen offset:1024 th:TH_ATOMIC_RETURN753; GFX12-NEXT:    s_wait_loadcnt 0x0754; GFX12-NEXT:    global_inv scope:SCOPE_DEV755; GFX12-NEXT:    s_wait_loadcnt 0x0756; GFX12-NEXT:    s_setpc_b64 s[30:31]757;758; GFX942-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_remote_memory:759; GFX942:       ; %bb.0:760; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)761; GFX942-NEXT:    v_mov_b32_e32 v1, v0762; GFX942-NEXT:    v_mov_b32_e32 v0, s16763; GFX942-NEXT:    buffer_load_dword v0, v0, s[0:3], 0 offen offset:1024764; GFX942-NEXT:    s_mov_b64 s[4:5], 0765; GFX942-NEXT:    v_max_f32_e32 v2, v1, v1766; GFX942-NEXT:    v_mov_b32_e32 v3, s16767; GFX942-NEXT:  .LBB3_1: ; %atomicrmw.start768; GFX942-NEXT:    ; =>This Inner Loop Header: Depth=1769; GFX942-NEXT:    s_waitcnt vmcnt(0)770; GFX942-NEXT:    v_mov_b32_e32 v5, v0771; GFX942-NEXT:    v_max_f32_e32 v0, v5, v5772; GFX942-NEXT:    v_min_f32_e32 v4, v0, v2773; GFX942-NEXT:    v_mov_b64_e32 v[0:1], v[4:5]774; GFX942-NEXT:    buffer_wbl2 sc1775; GFX942-NEXT:    buffer_atomic_cmpswap v[0:1], v3, s[0:3], 0 offen offset:1024 sc0776; GFX942-NEXT:    s_waitcnt vmcnt(0)777; GFX942-NEXT:    buffer_inv sc1778; GFX942-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v5779; GFX942-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]780; GFX942-NEXT:    s_andn2_b64 exec, exec, s[4:5]781; GFX942-NEXT:    s_cbranch_execnz .LBB3_1782; GFX942-NEXT:  ; %bb.2: ; %atomicrmw.end783; GFX942-NEXT:    s_or_b64 exec, exec, s[4:5]784; GFX942-NEXT:    s_setpc_b64 s[30:31]785;786; GFX11-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_remote_memory:787; GFX11:       ; %bb.0:788; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)789; GFX11-NEXT:    v_dual_mov_b32 v1, v0 :: v_dual_mov_b32 v0, s16790; GFX11-NEXT:    s_mov_b32 s4, 0791; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1)792; GFX11-NEXT:    v_dual_mov_b32 v3, s16 :: v_dual_max_f32 v2, v1, v1793; GFX11-NEXT:    buffer_load_b32 v0, v0, s[0:3], 0 offen offset:1024794; GFX11-NEXT:  .LBB3_1: ; %atomicrmw.start795; GFX11-NEXT:    ; =>This Inner Loop Header: Depth=1796; GFX11-NEXT:    s_waitcnt vmcnt(0)797; GFX11-NEXT:    v_mov_b32_e32 v5, v0798; GFX11-NEXT:    s_waitcnt_vscnt null, 0x0799; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)800; GFX11-NEXT:    v_max_f32_e32 v0, v5, v5801; GFX11-NEXT:    v_min_f32_e32 v4, v0, v2802; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1)803; GFX11-NEXT:    v_dual_mov_b32 v0, v4 :: v_dual_mov_b32 v1, v5804; GFX11-NEXT:    buffer_atomic_cmpswap_b32 v[0:1], v3, s[0:3], 0 offen offset:1024 glc805; GFX11-NEXT:    s_waitcnt vmcnt(0)806; GFX11-NEXT:    buffer_gl1_inv807; GFX11-NEXT:    buffer_gl0_inv808; GFX11-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v0, v5809; GFX11-NEXT:    s_or_b32 s4, vcc_lo, s4810; GFX11-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)811; GFX11-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s4812; GFX11-NEXT:    s_cbranch_execnz .LBB3_1813; GFX11-NEXT:  ; %bb.2: ; %atomicrmw.end814; GFX11-NEXT:    s_or_b32 exec_lo, exec_lo, s4815; GFX11-NEXT:    s_setpc_b64 s[30:31]816;817; GFX10-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_remote_memory:818; GFX10:       ; %bb.0:819; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)820; GFX10-NEXT:    v_mov_b32_e32 v1, v0821; GFX10-NEXT:    v_mov_b32_e32 v0, s20822; GFX10-NEXT:    v_mov_b32_e32 v3, s20823; GFX10-NEXT:    s_mov_b32 s4, 0824; GFX10-NEXT:    v_max_f32_e32 v2, v1, v1825; GFX10-NEXT:    buffer_load_dword v0, v0, s[16:19], 0 offen offset:1024826; GFX10-NEXT:  .LBB3_1: ; %atomicrmw.start827; GFX10-NEXT:    ; =>This Inner Loop Header: Depth=1828; GFX10-NEXT:    s_waitcnt vmcnt(0)829; GFX10-NEXT:    v_mov_b32_e32 v5, v0830; GFX10-NEXT:    s_waitcnt_vscnt null, 0x0831; GFX10-NEXT:    v_max_f32_e32 v0, v5, v5832; GFX10-NEXT:    v_min_f32_e32 v4, v0, v2833; GFX10-NEXT:    v_mov_b32_e32 v0, v4834; GFX10-NEXT:    v_mov_b32_e32 v1, v5835; GFX10-NEXT:    buffer_atomic_cmpswap v[0:1], v3, s[16:19], 0 offen offset:1024 glc836; GFX10-NEXT:    s_waitcnt vmcnt(0)837; GFX10-NEXT:    buffer_gl1_inv838; GFX10-NEXT:    buffer_gl0_inv839; GFX10-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v0, v5840; GFX10-NEXT:    s_or_b32 s4, vcc_lo, s4841; GFX10-NEXT:    s_andn2_b32 exec_lo, exec_lo, s4842; GFX10-NEXT:    s_cbranch_execnz .LBB3_1843; GFX10-NEXT:  ; %bb.2: ; %atomicrmw.end844; GFX10-NEXT:    s_or_b32 exec_lo, exec_lo, s4845; GFX10-NEXT:    s_setpc_b64 s[30:31]846;847; GFX90A-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_remote_memory:848; GFX90A:       ; %bb.0:849; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)850; GFX90A-NEXT:    v_mov_b32_e32 v1, v0851; GFX90A-NEXT:    v_mov_b32_e32 v0, s20852; GFX90A-NEXT:    buffer_load_dword v0, v0, s[16:19], 0 offen offset:1024853; GFX90A-NEXT:    s_mov_b64 s[4:5], 0854; GFX90A-NEXT:    v_max_f32_e32 v2, v1, v1855; GFX90A-NEXT:    v_mov_b32_e32 v3, s20856; GFX90A-NEXT:  .LBB3_1: ; %atomicrmw.start857; GFX90A-NEXT:    ; =>This Inner Loop Header: Depth=1858; GFX90A-NEXT:    s_waitcnt vmcnt(0)859; GFX90A-NEXT:    v_mov_b32_e32 v5, v0860; GFX90A-NEXT:    v_max_f32_e32 v0, v5, v5861; GFX90A-NEXT:    v_min_f32_e32 v4, v0, v2862; GFX90A-NEXT:    v_pk_mov_b32 v[0:1], v[4:5], v[4:5] op_sel:[0,1]863; GFX90A-NEXT:    buffer_atomic_cmpswap v[0:1], v3, s[16:19], 0 offen offset:1024 glc864; GFX90A-NEXT:    s_waitcnt vmcnt(0)865; GFX90A-NEXT:    buffer_wbinvl1866; GFX90A-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v5867; GFX90A-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]868; GFX90A-NEXT:    s_andn2_b64 exec, exec, s[4:5]869; GFX90A-NEXT:    s_cbranch_execnz .LBB3_1870; GFX90A-NEXT:  ; %bb.2: ; %atomicrmw.end871; GFX90A-NEXT:    s_or_b64 exec, exec, s[4:5]872; GFX90A-NEXT:    s_setpc_b64 s[30:31]873;874; GFX908-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_remote_memory:875; GFX908:       ; %bb.0:876; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)877; GFX908-NEXT:    v_mov_b32_e32 v1, v0878; GFX908-NEXT:    v_mov_b32_e32 v0, s20879; GFX908-NEXT:    buffer_load_dword v0, v0, s[16:19], 0 offen offset:1024880; GFX908-NEXT:    s_mov_b64 s[4:5], 0881; GFX908-NEXT:    v_max_f32_e32 v2, v1, v1882; GFX908-NEXT:    v_mov_b32_e32 v3, s20883; GFX908-NEXT:  .LBB3_1: ; %atomicrmw.start884; GFX908-NEXT:    ; =>This Inner Loop Header: Depth=1885; GFX908-NEXT:    s_waitcnt vmcnt(0)886; GFX908-NEXT:    v_mov_b32_e32 v5, v0887; GFX908-NEXT:    v_max_f32_e32 v0, v5, v5888; GFX908-NEXT:    v_min_f32_e32 v4, v0, v2889; GFX908-NEXT:    v_mov_b32_e32 v0, v4890; GFX908-NEXT:    v_mov_b32_e32 v1, v5891; GFX908-NEXT:    buffer_atomic_cmpswap v[0:1], v3, s[16:19], 0 offen offset:1024 glc892; GFX908-NEXT:    s_waitcnt vmcnt(0)893; GFX908-NEXT:    buffer_wbinvl1894; GFX908-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v5895; GFX908-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]896; GFX908-NEXT:    s_andn2_b64 exec, exec, s[4:5]897; GFX908-NEXT:    s_cbranch_execnz .LBB3_1898; GFX908-NEXT:  ; %bb.2: ; %atomicrmw.end899; GFX908-NEXT:    s_or_b64 exec, exec, s[4:5]900; GFX908-NEXT:    s_setpc_b64 s[30:31]901;902; GFX8-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_remote_memory:903; GFX8:       ; %bb.0:904; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)905; GFX8-NEXT:    v_mov_b32_e32 v1, v0906; GFX8-NEXT:    v_mov_b32_e32 v0, s20907; GFX8-NEXT:    buffer_load_dword v0, v0, s[16:19], 0 offen offset:1024908; GFX8-NEXT:    s_mov_b64 s[4:5], 0909; GFX8-NEXT:    v_mul_f32_e32 v2, 1.0, v1910; GFX8-NEXT:    v_mov_b32_e32 v3, s20911; GFX8-NEXT:  .LBB3_1: ; %atomicrmw.start912; GFX8-NEXT:    ; =>This Inner Loop Header: Depth=1913; GFX8-NEXT:    s_waitcnt vmcnt(0)914; GFX8-NEXT:    v_mov_b32_e32 v5, v0915; GFX8-NEXT:    v_mul_f32_e32 v0, 1.0, v5916; GFX8-NEXT:    v_min_f32_e32 v4, v0, v2917; GFX8-NEXT:    v_mov_b32_e32 v0, v4918; GFX8-NEXT:    v_mov_b32_e32 v1, v5919; GFX8-NEXT:    buffer_atomic_cmpswap v[0:1], v3, s[16:19], 0 offen offset:1024 glc920; GFX8-NEXT:    s_waitcnt vmcnt(0)921; GFX8-NEXT:    buffer_wbinvl1922; GFX8-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v5923; GFX8-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]924; GFX8-NEXT:    s_andn2_b64 exec, exec, s[4:5]925; GFX8-NEXT:    s_cbranch_execnz .LBB3_1926; GFX8-NEXT:  ; %bb.2: ; %atomicrmw.end927; GFX8-NEXT:    s_or_b64 exec, exec, s[4:5]928; GFX8-NEXT:    s_setpc_b64 s[30:31]929;930; GFX7-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_remote_memory:931; GFX7:       ; %bb.0:932; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)933; GFX7-NEXT:    v_mov_b32_e32 v1, v0934; GFX7-NEXT:    v_mov_b32_e32 v0, s20935; GFX7-NEXT:    buffer_load_dword v0, v0, s[16:19], 0 offen offset:1024936; GFX7-NEXT:    s_mov_b64 s[4:5], 0937; GFX7-NEXT:    v_mul_f32_e32 v2, 1.0, v1938; GFX7-NEXT:    v_mov_b32_e32 v3, s20939; GFX7-NEXT:  .LBB3_1: ; %atomicrmw.start940; GFX7-NEXT:    ; =>This Inner Loop Header: Depth=1941; GFX7-NEXT:    s_waitcnt vmcnt(0)942; GFX7-NEXT:    v_mov_b32_e32 v5, v0943; GFX7-NEXT:    v_mul_f32_e32 v0, 1.0, v5944; GFX7-NEXT:    v_min_f32_e32 v4, v0, v2945; GFX7-NEXT:    v_mov_b32_e32 v0, v4946; GFX7-NEXT:    v_mov_b32_e32 v1, v5947; GFX7-NEXT:    buffer_atomic_cmpswap v[0:1], v3, s[16:19], 0 offen offset:1024 glc948; GFX7-NEXT:    s_waitcnt vmcnt(0)949; GFX7-NEXT:    buffer_wbinvl1950; GFX7-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v5951; GFX7-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]952; GFX7-NEXT:    s_andn2_b64 exec, exec, s[4:5]953; GFX7-NEXT:    s_cbranch_execnz .LBB3_1954; GFX7-NEXT:  ; %bb.2: ; %atomicrmw.end955; GFX7-NEXT:    s_or_b64 exec, exec, s[4:5]956; GFX7-NEXT:    s_setpc_b64 s[30:31]957;958; GFX6-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_remote_memory:959; GFX6:       ; %bb.0:960; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)961; GFX6-NEXT:    v_mov_b32_e32 v1, v0962; GFX6-NEXT:    v_mov_b32_e32 v0, s20963; GFX6-NEXT:    buffer_load_dword v0, v0, s[16:19], 0 offen offset:1024964; GFX6-NEXT:    s_add_i32 s6, s20, 0x400965; GFX6-NEXT:    s_mov_b64 s[4:5], 0966; GFX6-NEXT:    v_mul_f32_e32 v2, 1.0, v1967; GFX6-NEXT:    v_mov_b32_e32 v3, s6968; GFX6-NEXT:  .LBB3_1: ; %atomicrmw.start969; GFX6-NEXT:    ; =>This Inner Loop Header: Depth=1970; GFX6-NEXT:    s_waitcnt vmcnt(0)971; GFX6-NEXT:    v_mov_b32_e32 v5, v0972; GFX6-NEXT:    s_waitcnt expcnt(0)973; GFX6-NEXT:    v_mul_f32_e32 v0, 1.0, v5974; GFX6-NEXT:    v_min_f32_e32 v4, v0, v2975; GFX6-NEXT:    v_mov_b32_e32 v0, v4976; GFX6-NEXT:    v_mov_b32_e32 v1, v5977; GFX6-NEXT:    buffer_atomic_cmpswap v[0:1], v3, s[16:19], 0 offen glc978; GFX6-NEXT:    s_waitcnt vmcnt(0)979; GFX6-NEXT:    buffer_wbinvl1980; GFX6-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v5981; GFX6-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]982; GFX6-NEXT:    s_andn2_b64 exec, exec, s[4:5]983; GFX6-NEXT:    s_cbranch_execnz .LBB3_1984; GFX6-NEXT:  ; %bb.2: ; %atomicrmw.end985; GFX6-NEXT:    s_or_b64 exec, exec, s[4:5]986; GFX6-NEXT:    s_waitcnt expcnt(0)987; GFX6-NEXT:    s_setpc_b64 s[30:31]988  %gep = getelementptr float, ptr addrspace(7) %ptr, i32 256989  %result = atomicrmw fmin ptr addrspace(7) %gep, float %val syncscope("agent") seq_cst, !amdgpu.no.remote.memory !0990  ret float %result991}992 993define float @buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory(ptr addrspace(7) inreg %ptr, float %val) #0 {994; GFX12-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:995; GFX12:       ; %bb.0:996; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x0997; GFX12-NEXT:    s_wait_expcnt 0x0998; GFX12-NEXT:    s_wait_samplecnt 0x0999; GFX12-NEXT:    s_wait_bvhcnt 0x01000; GFX12-NEXT:    s_wait_kmcnt 0x01001; GFX12-NEXT:    v_mov_b32_e32 v1, s161002; GFX12-NEXT:    s_wait_storecnt 0x01003; GFX12-NEXT:    buffer_atomic_min_num_f32 v0, v1, s[0:3], null offen offset:1024 th:TH_ATOMIC_RETURN1004; GFX12-NEXT:    s_wait_loadcnt 0x01005; GFX12-NEXT:    global_inv scope:SCOPE_DEV1006; GFX12-NEXT:    s_wait_loadcnt 0x01007; GFX12-NEXT:    s_setpc_b64 s[30:31]1008;1009; GFX942-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:1010; GFX942:       ; %bb.0:1011; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1012; GFX942-NEXT:    v_mov_b32_e32 v1, v01013; GFX942-NEXT:    v_mov_b32_e32 v0, s161014; GFX942-NEXT:    buffer_load_dword v0, v0, s[0:3], 0 offen offset:10241015; GFX942-NEXT:    s_mov_b64 s[4:5], 01016; GFX942-NEXT:    v_max_f32_e32 v2, v1, v11017; GFX942-NEXT:    v_mov_b32_e32 v3, s161018; GFX942-NEXT:  .LBB4_1: ; %atomicrmw.start1019; GFX942-NEXT:    ; =>This Inner Loop Header: Depth=11020; GFX942-NEXT:    s_waitcnt vmcnt(0)1021; GFX942-NEXT:    v_mov_b32_e32 v5, v01022; GFX942-NEXT:    v_max_f32_e32 v0, v5, v51023; GFX942-NEXT:    v_min_f32_e32 v4, v0, v21024; GFX942-NEXT:    v_mov_b64_e32 v[0:1], v[4:5]1025; GFX942-NEXT:    buffer_wbl2 sc11026; GFX942-NEXT:    buffer_atomic_cmpswap v[0:1], v3, s[0:3], 0 offen offset:1024 sc01027; GFX942-NEXT:    s_waitcnt vmcnt(0)1028; GFX942-NEXT:    buffer_inv sc11029; GFX942-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v51030; GFX942-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]1031; GFX942-NEXT:    s_andn2_b64 exec, exec, s[4:5]1032; GFX942-NEXT:    s_cbranch_execnz .LBB4_11033; GFX942-NEXT:  ; %bb.2: ; %atomicrmw.end1034; GFX942-NEXT:    s_or_b64 exec, exec, s[4:5]1035; GFX942-NEXT:    s_setpc_b64 s[30:31]1036;1037; GFX11-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:1038; GFX11:       ; %bb.0:1039; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1040; GFX11-NEXT:    v_mov_b32_e32 v1, s161041; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01042; GFX11-NEXT:    buffer_atomic_min_f32 v0, v1, s[0:3], 0 offen offset:1024 glc1043; GFX11-NEXT:    s_waitcnt vmcnt(0)1044; GFX11-NEXT:    buffer_gl1_inv1045; GFX11-NEXT:    buffer_gl0_inv1046; GFX11-NEXT:    s_setpc_b64 s[30:31]1047;1048; GFX10-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:1049; GFX10:       ; %bb.0:1050; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1051; GFX10-NEXT:    v_mov_b32_e32 v1, s201052; GFX10-NEXT:    s_waitcnt_vscnt null, 0x01053; GFX10-NEXT:    buffer_atomic_fmin v0, v1, s[16:19], 0 offen offset:1024 glc1054; GFX10-NEXT:    s_waitcnt vmcnt(0)1055; GFX10-NEXT:    buffer_gl1_inv1056; GFX10-NEXT:    buffer_gl0_inv1057; GFX10-NEXT:    s_setpc_b64 s[30:31]1058;1059; GFX90A-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:1060; GFX90A:       ; %bb.0:1061; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1062; GFX90A-NEXT:    v_mov_b32_e32 v1, v01063; GFX90A-NEXT:    v_mov_b32_e32 v0, s201064; GFX90A-NEXT:    buffer_load_dword v0, v0, s[16:19], 0 offen offset:10241065; GFX90A-NEXT:    s_mov_b64 s[4:5], 01066; GFX90A-NEXT:    v_max_f32_e32 v2, v1, v11067; GFX90A-NEXT:    v_mov_b32_e32 v3, s201068; GFX90A-NEXT:  .LBB4_1: ; %atomicrmw.start1069; GFX90A-NEXT:    ; =>This Inner Loop Header: Depth=11070; GFX90A-NEXT:    s_waitcnt vmcnt(0)1071; GFX90A-NEXT:    v_mov_b32_e32 v5, v01072; GFX90A-NEXT:    v_max_f32_e32 v0, v5, v51073; GFX90A-NEXT:    v_min_f32_e32 v4, v0, v21074; GFX90A-NEXT:    v_pk_mov_b32 v[0:1], v[4:5], v[4:5] op_sel:[0,1]1075; GFX90A-NEXT:    buffer_atomic_cmpswap v[0:1], v3, s[16:19], 0 offen offset:1024 glc1076; GFX90A-NEXT:    s_waitcnt vmcnt(0)1077; GFX90A-NEXT:    buffer_wbinvl11078; GFX90A-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v51079; GFX90A-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]1080; GFX90A-NEXT:    s_andn2_b64 exec, exec, s[4:5]1081; GFX90A-NEXT:    s_cbranch_execnz .LBB4_11082; GFX90A-NEXT:  ; %bb.2: ; %atomicrmw.end1083; GFX90A-NEXT:    s_or_b64 exec, exec, s[4:5]1084; GFX90A-NEXT:    s_setpc_b64 s[30:31]1085;1086; GFX908-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:1087; GFX908:       ; %bb.0:1088; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1089; GFX908-NEXT:    v_mov_b32_e32 v1, v01090; GFX908-NEXT:    v_mov_b32_e32 v0, s201091; GFX908-NEXT:    buffer_load_dword v0, v0, s[16:19], 0 offen offset:10241092; GFX908-NEXT:    s_mov_b64 s[4:5], 01093; GFX908-NEXT:    v_max_f32_e32 v2, v1, v11094; GFX908-NEXT:    v_mov_b32_e32 v3, s201095; GFX908-NEXT:  .LBB4_1: ; %atomicrmw.start1096; GFX908-NEXT:    ; =>This Inner Loop Header: Depth=11097; GFX908-NEXT:    s_waitcnt vmcnt(0)1098; GFX908-NEXT:    v_mov_b32_e32 v5, v01099; GFX908-NEXT:    v_max_f32_e32 v0, v5, v51100; GFX908-NEXT:    v_min_f32_e32 v4, v0, v21101; GFX908-NEXT:    v_mov_b32_e32 v0, v41102; GFX908-NEXT:    v_mov_b32_e32 v1, v51103; GFX908-NEXT:    buffer_atomic_cmpswap v[0:1], v3, s[16:19], 0 offen offset:1024 glc1104; GFX908-NEXT:    s_waitcnt vmcnt(0)1105; GFX908-NEXT:    buffer_wbinvl11106; GFX908-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v51107; GFX908-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]1108; GFX908-NEXT:    s_andn2_b64 exec, exec, s[4:5]1109; GFX908-NEXT:    s_cbranch_execnz .LBB4_11110; GFX908-NEXT:  ; %bb.2: ; %atomicrmw.end1111; GFX908-NEXT:    s_or_b64 exec, exec, s[4:5]1112; GFX908-NEXT:    s_setpc_b64 s[30:31]1113;1114; GFX8-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:1115; GFX8:       ; %bb.0:1116; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1117; GFX8-NEXT:    v_mov_b32_e32 v1, v01118; GFX8-NEXT:    v_mov_b32_e32 v0, s201119; GFX8-NEXT:    buffer_load_dword v0, v0, s[16:19], 0 offen offset:10241120; GFX8-NEXT:    s_mov_b64 s[4:5], 01121; GFX8-NEXT:    v_mul_f32_e32 v2, 1.0, v11122; GFX8-NEXT:    v_mov_b32_e32 v3, s201123; GFX8-NEXT:  .LBB4_1: ; %atomicrmw.start1124; GFX8-NEXT:    ; =>This Inner Loop Header: Depth=11125; GFX8-NEXT:    s_waitcnt vmcnt(0)1126; GFX8-NEXT:    v_mov_b32_e32 v5, v01127; GFX8-NEXT:    v_mul_f32_e32 v0, 1.0, v51128; GFX8-NEXT:    v_min_f32_e32 v4, v0, v21129; GFX8-NEXT:    v_mov_b32_e32 v0, v41130; GFX8-NEXT:    v_mov_b32_e32 v1, v51131; GFX8-NEXT:    buffer_atomic_cmpswap v[0:1], v3, s[16:19], 0 offen offset:1024 glc1132; GFX8-NEXT:    s_waitcnt vmcnt(0)1133; GFX8-NEXT:    buffer_wbinvl11134; GFX8-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v51135; GFX8-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]1136; GFX8-NEXT:    s_andn2_b64 exec, exec, s[4:5]1137; GFX8-NEXT:    s_cbranch_execnz .LBB4_11138; GFX8-NEXT:  ; %bb.2: ; %atomicrmw.end1139; GFX8-NEXT:    s_or_b64 exec, exec, s[4:5]1140; GFX8-NEXT:    s_setpc_b64 s[30:31]1141;1142; GFX7-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:1143; GFX7:       ; %bb.0:1144; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1145; GFX7-NEXT:    v_mov_b32_e32 v1, s201146; GFX7-NEXT:    buffer_atomic_fmin v0, v1, s[16:19], 0 offen offset:1024 glc1147; GFX7-NEXT:    s_waitcnt vmcnt(0)1148; GFX7-NEXT:    buffer_wbinvl11149; GFX7-NEXT:    s_setpc_b64 s[30:31]1150;1151; GFX6-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:1152; GFX6:       ; %bb.0:1153; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1154; GFX6-NEXT:    v_mov_b32_e32 v1, s201155; GFX6-NEXT:    buffer_atomic_fmin v0, v1, s[16:19], 0 offen offset:1024 glc1156; GFX6-NEXT:    s_waitcnt vmcnt(0)1157; GFX6-NEXT:    buffer_wbinvl11158; GFX6-NEXT:    s_waitcnt expcnt(0)1159; GFX6-NEXT:    s_setpc_b64 s[30:31]1160  %gep = getelementptr float, ptr addrspace(7) %ptr, i32 2561161  %result = atomicrmw fmin ptr addrspace(7) %gep, float %val syncscope("agent") seq_cst, !amdgpu.no.fine.grained.memory !0, !amdgpu.no.remote.memory !01162  ret float %result1163}1164 1165; --------------------------------------------------------------------1166; double1167; --------------------------------------------------------------------1168 1169define double @buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_fine_grained_memory(ptr addrspace(7) inreg %ptr, double %val) #0 {1170; GFX12-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_fine_grained_memory:1171; GFX12:       ; %bb.0:1172; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x01173; GFX12-NEXT:    s_wait_expcnt 0x01174; GFX12-NEXT:    s_wait_samplecnt 0x01175; GFX12-NEXT:    s_wait_bvhcnt 0x01176; GFX12-NEXT:    s_wait_kmcnt 0x01177; GFX12-NEXT:    v_mov_b32_e32 v2, s161178; GFX12-NEXT:    v_max_num_f64_e32 v[6:7], v[0:1], v[0:1]1179; GFX12-NEXT:    v_mov_b32_e32 v8, s161180; GFX12-NEXT:    s_mov_b32 s4, 01181; GFX12-NEXT:    buffer_load_b64 v[4:5], v2, s[0:3], null offen offset:20481182; GFX12-NEXT:  .LBB5_1: ; %atomicrmw.start1183; GFX12-NEXT:    ; =>This Inner Loop Header: Depth=11184; GFX12-NEXT:    s_wait_loadcnt 0x01185; GFX12-NEXT:    v_max_num_f64_e32 v[0:1], v[4:5], v[4:5]1186; GFX12-NEXT:    s_wait_storecnt 0x01187; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1188; GFX12-NEXT:    v_min_num_f64_e32 v[2:3], v[0:1], v[6:7]1189; GFX12-NEXT:    v_mov_b32_e32 v0, v21190; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_2)1191; GFX12-NEXT:    v_dual_mov_b32 v1, v3 :: v_dual_mov_b32 v2, v41192; GFX12-NEXT:    v_mov_b32_e32 v3, v51193; GFX12-NEXT:    buffer_atomic_cmpswap_b64 v[0:3], v8, s[0:3], null offen offset:2048 th:TH_ATOMIC_RETURN1194; GFX12-NEXT:    s_wait_loadcnt 0x01195; GFX12-NEXT:    global_inv scope:SCOPE_DEV1196; GFX12-NEXT:    v_cmp_eq_u64_e32 vcc_lo, v[0:1], v[4:5]1197; GFX12-NEXT:    v_dual_mov_b32 v5, v1 :: v_dual_mov_b32 v4, v01198; GFX12-NEXT:    s_or_b32 s4, vcc_lo, s41199; GFX12-NEXT:    s_wait_alu depctr_sa_sdst(0)1200; GFX12-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s41201; GFX12-NEXT:    s_cbranch_execnz .LBB5_11202; GFX12-NEXT:  ; %bb.2: ; %atomicrmw.end1203; GFX12-NEXT:    s_or_b32 exec_lo, exec_lo, s41204; GFX12-NEXT:    s_wait_loadcnt 0x01205; GFX12-NEXT:    s_setpc_b64 s[30:31]1206;1207; GFX942-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_fine_grained_memory:1208; GFX942:       ; %bb.0:1209; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1210; GFX942-NEXT:    v_mov_b32_e32 v2, s161211; GFX942-NEXT:    buffer_wbl2 sc11212; GFX942-NEXT:    buffer_atomic_min_f64 v[0:1], v2, s[0:3], 0 offen offset:2048 sc01213; GFX942-NEXT:    s_waitcnt vmcnt(0)1214; GFX942-NEXT:    buffer_inv sc11215; GFX942-NEXT:    s_setpc_b64 s[30:31]1216;1217; GFX11-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_fine_grained_memory:1218; GFX11:       ; %bb.0:1219; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1220; GFX11-NEXT:    v_mov_b32_e32 v2, s161221; GFX11-NEXT:    v_max_f64 v[6:7], v[0:1], v[0:1]1222; GFX11-NEXT:    v_mov_b32_e32 v8, s161223; GFX11-NEXT:    s_mov_b32 s4, 01224; GFX11-NEXT:    buffer_load_b64 v[4:5], v2, s[0:3], 0 offen offset:20481225; GFX11-NEXT:  .LBB5_1: ; %atomicrmw.start1226; GFX11-NEXT:    ; =>This Inner Loop Header: Depth=11227; GFX11-NEXT:    s_waitcnt vmcnt(0)1228; GFX11-NEXT:    v_max_f64 v[0:1], v[4:5], v[4:5]1229; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01230; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1231; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]1232; GFX11-NEXT:    v_mov_b32_e32 v0, v21233; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2)1234; GFX11-NEXT:    v_dual_mov_b32 v1, v3 :: v_dual_mov_b32 v2, v41235; GFX11-NEXT:    v_mov_b32_e32 v3, v51236; GFX11-NEXT:    buffer_atomic_cmpswap_b64 v[0:3], v8, s[0:3], 0 offen offset:2048 glc1237; GFX11-NEXT:    s_waitcnt vmcnt(0)1238; GFX11-NEXT:    buffer_gl1_inv1239; GFX11-NEXT:    buffer_gl0_inv1240; GFX11-NEXT:    v_cmp_eq_u64_e32 vcc_lo, v[0:1], v[4:5]1241; GFX11-NEXT:    v_dual_mov_b32 v5, v1 :: v_dual_mov_b32 v4, v01242; GFX11-NEXT:    s_or_b32 s4, vcc_lo, s41243; GFX11-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)1244; GFX11-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s41245; GFX11-NEXT:    s_cbranch_execnz .LBB5_11246; GFX11-NEXT:  ; %bb.2: ; %atomicrmw.end1247; GFX11-NEXT:    s_or_b32 exec_lo, exec_lo, s41248; GFX11-NEXT:    s_setpc_b64 s[30:31]1249;1250; GFX10-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_fine_grained_memory:1251; GFX10:       ; %bb.0:1252; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1253; GFX10-NEXT:    v_mov_b32_e32 v2, s201254; GFX10-NEXT:    s_waitcnt_vscnt null, 0x01255; GFX10-NEXT:    buffer_atomic_fmin_x2 v[0:1], v2, s[16:19], 0 offen offset:2048 glc1256; GFX10-NEXT:    s_waitcnt vmcnt(0)1257; GFX10-NEXT:    buffer_gl1_inv1258; GFX10-NEXT:    buffer_gl0_inv1259; GFX10-NEXT:    s_setpc_b64 s[30:31]1260;1261; GFX90A-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_fine_grained_memory:1262; GFX90A:       ; %bb.0:1263; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1264; GFX90A-NEXT:    v_mov_b32_e32 v2, s201265; GFX90A-NEXT:    buffer_atomic_min_f64 v[0:1], v2, s[16:19], 0 offen offset:2048 glc1266; GFX90A-NEXT:    s_waitcnt vmcnt(0)1267; GFX90A-NEXT:    buffer_wbinvl11268; GFX90A-NEXT:    s_setpc_b64 s[30:31]1269;1270; GFX908-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_fine_grained_memory:1271; GFX908:       ; %bb.0:1272; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1273; GFX908-NEXT:    v_mov_b32_e32 v2, s201274; GFX908-NEXT:    buffer_load_dwordx2 v[4:5], v2, s[16:19], 0 offen offset:20481275; GFX908-NEXT:    v_max_f64 v[6:7], v[0:1], v[0:1]1276; GFX908-NEXT:    s_mov_b64 s[4:5], 01277; GFX908-NEXT:    v_mov_b32_e32 v8, s201278; GFX908-NEXT:  .LBB5_1: ; %atomicrmw.start1279; GFX908-NEXT:    ; =>This Inner Loop Header: Depth=11280; GFX908-NEXT:    s_waitcnt vmcnt(0)1281; GFX908-NEXT:    v_max_f64 v[0:1], v[4:5], v[4:5]1282; GFX908-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]1283; GFX908-NEXT:    v_mov_b32_e32 v0, v21284; GFX908-NEXT:    v_mov_b32_e32 v1, v31285; GFX908-NEXT:    v_mov_b32_e32 v2, v41286; GFX908-NEXT:    v_mov_b32_e32 v3, v51287; GFX908-NEXT:    buffer_atomic_cmpswap_x2 v[0:3], v8, s[16:19], 0 offen offset:2048 glc1288; GFX908-NEXT:    s_waitcnt vmcnt(0)1289; GFX908-NEXT:    buffer_wbinvl11290; GFX908-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[4:5]1291; GFX908-NEXT:    v_mov_b32_e32 v5, v11292; GFX908-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]1293; GFX908-NEXT:    v_mov_b32_e32 v4, v01294; GFX908-NEXT:    s_andn2_b64 exec, exec, s[4:5]1295; GFX908-NEXT:    s_cbranch_execnz .LBB5_11296; GFX908-NEXT:  ; %bb.2: ; %atomicrmw.end1297; GFX908-NEXT:    s_or_b64 exec, exec, s[4:5]1298; GFX908-NEXT:    s_setpc_b64 s[30:31]1299;1300; GFX8-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_fine_grained_memory:1301; GFX8:       ; %bb.0:1302; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1303; GFX8-NEXT:    v_mov_b32_e32 v2, s201304; GFX8-NEXT:    buffer_load_dwordx2 v[4:5], v2, s[16:19], 0 offen offset:20481305; GFX8-NEXT:    v_max_f64 v[6:7], v[0:1], v[0:1]1306; GFX8-NEXT:    s_mov_b64 s[4:5], 01307; GFX8-NEXT:    v_mov_b32_e32 v8, s201308; GFX8-NEXT:  .LBB5_1: ; %atomicrmw.start1309; GFX8-NEXT:    ; =>This Inner Loop Header: Depth=11310; GFX8-NEXT:    s_waitcnt vmcnt(0)1311; GFX8-NEXT:    v_max_f64 v[0:1], v[4:5], v[4:5]1312; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]1313; GFX8-NEXT:    v_mov_b32_e32 v0, v21314; GFX8-NEXT:    v_mov_b32_e32 v1, v31315; GFX8-NEXT:    v_mov_b32_e32 v2, v41316; GFX8-NEXT:    v_mov_b32_e32 v3, v51317; GFX8-NEXT:    buffer_atomic_cmpswap_x2 v[0:3], v8, s[16:19], 0 offen offset:2048 glc1318; GFX8-NEXT:    s_waitcnt vmcnt(0)1319; GFX8-NEXT:    buffer_wbinvl11320; GFX8-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[4:5]1321; GFX8-NEXT:    v_mov_b32_e32 v5, v11322; GFX8-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]1323; GFX8-NEXT:    v_mov_b32_e32 v4, v01324; GFX8-NEXT:    s_andn2_b64 exec, exec, s[4:5]1325; GFX8-NEXT:    s_cbranch_execnz .LBB5_11326; GFX8-NEXT:  ; %bb.2: ; %atomicrmw.end1327; GFX8-NEXT:    s_or_b64 exec, exec, s[4:5]1328; GFX8-NEXT:    s_setpc_b64 s[30:31]1329;1330; GFX7-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_fine_grained_memory:1331; GFX7:       ; %bb.0:1332; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1333; GFX7-NEXT:    v_mov_b32_e32 v2, s201334; GFX7-NEXT:    buffer_atomic_fmin_x2 v[0:1], v2, s[16:19], 0 offen offset:2048 glc1335; GFX7-NEXT:    s_waitcnt vmcnt(0)1336; GFX7-NEXT:    buffer_wbinvl11337; GFX7-NEXT:    s_setpc_b64 s[30:31]1338;1339; GFX6-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_fine_grained_memory:1340; GFX6:       ; %bb.0:1341; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1342; GFX6-NEXT:    v_mov_b32_e32 v2, s201343; GFX6-NEXT:    buffer_atomic_fmin_x2 v[0:1], v2, s[16:19], 0 offen offset:2048 glc1344; GFX6-NEXT:    s_waitcnt vmcnt(0)1345; GFX6-NEXT:    buffer_wbinvl11346; GFX6-NEXT:    s_waitcnt expcnt(0)1347; GFX6-NEXT:    s_setpc_b64 s[30:31]1348  %gep = getelementptr double, ptr addrspace(7) %ptr, i32 2561349  %result = atomicrmw fmin ptr addrspace(7) %gep, double %val syncscope("agent") seq_cst, !amdgpu.no.fine.grained.memory !01350  ret double %result1351}1352 1353define void @buffer_fat_ptr_agent_atomic_fmin_noret_f64__offset__amdgpu_no_fine_grained_memory(ptr addrspace(7) inreg %ptr, double %val) #0 {1354; GFX12-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f64__offset__amdgpu_no_fine_grained_memory:1355; GFX12:       ; %bb.0:1356; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x01357; GFX12-NEXT:    s_wait_expcnt 0x01358; GFX12-NEXT:    s_wait_samplecnt 0x01359; GFX12-NEXT:    s_wait_bvhcnt 0x01360; GFX12-NEXT:    s_wait_kmcnt 0x01361; GFX12-NEXT:    v_mov_b32_e32 v2, s161362; GFX12-NEXT:    v_max_num_f64_e32 v[4:5], v[0:1], v[0:1]1363; GFX12-NEXT:    v_mov_b32_e32 v6, s161364; GFX12-NEXT:    s_mov_b32 s4, 01365; GFX12-NEXT:    buffer_load_b64 v[2:3], v2, s[0:3], null offen offset:20481366; GFX12-NEXT:  .LBB6_1: ; %atomicrmw.start1367; GFX12-NEXT:    ; =>This Inner Loop Header: Depth=11368; GFX12-NEXT:    s_wait_loadcnt 0x01369; GFX12-NEXT:    v_max_num_f64_e32 v[0:1], v[2:3], v[2:3]1370; GFX12-NEXT:    s_wait_storecnt 0x01371; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)1372; GFX12-NEXT:    v_min_num_f64_e32 v[0:1], v[0:1], v[4:5]1373; GFX12-NEXT:    v_dual_mov_b32 v10, v3 :: v_dual_mov_b32 v9, v21374; GFX12-NEXT:    v_dual_mov_b32 v8, v1 :: v_dual_mov_b32 v7, v01375; GFX12-NEXT:    buffer_atomic_cmpswap_b64 v[7:10], v6, s[0:3], null offen offset:2048 th:TH_ATOMIC_RETURN1376; GFX12-NEXT:    s_wait_loadcnt 0x01377; GFX12-NEXT:    global_inv scope:SCOPE_DEV1378; GFX12-NEXT:    v_cmp_eq_u64_e32 vcc_lo, v[7:8], v[2:3]1379; GFX12-NEXT:    v_dual_mov_b32 v2, v7 :: v_dual_mov_b32 v3, v81380; GFX12-NEXT:    s_or_b32 s4, vcc_lo, s41381; GFX12-NEXT:    s_wait_alu depctr_sa_sdst(0)1382; GFX12-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s41383; GFX12-NEXT:    s_cbranch_execnz .LBB6_11384; GFX12-NEXT:  ; %bb.2: ; %atomicrmw.end1385; GFX12-NEXT:    s_or_b32 exec_lo, exec_lo, s41386; GFX12-NEXT:    s_wait_loadcnt 0x01387; GFX12-NEXT:    s_setpc_b64 s[30:31]1388;1389; GFX942-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f64__offset__amdgpu_no_fine_grained_memory:1390; GFX942:       ; %bb.0:1391; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1392; GFX942-NEXT:    v_mov_b32_e32 v2, s161393; GFX942-NEXT:    buffer_wbl2 sc11394; GFX942-NEXT:    buffer_atomic_min_f64 v[0:1], v2, s[0:3], 0 offen offset:20481395; GFX942-NEXT:    s_waitcnt vmcnt(0)1396; GFX942-NEXT:    buffer_inv sc11397; GFX942-NEXT:    s_setpc_b64 s[30:31]1398;1399; GFX11-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f64__offset__amdgpu_no_fine_grained_memory:1400; GFX11:       ; %bb.0:1401; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1402; GFX11-NEXT:    v_mov_b32_e32 v2, s161403; GFX11-NEXT:    v_max_f64 v[4:5], v[0:1], v[0:1]1404; GFX11-NEXT:    v_mov_b32_e32 v6, s161405; GFX11-NEXT:    s_mov_b32 s4, 01406; GFX11-NEXT:    buffer_load_b64 v[2:3], v2, s[0:3], 0 offen offset:20481407; GFX11-NEXT:  .LBB6_1: ; %atomicrmw.start1408; GFX11-NEXT:    ; =>This Inner Loop Header: Depth=11409; GFX11-NEXT:    s_waitcnt vmcnt(0)1410; GFX11-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]1411; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01412; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)1413; GFX11-NEXT:    v_min_f64 v[0:1], v[0:1], v[4:5]1414; GFX11-NEXT:    v_dual_mov_b32 v10, v3 :: v_dual_mov_b32 v9, v21415; GFX11-NEXT:    v_dual_mov_b32 v8, v1 :: v_dual_mov_b32 v7, v01416; GFX11-NEXT:    buffer_atomic_cmpswap_b64 v[7:10], v6, s[0:3], 0 offen offset:2048 glc1417; GFX11-NEXT:    s_waitcnt vmcnt(0)1418; GFX11-NEXT:    buffer_gl1_inv1419; GFX11-NEXT:    buffer_gl0_inv1420; GFX11-NEXT:    v_cmp_eq_u64_e32 vcc_lo, v[7:8], v[2:3]1421; GFX11-NEXT:    v_dual_mov_b32 v2, v7 :: v_dual_mov_b32 v3, v81422; GFX11-NEXT:    s_or_b32 s4, vcc_lo, s41423; GFX11-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)1424; GFX11-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s41425; GFX11-NEXT:    s_cbranch_execnz .LBB6_11426; GFX11-NEXT:  ; %bb.2: ; %atomicrmw.end1427; GFX11-NEXT:    s_or_b32 exec_lo, exec_lo, s41428; GFX11-NEXT:    s_setpc_b64 s[30:31]1429;1430; GFX10-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f64__offset__amdgpu_no_fine_grained_memory:1431; GFX10:       ; %bb.0:1432; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1433; GFX10-NEXT:    v_mov_b32_e32 v2, s201434; GFX10-NEXT:    s_waitcnt_vscnt null, 0x01435; GFX10-NEXT:    buffer_atomic_fmin_x2 v[0:1], v2, s[16:19], 0 offen offset:20481436; GFX10-NEXT:    s_waitcnt_vscnt null, 0x01437; GFX10-NEXT:    buffer_gl1_inv1438; GFX10-NEXT:    buffer_gl0_inv1439; GFX10-NEXT:    s_setpc_b64 s[30:31]1440;1441; GFX90A-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f64__offset__amdgpu_no_fine_grained_memory:1442; GFX90A:       ; %bb.0:1443; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1444; GFX90A-NEXT:    v_mov_b32_e32 v2, s201445; GFX90A-NEXT:    buffer_atomic_min_f64 v[0:1], v2, s[16:19], 0 offen offset:20481446; GFX90A-NEXT:    s_waitcnt vmcnt(0)1447; GFX90A-NEXT:    buffer_wbinvl11448; GFX90A-NEXT:    s_setpc_b64 s[30:31]1449;1450; GFX908-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f64__offset__amdgpu_no_fine_grained_memory:1451; GFX908:       ; %bb.0:1452; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1453; GFX908-NEXT:    v_mov_b32_e32 v2, s201454; GFX908-NEXT:    buffer_load_dwordx2 v[2:3], v2, s[16:19], 0 offen offset:20481455; GFX908-NEXT:    v_max_f64 v[4:5], v[0:1], v[0:1]1456; GFX908-NEXT:    s_mov_b64 s[4:5], 01457; GFX908-NEXT:    v_mov_b32_e32 v6, s201458; GFX908-NEXT:  .LBB6_1: ; %atomicrmw.start1459; GFX908-NEXT:    ; =>This Inner Loop Header: Depth=11460; GFX908-NEXT:    s_waitcnt vmcnt(0)1461; GFX908-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]1462; GFX908-NEXT:    v_min_f64 v[0:1], v[0:1], v[4:5]1463; GFX908-NEXT:    v_mov_b32_e32 v10, v31464; GFX908-NEXT:    v_mov_b32_e32 v9, v21465; GFX908-NEXT:    v_mov_b32_e32 v8, v11466; GFX908-NEXT:    v_mov_b32_e32 v7, v01467; GFX908-NEXT:    buffer_atomic_cmpswap_x2 v[7:10], v6, s[16:19], 0 offen offset:2048 glc1468; GFX908-NEXT:    s_waitcnt vmcnt(0)1469; GFX908-NEXT:    buffer_wbinvl11470; GFX908-NEXT:    v_cmp_eq_u64_e32 vcc, v[7:8], v[2:3]1471; GFX908-NEXT:    v_mov_b32_e32 v2, v71472; GFX908-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]1473; GFX908-NEXT:    v_mov_b32_e32 v3, v81474; GFX908-NEXT:    s_andn2_b64 exec, exec, s[4:5]1475; GFX908-NEXT:    s_cbranch_execnz .LBB6_11476; GFX908-NEXT:  ; %bb.2: ; %atomicrmw.end1477; GFX908-NEXT:    s_or_b64 exec, exec, s[4:5]1478; GFX908-NEXT:    s_setpc_b64 s[30:31]1479;1480; GFX8-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f64__offset__amdgpu_no_fine_grained_memory:1481; GFX8:       ; %bb.0:1482; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1483; GFX8-NEXT:    v_mov_b32_e32 v2, s201484; GFX8-NEXT:    buffer_load_dwordx2 v[2:3], v2, s[16:19], 0 offen offset:20481485; GFX8-NEXT:    v_max_f64 v[4:5], v[0:1], v[0:1]1486; GFX8-NEXT:    s_mov_b64 s[4:5], 01487; GFX8-NEXT:    v_mov_b32_e32 v6, s201488; GFX8-NEXT:  .LBB6_1: ; %atomicrmw.start1489; GFX8-NEXT:    ; =>This Inner Loop Header: Depth=11490; GFX8-NEXT:    s_waitcnt vmcnt(0)1491; GFX8-NEXT:    v_max_f64 v[0:1], v[2:3], v[2:3]1492; GFX8-NEXT:    v_min_f64 v[0:1], v[0:1], v[4:5]1493; GFX8-NEXT:    v_mov_b32_e32 v10, v31494; GFX8-NEXT:    v_mov_b32_e32 v9, v21495; GFX8-NEXT:    v_mov_b32_e32 v8, v11496; GFX8-NEXT:    v_mov_b32_e32 v7, v01497; GFX8-NEXT:    buffer_atomic_cmpswap_x2 v[7:10], v6, s[16:19], 0 offen offset:2048 glc1498; GFX8-NEXT:    s_waitcnt vmcnt(0)1499; GFX8-NEXT:    buffer_wbinvl11500; GFX8-NEXT:    v_cmp_eq_u64_e32 vcc, v[7:8], v[2:3]1501; GFX8-NEXT:    v_mov_b32_e32 v2, v71502; GFX8-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]1503; GFX8-NEXT:    v_mov_b32_e32 v3, v81504; GFX8-NEXT:    s_andn2_b64 exec, exec, s[4:5]1505; GFX8-NEXT:    s_cbranch_execnz .LBB6_11506; GFX8-NEXT:  ; %bb.2: ; %atomicrmw.end1507; GFX8-NEXT:    s_or_b64 exec, exec, s[4:5]1508; GFX8-NEXT:    s_setpc_b64 s[30:31]1509;1510; GFX7-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f64__offset__amdgpu_no_fine_grained_memory:1511; GFX7:       ; %bb.0:1512; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1513; GFX7-NEXT:    v_mov_b32_e32 v2, s201514; GFX7-NEXT:    buffer_atomic_fmin_x2 v[0:1], v2, s[16:19], 0 offen offset:20481515; GFX7-NEXT:    s_waitcnt vmcnt(0)1516; GFX7-NEXT:    buffer_wbinvl11517; GFX7-NEXT:    s_setpc_b64 s[30:31]1518;1519; GFX6-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f64__offset__amdgpu_no_fine_grained_memory:1520; GFX6:       ; %bb.0:1521; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1522; GFX6-NEXT:    v_mov_b32_e32 v2, s201523; GFX6-NEXT:    buffer_atomic_fmin_x2 v[0:1], v2, s[16:19], 0 offen offset:20481524; GFX6-NEXT:    s_waitcnt vmcnt(0)1525; GFX6-NEXT:    buffer_wbinvl11526; GFX6-NEXT:    s_waitcnt expcnt(0)1527; GFX6-NEXT:    s_setpc_b64 s[30:31]1528  %gep = getelementptr double, ptr addrspace(7) %ptr, i32 2561529  %unused = atomicrmw fmin ptr addrspace(7) %gep, double %val syncscope("agent") seq_cst, !amdgpu.no.fine.grained.memory !01530  ret void1531}1532 1533define double @buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__waterfall__amdgpu_no_fine_grained_memory(ptr addrspace(7) %ptr, double %val) #0 {1534; GFX12-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__waterfall__amdgpu_no_fine_grained_memory:1535; GFX12:       ; %bb.0:1536; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x01537; GFX12-NEXT:    s_wait_expcnt 0x01538; GFX12-NEXT:    s_wait_samplecnt 0x01539; GFX12-NEXT:    s_wait_bvhcnt 0x01540; GFX12-NEXT:    s_wait_kmcnt 0x01541; GFX12-NEXT:    v_dual_mov_b32 v8, v3 :: v_dual_mov_b32 v7, v21542; GFX12-NEXT:    v_dual_mov_b32 v10, v1 :: v_dual_mov_b32 v9, v01543; GFX12-NEXT:    s_mov_b32 s1, exec_lo1544; GFX12-NEXT:  .LBB7_1: ; =>This Inner Loop Header: Depth=11545; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)1546; GFX12-NEXT:    v_readfirstlane_b32 s4, v91547; GFX12-NEXT:    v_readfirstlane_b32 s5, v101548; GFX12-NEXT:    v_readfirstlane_b32 s6, v71549; GFX12-NEXT:    v_readfirstlane_b32 s7, v81550; GFX12-NEXT:    s_wait_alu depctr_va_sdst(0)1551; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)1552; GFX12-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[9:10]1553; GFX12-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[7:8]1554; GFX12-NEXT:    s_and_b32 s0, vcc_lo, s01555; GFX12-NEXT:    s_wait_alu depctr_sa_sdst(0)1556; GFX12-NEXT:    s_and_saveexec_b32 s0, s01557; GFX12-NEXT:    s_wait_loadcnt 0x01558; GFX12-NEXT:    buffer_load_b64 v[13:14], v4, s[4:7], null offen offset:20481559; GFX12-NEXT:    s_xor_b32 exec_lo, exec_lo, s01560; GFX12-NEXT:    s_cbranch_execnz .LBB7_11561; GFX12-NEXT:  ; %bb.2:1562; GFX12-NEXT:    s_mov_b32 exec_lo, s11563; GFX12-NEXT:    v_max_num_f64_e32 v[5:6], v[5:6], v[5:6]1564; GFX12-NEXT:    s_mov_b32 s1, 01565; GFX12-NEXT:  .LBB7_3: ; %atomicrmw.start1566; GFX12-NEXT:    ; =>This Loop Header: Depth=11567; GFX12-NEXT:    ; Child Loop BB7_4 Depth 21568; GFX12-NEXT:    s_wait_loadcnt 0x01569; GFX12-NEXT:    v_max_num_f64_e32 v[0:1], v[13:14], v[13:14]1570; GFX12-NEXT:    s_mov_b32 s2, exec_lo1571; GFX12-NEXT:    s_wait_storecnt 0x01572; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1573; GFX12-NEXT:    v_min_num_f64_e32 v[11:12], v[0:1], v[5:6]1574; GFX12-NEXT:    v_dual_mov_b32 v0, v11 :: v_dual_mov_b32 v1, v121575; GFX12-NEXT:    v_dual_mov_b32 v2, v13 :: v_dual_mov_b32 v3, v141576; GFX12-NEXT:  .LBB7_4: ; Parent Loop BB7_3 Depth=11577; GFX12-NEXT:    ; => This Inner Loop Header: Depth=21578; GFX12-NEXT:    v_readfirstlane_b32 s4, v91579; GFX12-NEXT:    v_readfirstlane_b32 s5, v101580; GFX12-NEXT:    v_readfirstlane_b32 s6, v71581; GFX12-NEXT:    v_readfirstlane_b32 s7, v81582; GFX12-NEXT:    s_wait_alu depctr_va_sdst(0)1583; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)1584; GFX12-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[9:10]1585; GFX12-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[7:8]1586; GFX12-NEXT:    s_and_b32 s0, vcc_lo, s01587; GFX12-NEXT:    s_wait_alu depctr_sa_sdst(0)1588; GFX12-NEXT:    s_and_saveexec_b32 s0, s01589; GFX12-NEXT:    s_wait_loadcnt 0x01590; GFX12-NEXT:    buffer_atomic_cmpswap_b64 v[0:3], v4, s[4:7], null offen offset:2048 th:TH_ATOMIC_RETURN1591; GFX12-NEXT:    s_xor_b32 exec_lo, exec_lo, s01592; GFX12-NEXT:    s_cbranch_execnz .LBB7_41593; GFX12-NEXT:  ; %bb.5: ; in Loop: Header=BB7_3 Depth=11594; GFX12-NEXT:    s_mov_b32 exec_lo, s21595; GFX12-NEXT:    s_wait_loadcnt 0x01596; GFX12-NEXT:    v_cmp_eq_u64_e32 vcc_lo, v[0:1], v[13:14]1597; GFX12-NEXT:    v_dual_mov_b32 v14, v1 :: v_dual_mov_b32 v13, v01598; GFX12-NEXT:    global_inv scope:SCOPE_DEV1599; GFX12-NEXT:    s_or_b32 s1, vcc_lo, s11600; GFX12-NEXT:    s_wait_alu depctr_sa_sdst(0)1601; GFX12-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s11602; GFX12-NEXT:    s_cbranch_execnz .LBB7_31603; GFX12-NEXT:  ; %bb.6: ; %atomicrmw.end1604; GFX12-NEXT:    s_or_b32 exec_lo, exec_lo, s11605; GFX12-NEXT:    s_wait_loadcnt 0x01606; GFX12-NEXT:    s_setpc_b64 s[30:31]1607;1608; GFX942-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__waterfall__amdgpu_no_fine_grained_memory:1609; GFX942:       ; %bb.0:1610; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1611; GFX942-NEXT:    v_mov_b32_e32 v7, v61612; GFX942-NEXT:    v_mov_b32_e32 v6, v51613; GFX942-NEXT:    s_mov_b64 s[2:3], exec1614; GFX942-NEXT:    buffer_wbl2 sc11615; GFX942-NEXT:  .LBB7_1: ; =>This Inner Loop Header: Depth=11616; GFX942-NEXT:    v_readfirstlane_b32 s4, v01617; GFX942-NEXT:    v_readfirstlane_b32 s5, v11618; GFX942-NEXT:    v_readfirstlane_b32 s6, v21619; GFX942-NEXT:    v_readfirstlane_b32 s7, v31620; GFX942-NEXT:    v_cmp_eq_u64_e32 vcc, s[4:5], v[0:1]1621; GFX942-NEXT:    s_nop 01622; GFX942-NEXT:    v_cmp_eq_u64_e64 s[0:1], s[6:7], v[2:3]1623; GFX942-NEXT:    s_and_b64 s[0:1], vcc, s[0:1]1624; GFX942-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]1625; GFX942-NEXT:    s_waitcnt vmcnt(0)1626; GFX942-NEXT:    buffer_atomic_min_f64 v[6:7], v4, s[4:7], 0 offen offset:2048 sc01627; GFX942-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr31628; GFX942-NEXT:    ; implicit-def: $vgpr41629; GFX942-NEXT:    s_xor_b64 exec, exec, s[0:1]1630; GFX942-NEXT:    s_cbranch_execnz .LBB7_11631; GFX942-NEXT:  ; %bb.2:1632; GFX942-NEXT:    s_mov_b64 exec, s[2:3]1633; GFX942-NEXT:    s_waitcnt vmcnt(0)1634; GFX942-NEXT:    v_mov_b32_e32 v0, v61635; GFX942-NEXT:    v_mov_b32_e32 v1, v71636; GFX942-NEXT:    buffer_inv sc11637; GFX942-NEXT:    s_setpc_b64 s[30:31]1638;1639; GFX11-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__waterfall__amdgpu_no_fine_grained_memory:1640; GFX11:       ; %bb.0:1641; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1642; GFX11-NEXT:    v_dual_mov_b32 v8, v3 :: v_dual_mov_b32 v7, v21643; GFX11-NEXT:    v_dual_mov_b32 v10, v1 :: v_dual_mov_b32 v9, v01644; GFX11-NEXT:    s_mov_b32 s1, 01645; GFX11-NEXT:    s_mov_b32 s2, exec_lo1646; GFX11-NEXT:  .LBB7_1: ; =>This Inner Loop Header: Depth=11647; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)1648; GFX11-NEXT:    v_readfirstlane_b32 s4, v91649; GFX11-NEXT:    v_readfirstlane_b32 s5, v101650; GFX11-NEXT:    v_readfirstlane_b32 s6, v71651; GFX11-NEXT:    v_readfirstlane_b32 s7, v81652; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)1653; GFX11-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[9:10]1654; GFX11-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[7:8]1655; GFX11-NEXT:    s_and_b32 s0, vcc_lo, s01656; GFX11-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)1657; GFX11-NEXT:    s_and_saveexec_b32 s0, s01658; GFX11-NEXT:    buffer_load_b64 v[13:14], v4, s[4:7], 0 offen offset:20481659; GFX11-NEXT:    s_xor_b32 exec_lo, exec_lo, s01660; GFX11-NEXT:    s_cbranch_execnz .LBB7_11661; GFX11-NEXT:  ; %bb.2:1662; GFX11-NEXT:    s_mov_b32 exec_lo, s21663; GFX11-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]1664; GFX11-NEXT:    .p2align 61665; GFX11-NEXT:  .LBB7_3: ; %atomicrmw.start1666; GFX11-NEXT:    ; =>This Loop Header: Depth=11667; GFX11-NEXT:    ; Child Loop BB7_4 Depth 21668; GFX11-NEXT:    s_waitcnt vmcnt(0)1669; GFX11-NEXT:    v_max_f64 v[0:1], v[13:14], v[13:14]1670; GFX11-NEXT:    s_mov_b32 s2, exec_lo1671; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01672; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1673; GFX11-NEXT:    v_min_f64 v[11:12], v[0:1], v[5:6]1674; GFX11-NEXT:    v_dual_mov_b32 v0, v11 :: v_dual_mov_b32 v1, v121675; GFX11-NEXT:    v_dual_mov_b32 v2, v13 :: v_dual_mov_b32 v3, v141676; GFX11-NEXT:  .LBB7_4: ; Parent Loop BB7_3 Depth=11677; GFX11-NEXT:    ; => This Inner Loop Header: Depth=21678; GFX11-NEXT:    v_readfirstlane_b32 s4, v91679; GFX11-NEXT:    v_readfirstlane_b32 s5, v101680; GFX11-NEXT:    v_readfirstlane_b32 s6, v71681; GFX11-NEXT:    v_readfirstlane_b32 s7, v81682; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)1683; GFX11-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[9:10]1684; GFX11-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[7:8]1685; GFX11-NEXT:    s_and_b32 s0, vcc_lo, s01686; GFX11-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)1687; GFX11-NEXT:    s_and_saveexec_b32 s0, s01688; GFX11-NEXT:    s_waitcnt vmcnt(0)1689; GFX11-NEXT:    buffer_atomic_cmpswap_b64 v[0:3], v4, s[4:7], 0 offen offset:2048 glc1690; GFX11-NEXT:    s_xor_b32 exec_lo, exec_lo, s01691; GFX11-NEXT:    s_cbranch_execnz .LBB7_41692; GFX11-NEXT:  ; %bb.5: ; in Loop: Header=BB7_3 Depth=11693; GFX11-NEXT:    s_mov_b32 exec_lo, s21694; GFX11-NEXT:    s_waitcnt vmcnt(0)1695; GFX11-NEXT:    v_cmp_eq_u64_e32 vcc_lo, v[0:1], v[13:14]1696; GFX11-NEXT:    v_dual_mov_b32 v14, v1 :: v_dual_mov_b32 v13, v01697; GFX11-NEXT:    buffer_gl1_inv1698; GFX11-NEXT:    buffer_gl0_inv1699; GFX11-NEXT:    s_or_b32 s1, vcc_lo, s11700; GFX11-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)1701; GFX11-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s11702; GFX11-NEXT:    s_cbranch_execnz .LBB7_31703; GFX11-NEXT:  ; %bb.6: ; %atomicrmw.end1704; GFX11-NEXT:    s_or_b32 exec_lo, exec_lo, s11705; GFX11-NEXT:    s_setpc_b64 s[30:31]1706;1707; GFX10-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__waterfall__amdgpu_no_fine_grained_memory:1708; GFX10:       ; %bb.0:1709; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1710; GFX10-NEXT:    s_mov_b32 s5, exec_lo1711; GFX10-NEXT:    s_waitcnt_vscnt null, 0x01712; GFX10-NEXT:  .LBB7_1: ; =>This Inner Loop Header: Depth=11713; GFX10-NEXT:    v_readfirstlane_b32 s8, v01714; GFX10-NEXT:    v_readfirstlane_b32 s9, v11715; GFX10-NEXT:    v_readfirstlane_b32 s10, v21716; GFX10-NEXT:    v_readfirstlane_b32 s11, v31717; GFX10-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[8:9], v[0:1]1718; GFX10-NEXT:    v_cmp_eq_u64_e64 s4, s[10:11], v[2:3]1719; GFX10-NEXT:    s_and_b32 s4, vcc_lo, s41720; GFX10-NEXT:    s_and_saveexec_b32 s4, s41721; GFX10-NEXT:    s_waitcnt vmcnt(0)1722; GFX10-NEXT:    buffer_atomic_fmin_x2 v[5:6], v4, s[8:11], 0 offen offset:2048 glc1723; GFX10-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr31724; GFX10-NEXT:    ; implicit-def: $vgpr41725; GFX10-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)1726; GFX10-NEXT:    s_xor_b32 exec_lo, exec_lo, s41727; GFX10-NEXT:    s_cbranch_execnz .LBB7_11728; GFX10-NEXT:  ; %bb.2:1729; GFX10-NEXT:    s_mov_b32 exec_lo, s51730; GFX10-NEXT:    s_waitcnt vmcnt(0)1731; GFX10-NEXT:    v_mov_b32_e32 v0, v51732; GFX10-NEXT:    v_mov_b32_e32 v1, v61733; GFX10-NEXT:    buffer_gl1_inv1734; GFX10-NEXT:    buffer_gl0_inv1735; GFX10-NEXT:    s_setpc_b64 s[30:31]1736;1737; GFX90A-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__waterfall__amdgpu_no_fine_grained_memory:1738; GFX90A:       ; %bb.0:1739; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1740; GFX90A-NEXT:    v_mov_b32_e32 v7, v61741; GFX90A-NEXT:    v_mov_b32_e32 v6, v51742; GFX90A-NEXT:    s_mov_b64 s[6:7], exec1743; GFX90A-NEXT:  .LBB7_1: ; =>This Inner Loop Header: Depth=11744; GFX90A-NEXT:    v_readfirstlane_b32 s8, v01745; GFX90A-NEXT:    v_readfirstlane_b32 s9, v11746; GFX90A-NEXT:    v_readfirstlane_b32 s10, v21747; GFX90A-NEXT:    v_readfirstlane_b32 s11, v31748; GFX90A-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]1749; GFX90A-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]1750; GFX90A-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]1751; GFX90A-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]1752; GFX90A-NEXT:    s_waitcnt vmcnt(0)1753; GFX90A-NEXT:    buffer_atomic_min_f64 v[6:7], v4, s[8:11], 0 offen offset:2048 glc1754; GFX90A-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr31755; GFX90A-NEXT:    ; implicit-def: $vgpr41756; GFX90A-NEXT:    s_xor_b64 exec, exec, s[4:5]1757; GFX90A-NEXT:    s_cbranch_execnz .LBB7_11758; GFX90A-NEXT:  ; %bb.2:1759; GFX90A-NEXT:    s_mov_b64 exec, s[6:7]1760; GFX90A-NEXT:    s_waitcnt vmcnt(0)1761; GFX90A-NEXT:    v_mov_b32_e32 v0, v61762; GFX90A-NEXT:    v_mov_b32_e32 v1, v71763; GFX90A-NEXT:    buffer_wbinvl11764; GFX90A-NEXT:    s_setpc_b64 s[30:31]1765;1766; GFX908-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__waterfall__amdgpu_no_fine_grained_memory:1767; GFX908:       ; %bb.0:1768; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1769; GFX908-NEXT:    v_mov_b32_e32 v8, v31770; GFX908-NEXT:    v_mov_b32_e32 v7, v21771; GFX908-NEXT:    v_mov_b32_e32 v10, v11772; GFX908-NEXT:    v_mov_b32_e32 v9, v01773; GFX908-NEXT:    s_mov_b64 s[6:7], exec1774; GFX908-NEXT:  .LBB7_1: ; =>This Inner Loop Header: Depth=11775; GFX908-NEXT:    v_readfirstlane_b32 s8, v91776; GFX908-NEXT:    v_readfirstlane_b32 s9, v101777; GFX908-NEXT:    v_readfirstlane_b32 s10, v71778; GFX908-NEXT:    v_readfirstlane_b32 s11, v81779; GFX908-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[9:10]1780; GFX908-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[7:8]1781; GFX908-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]1782; GFX908-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]1783; GFX908-NEXT:    s_nop 01784; GFX908-NEXT:    buffer_load_dwordx2 v[13:14], v4, s[8:11], 0 offen offset:20481785; GFX908-NEXT:    s_xor_b64 exec, exec, s[4:5]1786; GFX908-NEXT:    s_cbranch_execnz .LBB7_11787; GFX908-NEXT:  ; %bb.2:1788; GFX908-NEXT:    s_mov_b64 exec, s[6:7]1789; GFX908-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]1790; GFX908-NEXT:    s_mov_b64 s[6:7], 01791; GFX908-NEXT:  .LBB7_3: ; %atomicrmw.start1792; GFX908-NEXT:    ; =>This Loop Header: Depth=11793; GFX908-NEXT:    ; Child Loop BB7_4 Depth 21794; GFX908-NEXT:    s_waitcnt vmcnt(0)1795; GFX908-NEXT:    v_max_f64 v[0:1], v[13:14], v[13:14]1796; GFX908-NEXT:    s_mov_b64 s[12:13], exec1797; GFX908-NEXT:    v_min_f64 v[11:12], v[0:1], v[5:6]1798; GFX908-NEXT:    v_mov_b32_e32 v0, v111799; GFX908-NEXT:    v_mov_b32_e32 v1, v121800; GFX908-NEXT:    v_mov_b32_e32 v2, v131801; GFX908-NEXT:    v_mov_b32_e32 v3, v141802; GFX908-NEXT:  .LBB7_4: ; Parent Loop BB7_3 Depth=11803; GFX908-NEXT:    ; => This Inner Loop Header: Depth=21804; GFX908-NEXT:    v_readfirstlane_b32 s8, v91805; GFX908-NEXT:    v_readfirstlane_b32 s9, v101806; GFX908-NEXT:    v_readfirstlane_b32 s10, v71807; GFX908-NEXT:    v_readfirstlane_b32 s11, v81808; GFX908-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[9:10]1809; GFX908-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[7:8]1810; GFX908-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]1811; GFX908-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]1812; GFX908-NEXT:    s_waitcnt vmcnt(0)1813; GFX908-NEXT:    buffer_atomic_cmpswap_x2 v[0:3], v4, s[8:11], 0 offen offset:2048 glc1814; GFX908-NEXT:    s_xor_b64 exec, exec, s[4:5]1815; GFX908-NEXT:    s_cbranch_execnz .LBB7_41816; GFX908-NEXT:  ; %bb.5: ; in Loop: Header=BB7_3 Depth=11817; GFX908-NEXT:    s_mov_b64 exec, s[12:13]1818; GFX908-NEXT:    s_waitcnt vmcnt(0)1819; GFX908-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[13:14]1820; GFX908-NEXT:    v_mov_b32_e32 v14, v11821; GFX908-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]1822; GFX908-NEXT:    v_mov_b32_e32 v13, v01823; GFX908-NEXT:    buffer_wbinvl11824; GFX908-NEXT:    s_andn2_b64 exec, exec, s[6:7]1825; GFX908-NEXT:    s_cbranch_execnz .LBB7_31826; GFX908-NEXT:  ; %bb.6: ; %atomicrmw.end1827; GFX908-NEXT:    s_or_b64 exec, exec, s[6:7]1828; GFX908-NEXT:    s_setpc_b64 s[30:31]1829;1830; GFX8-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__waterfall__amdgpu_no_fine_grained_memory:1831; GFX8:       ; %bb.0:1832; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1833; GFX8-NEXT:    v_mov_b32_e32 v8, v31834; GFX8-NEXT:    v_mov_b32_e32 v7, v21835; GFX8-NEXT:    v_mov_b32_e32 v10, v11836; GFX8-NEXT:    v_mov_b32_e32 v9, v01837; GFX8-NEXT:    s_mov_b64 s[6:7], exec1838; GFX8-NEXT:  .LBB7_1: ; =>This Inner Loop Header: Depth=11839; GFX8-NEXT:    v_readfirstlane_b32 s8, v91840; GFX8-NEXT:    v_readfirstlane_b32 s9, v101841; GFX8-NEXT:    v_readfirstlane_b32 s10, v71842; GFX8-NEXT:    v_readfirstlane_b32 s11, v81843; GFX8-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[9:10]1844; GFX8-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[7:8]1845; GFX8-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]1846; GFX8-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]1847; GFX8-NEXT:    s_nop 01848; GFX8-NEXT:    buffer_load_dwordx2 v[13:14], v4, s[8:11], 0 offen offset:20481849; GFX8-NEXT:    s_xor_b64 exec, exec, s[4:5]1850; GFX8-NEXT:    s_cbranch_execnz .LBB7_11851; GFX8-NEXT:  ; %bb.2:1852; GFX8-NEXT:    s_mov_b64 exec, s[6:7]1853; GFX8-NEXT:    v_max_f64 v[5:6], v[5:6], v[5:6]1854; GFX8-NEXT:    s_mov_b64 s[6:7], 01855; GFX8-NEXT:  .LBB7_3: ; %atomicrmw.start1856; GFX8-NEXT:    ; =>This Loop Header: Depth=11857; GFX8-NEXT:    ; Child Loop BB7_4 Depth 21858; GFX8-NEXT:    s_waitcnt vmcnt(0)1859; GFX8-NEXT:    v_max_f64 v[0:1], v[13:14], v[13:14]1860; GFX8-NEXT:    s_mov_b64 s[12:13], exec1861; GFX8-NEXT:    v_min_f64 v[11:12], v[0:1], v[5:6]1862; GFX8-NEXT:    v_mov_b32_e32 v0, v111863; GFX8-NEXT:    v_mov_b32_e32 v1, v121864; GFX8-NEXT:    v_mov_b32_e32 v2, v131865; GFX8-NEXT:    v_mov_b32_e32 v3, v141866; GFX8-NEXT:  .LBB7_4: ; Parent Loop BB7_3 Depth=11867; GFX8-NEXT:    ; => This Inner Loop Header: Depth=21868; GFX8-NEXT:    v_readfirstlane_b32 s8, v91869; GFX8-NEXT:    v_readfirstlane_b32 s9, v101870; GFX8-NEXT:    v_readfirstlane_b32 s10, v71871; GFX8-NEXT:    v_readfirstlane_b32 s11, v81872; GFX8-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[9:10]1873; GFX8-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[7:8]1874; GFX8-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]1875; GFX8-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]1876; GFX8-NEXT:    s_waitcnt vmcnt(0)1877; GFX8-NEXT:    buffer_atomic_cmpswap_x2 v[0:3], v4, s[8:11], 0 offen offset:2048 glc1878; GFX8-NEXT:    s_xor_b64 exec, exec, s[4:5]1879; GFX8-NEXT:    s_cbranch_execnz .LBB7_41880; GFX8-NEXT:  ; %bb.5: ; in Loop: Header=BB7_3 Depth=11881; GFX8-NEXT:    s_mov_b64 exec, s[12:13]1882; GFX8-NEXT:    s_waitcnt vmcnt(0)1883; GFX8-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[13:14]1884; GFX8-NEXT:    v_mov_b32_e32 v14, v11885; GFX8-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]1886; GFX8-NEXT:    v_mov_b32_e32 v13, v01887; GFX8-NEXT:    buffer_wbinvl11888; GFX8-NEXT:    s_andn2_b64 exec, exec, s[6:7]1889; GFX8-NEXT:    s_cbranch_execnz .LBB7_31890; GFX8-NEXT:  ; %bb.6: ; %atomicrmw.end1891; GFX8-NEXT:    s_or_b64 exec, exec, s[6:7]1892; GFX8-NEXT:    s_setpc_b64 s[30:31]1893;1894; GFX7-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__waterfall__amdgpu_no_fine_grained_memory:1895; GFX7:       ; %bb.0:1896; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1897; GFX7-NEXT:    s_mov_b64 s[6:7], exec1898; GFX7-NEXT:  .LBB7_1: ; =>This Inner Loop Header: Depth=11899; GFX7-NEXT:    v_readfirstlane_b32 s8, v01900; GFX7-NEXT:    v_readfirstlane_b32 s9, v11901; GFX7-NEXT:    v_readfirstlane_b32 s10, v21902; GFX7-NEXT:    v_readfirstlane_b32 s11, v31903; GFX7-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]1904; GFX7-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]1905; GFX7-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]1906; GFX7-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]1907; GFX7-NEXT:    s_waitcnt vmcnt(0)1908; GFX7-NEXT:    buffer_atomic_fmin_x2 v[5:6], v4, s[8:11], 0 offen offset:2048 glc1909; GFX7-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr31910; GFX7-NEXT:    ; implicit-def: $vgpr41911; GFX7-NEXT:    s_xor_b64 exec, exec, s[4:5]1912; GFX7-NEXT:    s_cbranch_execnz .LBB7_11913; GFX7-NEXT:  ; %bb.2:1914; GFX7-NEXT:    s_mov_b64 exec, s[6:7]1915; GFX7-NEXT:    s_waitcnt vmcnt(0)1916; GFX7-NEXT:    v_mov_b32_e32 v0, v51917; GFX7-NEXT:    v_mov_b32_e32 v1, v61918; GFX7-NEXT:    buffer_wbinvl11919; GFX7-NEXT:    s_setpc_b64 s[30:31]1920;1921; GFX6-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__waterfall__amdgpu_no_fine_grained_memory:1922; GFX6:       ; %bb.0:1923; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1924; GFX6-NEXT:    s_mov_b64 s[6:7], exec1925; GFX6-NEXT:  .LBB7_1: ; =>This Inner Loop Header: Depth=11926; GFX6-NEXT:    v_readfirstlane_b32 s8, v01927; GFX6-NEXT:    v_readfirstlane_b32 s9, v11928; GFX6-NEXT:    v_readfirstlane_b32 s10, v21929; GFX6-NEXT:    v_readfirstlane_b32 s11, v31930; GFX6-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]1931; GFX6-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]1932; GFX6-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]1933; GFX6-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]1934; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0)1935; GFX6-NEXT:    buffer_atomic_fmin_x2 v[5:6], v4, s[8:11], 0 offen offset:2048 glc1936; GFX6-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr31937; GFX6-NEXT:    ; implicit-def: $vgpr41938; GFX6-NEXT:    s_xor_b64 exec, exec, s[4:5]1939; GFX6-NEXT:    s_cbranch_execnz .LBB7_11940; GFX6-NEXT:  ; %bb.2:1941; GFX6-NEXT:    s_mov_b64 exec, s[6:7]1942; GFX6-NEXT:    s_waitcnt vmcnt(0)1943; GFX6-NEXT:    v_mov_b32_e32 v0, v51944; GFX6-NEXT:    v_mov_b32_e32 v1, v61945; GFX6-NEXT:    buffer_wbinvl11946; GFX6-NEXT:    s_waitcnt expcnt(0)1947; GFX6-NEXT:    s_setpc_b64 s[30:31]1948  %gep = getelementptr double, ptr addrspace(7) %ptr, i32 2561949  %result = atomicrmw fmin ptr addrspace(7) %gep, double %val syncscope("agent") seq_cst, !amdgpu.no.fine.grained.memory !01950  ret double %result1951}1952 1953define double @buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_remote_memory(ptr addrspace(7) inreg %ptr, double %val) #0 {1954; GFX12-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_remote_memory:1955; GFX12:       ; %bb.0:1956; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x01957; GFX12-NEXT:    s_wait_expcnt 0x01958; GFX12-NEXT:    s_wait_samplecnt 0x01959; GFX12-NEXT:    s_wait_bvhcnt 0x01960; GFX12-NEXT:    s_wait_kmcnt 0x01961; GFX12-NEXT:    v_mov_b32_e32 v2, s161962; GFX12-NEXT:    v_max_num_f64_e32 v[6:7], v[0:1], v[0:1]1963; GFX12-NEXT:    v_mov_b32_e32 v8, s161964; GFX12-NEXT:    s_mov_b32 s4, 01965; GFX12-NEXT:    buffer_load_b64 v[4:5], v2, s[0:3], null offen offset:20481966; GFX12-NEXT:  .LBB8_1: ; %atomicrmw.start1967; GFX12-NEXT:    ; =>This Inner Loop Header: Depth=11968; GFX12-NEXT:    s_wait_loadcnt 0x01969; GFX12-NEXT:    v_max_num_f64_e32 v[0:1], v[4:5], v[4:5]1970; GFX12-NEXT:    s_wait_storecnt 0x01971; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)1972; GFX12-NEXT:    v_min_num_f64_e32 v[2:3], v[0:1], v[6:7]1973; GFX12-NEXT:    v_mov_b32_e32 v0, v21974; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_2)1975; GFX12-NEXT:    v_dual_mov_b32 v1, v3 :: v_dual_mov_b32 v2, v41976; GFX12-NEXT:    v_mov_b32_e32 v3, v51977; GFX12-NEXT:    buffer_atomic_cmpswap_b64 v[0:3], v8, s[0:3], null offen offset:2048 th:TH_ATOMIC_RETURN1978; GFX12-NEXT:    s_wait_loadcnt 0x01979; GFX12-NEXT:    global_inv scope:SCOPE_DEV1980; GFX12-NEXT:    v_cmp_eq_u64_e32 vcc_lo, v[0:1], v[4:5]1981; GFX12-NEXT:    v_dual_mov_b32 v5, v1 :: v_dual_mov_b32 v4, v01982; GFX12-NEXT:    s_or_b32 s4, vcc_lo, s41983; GFX12-NEXT:    s_wait_alu depctr_sa_sdst(0)1984; GFX12-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s41985; GFX12-NEXT:    s_cbranch_execnz .LBB8_11986; GFX12-NEXT:  ; %bb.2: ; %atomicrmw.end1987; GFX12-NEXT:    s_or_b32 exec_lo, exec_lo, s41988; GFX12-NEXT:    s_wait_loadcnt 0x01989; GFX12-NEXT:    s_setpc_b64 s[30:31]1990;1991; GFX942-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_remote_memory:1992; GFX942:       ; %bb.0:1993; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1994; GFX942-NEXT:    v_mov_b32_e32 v2, s161995; GFX942-NEXT:    buffer_wbl2 sc11996; GFX942-NEXT:    buffer_atomic_min_f64 v[0:1], v2, s[0:3], 0 offen offset:2048 sc01997; GFX942-NEXT:    s_waitcnt vmcnt(0)1998; GFX942-NEXT:    buffer_inv sc11999; GFX942-NEXT:    s_setpc_b64 s[30:31]2000;2001; GFX11-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_remote_memory:2002; GFX11:       ; %bb.0:2003; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2004; GFX11-NEXT:    v_mov_b32_e32 v2, s162005; GFX11-NEXT:    v_max_f64 v[6:7], v[0:1], v[0:1]2006; GFX11-NEXT:    v_mov_b32_e32 v8, s162007; GFX11-NEXT:    s_mov_b32 s4, 02008; GFX11-NEXT:    buffer_load_b64 v[4:5], v2, s[0:3], 0 offen offset:20482009; GFX11-NEXT:  .LBB8_1: ; %atomicrmw.start2010; GFX11-NEXT:    ; =>This Inner Loop Header: Depth=12011; GFX11-NEXT:    s_waitcnt vmcnt(0)2012; GFX11-NEXT:    v_max_f64 v[0:1], v[4:5], v[4:5]2013; GFX11-NEXT:    s_waitcnt_vscnt null, 0x02014; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2015; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2016; GFX11-NEXT:    v_mov_b32_e32 v0, v22017; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2)2018; GFX11-NEXT:    v_dual_mov_b32 v1, v3 :: v_dual_mov_b32 v2, v42019; GFX11-NEXT:    v_mov_b32_e32 v3, v52020; GFX11-NEXT:    buffer_atomic_cmpswap_b64 v[0:3], v8, s[0:3], 0 offen offset:2048 glc2021; GFX11-NEXT:    s_waitcnt vmcnt(0)2022; GFX11-NEXT:    buffer_gl1_inv2023; GFX11-NEXT:    buffer_gl0_inv2024; GFX11-NEXT:    v_cmp_eq_u64_e32 vcc_lo, v[0:1], v[4:5]2025; GFX11-NEXT:    v_dual_mov_b32 v5, v1 :: v_dual_mov_b32 v4, v02026; GFX11-NEXT:    s_or_b32 s4, vcc_lo, s42027; GFX11-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)2028; GFX11-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s42029; GFX11-NEXT:    s_cbranch_execnz .LBB8_12030; GFX11-NEXT:  ; %bb.2: ; %atomicrmw.end2031; GFX11-NEXT:    s_or_b32 exec_lo, exec_lo, s42032; GFX11-NEXT:    s_setpc_b64 s[30:31]2033;2034; GFX10-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_remote_memory:2035; GFX10:       ; %bb.0:2036; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2037; GFX10-NEXT:    v_mov_b32_e32 v2, s202038; GFX10-NEXT:    v_max_f64 v[6:7], v[0:1], v[0:1]2039; GFX10-NEXT:    v_mov_b32_e32 v8, s202040; GFX10-NEXT:    s_mov_b32 s4, 02041; GFX10-NEXT:    buffer_load_dwordx2 v[4:5], v2, s[16:19], 0 offen offset:20482042; GFX10-NEXT:  .LBB8_1: ; %atomicrmw.start2043; GFX10-NEXT:    ; =>This Inner Loop Header: Depth=12044; GFX10-NEXT:    s_waitcnt vmcnt(0)2045; GFX10-NEXT:    v_max_f64 v[0:1], v[4:5], v[4:5]2046; GFX10-NEXT:    s_waitcnt_vscnt null, 0x02047; GFX10-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2048; GFX10-NEXT:    v_mov_b32_e32 v0, v22049; GFX10-NEXT:    v_mov_b32_e32 v1, v32050; GFX10-NEXT:    v_mov_b32_e32 v2, v42051; GFX10-NEXT:    v_mov_b32_e32 v3, v52052; GFX10-NEXT:    buffer_atomic_cmpswap_x2 v[0:3], v8, s[16:19], 0 offen offset:2048 glc2053; GFX10-NEXT:    s_waitcnt vmcnt(0)2054; GFX10-NEXT:    buffer_gl1_inv2055; GFX10-NEXT:    buffer_gl0_inv2056; GFX10-NEXT:    v_cmp_eq_u64_e32 vcc_lo, v[0:1], v[4:5]2057; GFX10-NEXT:    v_mov_b32_e32 v5, v12058; GFX10-NEXT:    v_mov_b32_e32 v4, v02059; GFX10-NEXT:    s_or_b32 s4, vcc_lo, s42060; GFX10-NEXT:    s_andn2_b32 exec_lo, exec_lo, s42061; GFX10-NEXT:    s_cbranch_execnz .LBB8_12062; GFX10-NEXT:  ; %bb.2: ; %atomicrmw.end2063; GFX10-NEXT:    s_or_b32 exec_lo, exec_lo, s42064; GFX10-NEXT:    s_setpc_b64 s[30:31]2065;2066; GFX90A-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_remote_memory:2067; GFX90A:       ; %bb.0:2068; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2069; GFX90A-NEXT:    v_mov_b32_e32 v2, s202070; GFX90A-NEXT:    buffer_load_dwordx2 v[4:5], v2, s[16:19], 0 offen offset:20482071; GFX90A-NEXT:    s_mov_b64 s[4:5], 02072; GFX90A-NEXT:    v_max_f64 v[6:7], v[0:1], v[0:1]2073; GFX90A-NEXT:    v_mov_b32_e32 v8, s202074; GFX90A-NEXT:  .LBB8_1: ; %atomicrmw.start2075; GFX90A-NEXT:    ; =>This Inner Loop Header: Depth=12076; GFX90A-NEXT:    s_waitcnt vmcnt(0)2077; GFX90A-NEXT:    v_max_f64 v[0:1], v[4:5], v[4:5]2078; GFX90A-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2079; GFX90A-NEXT:    v_pk_mov_b32 v[0:1], v[2:3], v[2:3] op_sel:[0,1]2080; GFX90A-NEXT:    v_pk_mov_b32 v[2:3], v[4:5], v[4:5] op_sel:[0,1]2081; GFX90A-NEXT:    buffer_atomic_cmpswap_x2 v[0:3], v8, s[16:19], 0 offen offset:2048 glc2082; GFX90A-NEXT:    s_waitcnt vmcnt(0)2083; GFX90A-NEXT:    buffer_wbinvl12084; GFX90A-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[4:5]2085; GFX90A-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]2086; GFX90A-NEXT:    v_pk_mov_b32 v[4:5], v[0:1], v[0:1] op_sel:[0,1]2087; GFX90A-NEXT:    s_andn2_b64 exec, exec, s[4:5]2088; GFX90A-NEXT:    s_cbranch_execnz .LBB8_12089; GFX90A-NEXT:  ; %bb.2: ; %atomicrmw.end2090; GFX90A-NEXT:    s_or_b64 exec, exec, s[4:5]2091; GFX90A-NEXT:    s_setpc_b64 s[30:31]2092;2093; GFX908-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_remote_memory:2094; GFX908:       ; %bb.0:2095; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2096; GFX908-NEXT:    v_mov_b32_e32 v2, s202097; GFX908-NEXT:    buffer_load_dwordx2 v[4:5], v2, s[16:19], 0 offen offset:20482098; GFX908-NEXT:    v_max_f64 v[6:7], v[0:1], v[0:1]2099; GFX908-NEXT:    s_mov_b64 s[4:5], 02100; GFX908-NEXT:    v_mov_b32_e32 v8, s202101; GFX908-NEXT:  .LBB8_1: ; %atomicrmw.start2102; GFX908-NEXT:    ; =>This Inner Loop Header: Depth=12103; GFX908-NEXT:    s_waitcnt vmcnt(0)2104; GFX908-NEXT:    v_max_f64 v[0:1], v[4:5], v[4:5]2105; GFX908-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2106; GFX908-NEXT:    v_mov_b32_e32 v0, v22107; GFX908-NEXT:    v_mov_b32_e32 v1, v32108; GFX908-NEXT:    v_mov_b32_e32 v2, v42109; GFX908-NEXT:    v_mov_b32_e32 v3, v52110; GFX908-NEXT:    buffer_atomic_cmpswap_x2 v[0:3], v8, s[16:19], 0 offen offset:2048 glc2111; GFX908-NEXT:    s_waitcnt vmcnt(0)2112; GFX908-NEXT:    buffer_wbinvl12113; GFX908-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[4:5]2114; GFX908-NEXT:    v_mov_b32_e32 v5, v12115; GFX908-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]2116; GFX908-NEXT:    v_mov_b32_e32 v4, v02117; GFX908-NEXT:    s_andn2_b64 exec, exec, s[4:5]2118; GFX908-NEXT:    s_cbranch_execnz .LBB8_12119; GFX908-NEXT:  ; %bb.2: ; %atomicrmw.end2120; GFX908-NEXT:    s_or_b64 exec, exec, s[4:5]2121; GFX908-NEXT:    s_setpc_b64 s[30:31]2122;2123; GFX8-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_remote_memory:2124; GFX8:       ; %bb.0:2125; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2126; GFX8-NEXT:    v_mov_b32_e32 v2, s202127; GFX8-NEXT:    buffer_load_dwordx2 v[4:5], v2, s[16:19], 0 offen offset:20482128; GFX8-NEXT:    v_max_f64 v[6:7], v[0:1], v[0:1]2129; GFX8-NEXT:    s_mov_b64 s[4:5], 02130; GFX8-NEXT:    v_mov_b32_e32 v8, s202131; GFX8-NEXT:  .LBB8_1: ; %atomicrmw.start2132; GFX8-NEXT:    ; =>This Inner Loop Header: Depth=12133; GFX8-NEXT:    s_waitcnt vmcnt(0)2134; GFX8-NEXT:    v_max_f64 v[0:1], v[4:5], v[4:5]2135; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2136; GFX8-NEXT:    v_mov_b32_e32 v0, v22137; GFX8-NEXT:    v_mov_b32_e32 v1, v32138; GFX8-NEXT:    v_mov_b32_e32 v2, v42139; GFX8-NEXT:    v_mov_b32_e32 v3, v52140; GFX8-NEXT:    buffer_atomic_cmpswap_x2 v[0:3], v8, s[16:19], 0 offen offset:2048 glc2141; GFX8-NEXT:    s_waitcnt vmcnt(0)2142; GFX8-NEXT:    buffer_wbinvl12143; GFX8-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[4:5]2144; GFX8-NEXT:    v_mov_b32_e32 v5, v12145; GFX8-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]2146; GFX8-NEXT:    v_mov_b32_e32 v4, v02147; GFX8-NEXT:    s_andn2_b64 exec, exec, s[4:5]2148; GFX8-NEXT:    s_cbranch_execnz .LBB8_12149; GFX8-NEXT:  ; %bb.2: ; %atomicrmw.end2150; GFX8-NEXT:    s_or_b64 exec, exec, s[4:5]2151; GFX8-NEXT:    s_setpc_b64 s[30:31]2152;2153; GFX7-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_remote_memory:2154; GFX7:       ; %bb.0:2155; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2156; GFX7-NEXT:    v_mov_b32_e32 v2, s202157; GFX7-NEXT:    buffer_load_dwordx2 v[4:5], v2, s[16:19], 0 offen offset:20482158; GFX7-NEXT:    v_max_f64 v[6:7], v[0:1], v[0:1]2159; GFX7-NEXT:    s_mov_b64 s[4:5], 02160; GFX7-NEXT:    v_mov_b32_e32 v8, s202161; GFX7-NEXT:  .LBB8_1: ; %atomicrmw.start2162; GFX7-NEXT:    ; =>This Inner Loop Header: Depth=12163; GFX7-NEXT:    s_waitcnt vmcnt(0)2164; GFX7-NEXT:    v_max_f64 v[0:1], v[4:5], v[4:5]2165; GFX7-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2166; GFX7-NEXT:    v_mov_b32_e32 v0, v22167; GFX7-NEXT:    v_mov_b32_e32 v1, v32168; GFX7-NEXT:    v_mov_b32_e32 v2, v42169; GFX7-NEXT:    v_mov_b32_e32 v3, v52170; GFX7-NEXT:    buffer_atomic_cmpswap_x2 v[0:3], v8, s[16:19], 0 offen offset:2048 glc2171; GFX7-NEXT:    s_waitcnt vmcnt(0)2172; GFX7-NEXT:    buffer_wbinvl12173; GFX7-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[4:5]2174; GFX7-NEXT:    v_mov_b32_e32 v5, v12175; GFX7-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]2176; GFX7-NEXT:    v_mov_b32_e32 v4, v02177; GFX7-NEXT:    s_andn2_b64 exec, exec, s[4:5]2178; GFX7-NEXT:    s_cbranch_execnz .LBB8_12179; GFX7-NEXT:  ; %bb.2: ; %atomicrmw.end2180; GFX7-NEXT:    s_or_b64 exec, exec, s[4:5]2181; GFX7-NEXT:    s_setpc_b64 s[30:31]2182;2183; GFX6-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_remote_memory:2184; GFX6:       ; %bb.0:2185; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2186; GFX6-NEXT:    v_mov_b32_e32 v2, s202187; GFX6-NEXT:    buffer_load_dwordx2 v[4:5], v2, s[16:19], 0 offen offset:20482188; GFX6-NEXT:    s_add_i32 s6, s20, 0x8002189; GFX6-NEXT:    v_max_f64 v[6:7], v[0:1], v[0:1]2190; GFX6-NEXT:    s_mov_b64 s[4:5], 02191; GFX6-NEXT:    v_mov_b32_e32 v8, s62192; GFX6-NEXT:  .LBB8_1: ; %atomicrmw.start2193; GFX6-NEXT:    ; =>This Inner Loop Header: Depth=12194; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0)2195; GFX6-NEXT:    v_max_f64 v[0:1], v[4:5], v[4:5]2196; GFX6-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2197; GFX6-NEXT:    v_mov_b32_e32 v0, v22198; GFX6-NEXT:    v_mov_b32_e32 v1, v32199; GFX6-NEXT:    v_mov_b32_e32 v2, v42200; GFX6-NEXT:    v_mov_b32_e32 v3, v52201; GFX6-NEXT:    buffer_atomic_cmpswap_x2 v[0:3], v8, s[16:19], 0 offen glc2202; GFX6-NEXT:    s_waitcnt vmcnt(0)2203; GFX6-NEXT:    buffer_wbinvl12204; GFX6-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[4:5]2205; GFX6-NEXT:    v_mov_b32_e32 v5, v12206; GFX6-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]2207; GFX6-NEXT:    v_mov_b32_e32 v4, v02208; GFX6-NEXT:    s_andn2_b64 exec, exec, s[4:5]2209; GFX6-NEXT:    s_cbranch_execnz .LBB8_12210; GFX6-NEXT:  ; %bb.2: ; %atomicrmw.end2211; GFX6-NEXT:    s_or_b64 exec, exec, s[4:5]2212; GFX6-NEXT:    s_waitcnt expcnt(0)2213; GFX6-NEXT:    s_setpc_b64 s[30:31]2214  %gep = getelementptr double, ptr addrspace(7) %ptr, i32 2562215  %result = atomicrmw fmin ptr addrspace(7) %gep, double %val syncscope("agent") seq_cst, !amdgpu.no.remote.memory !02216  ret double %result2217}2218 2219define double @buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory(ptr addrspace(7) inreg %ptr, double %val) #0 {2220; GFX12-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:2221; GFX12:       ; %bb.0:2222; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x02223; GFX12-NEXT:    s_wait_expcnt 0x02224; GFX12-NEXT:    s_wait_samplecnt 0x02225; GFX12-NEXT:    s_wait_bvhcnt 0x02226; GFX12-NEXT:    s_wait_kmcnt 0x02227; GFX12-NEXT:    v_mov_b32_e32 v2, s162228; GFX12-NEXT:    v_max_num_f64_e32 v[6:7], v[0:1], v[0:1]2229; GFX12-NEXT:    v_mov_b32_e32 v8, s162230; GFX12-NEXT:    s_mov_b32 s4, 02231; GFX12-NEXT:    buffer_load_b64 v[4:5], v2, s[0:3], null offen offset:20482232; GFX12-NEXT:  .LBB9_1: ; %atomicrmw.start2233; GFX12-NEXT:    ; =>This Inner Loop Header: Depth=12234; GFX12-NEXT:    s_wait_loadcnt 0x02235; GFX12-NEXT:    v_max_num_f64_e32 v[0:1], v[4:5], v[4:5]2236; GFX12-NEXT:    s_wait_storecnt 0x02237; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2238; GFX12-NEXT:    v_min_num_f64_e32 v[2:3], v[0:1], v[6:7]2239; GFX12-NEXT:    v_mov_b32_e32 v0, v22240; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_2)2241; GFX12-NEXT:    v_dual_mov_b32 v1, v3 :: v_dual_mov_b32 v2, v42242; GFX12-NEXT:    v_mov_b32_e32 v3, v52243; GFX12-NEXT:    buffer_atomic_cmpswap_b64 v[0:3], v8, s[0:3], null offen offset:2048 th:TH_ATOMIC_RETURN2244; GFX12-NEXT:    s_wait_loadcnt 0x02245; GFX12-NEXT:    global_inv scope:SCOPE_DEV2246; GFX12-NEXT:    v_cmp_eq_u64_e32 vcc_lo, v[0:1], v[4:5]2247; GFX12-NEXT:    v_dual_mov_b32 v5, v1 :: v_dual_mov_b32 v4, v02248; GFX12-NEXT:    s_or_b32 s4, vcc_lo, s42249; GFX12-NEXT:    s_wait_alu depctr_sa_sdst(0)2250; GFX12-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s42251; GFX12-NEXT:    s_cbranch_execnz .LBB9_12252; GFX12-NEXT:  ; %bb.2: ; %atomicrmw.end2253; GFX12-NEXT:    s_or_b32 exec_lo, exec_lo, s42254; GFX12-NEXT:    s_wait_loadcnt 0x02255; GFX12-NEXT:    s_setpc_b64 s[30:31]2256;2257; GFX942-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:2258; GFX942:       ; %bb.0:2259; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2260; GFX942-NEXT:    v_mov_b32_e32 v2, s162261; GFX942-NEXT:    buffer_wbl2 sc12262; GFX942-NEXT:    buffer_atomic_min_f64 v[0:1], v2, s[0:3], 0 offen offset:2048 sc02263; GFX942-NEXT:    s_waitcnt vmcnt(0)2264; GFX942-NEXT:    buffer_inv sc12265; GFX942-NEXT:    s_setpc_b64 s[30:31]2266;2267; GFX11-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:2268; GFX11:       ; %bb.0:2269; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2270; GFX11-NEXT:    v_mov_b32_e32 v2, s162271; GFX11-NEXT:    v_max_f64 v[6:7], v[0:1], v[0:1]2272; GFX11-NEXT:    v_mov_b32_e32 v8, s162273; GFX11-NEXT:    s_mov_b32 s4, 02274; GFX11-NEXT:    buffer_load_b64 v[4:5], v2, s[0:3], 0 offen offset:20482275; GFX11-NEXT:  .LBB9_1: ; %atomicrmw.start2276; GFX11-NEXT:    ; =>This Inner Loop Header: Depth=12277; GFX11-NEXT:    s_waitcnt vmcnt(0)2278; GFX11-NEXT:    v_max_f64 v[0:1], v[4:5], v[4:5]2279; GFX11-NEXT:    s_waitcnt_vscnt null, 0x02280; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2281; GFX11-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2282; GFX11-NEXT:    v_mov_b32_e32 v0, v22283; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2)2284; GFX11-NEXT:    v_dual_mov_b32 v1, v3 :: v_dual_mov_b32 v2, v42285; GFX11-NEXT:    v_mov_b32_e32 v3, v52286; GFX11-NEXT:    buffer_atomic_cmpswap_b64 v[0:3], v8, s[0:3], 0 offen offset:2048 glc2287; GFX11-NEXT:    s_waitcnt vmcnt(0)2288; GFX11-NEXT:    buffer_gl1_inv2289; GFX11-NEXT:    buffer_gl0_inv2290; GFX11-NEXT:    v_cmp_eq_u64_e32 vcc_lo, v[0:1], v[4:5]2291; GFX11-NEXT:    v_dual_mov_b32 v5, v1 :: v_dual_mov_b32 v4, v02292; GFX11-NEXT:    s_or_b32 s4, vcc_lo, s42293; GFX11-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)2294; GFX11-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s42295; GFX11-NEXT:    s_cbranch_execnz .LBB9_12296; GFX11-NEXT:  ; %bb.2: ; %atomicrmw.end2297; GFX11-NEXT:    s_or_b32 exec_lo, exec_lo, s42298; GFX11-NEXT:    s_setpc_b64 s[30:31]2299;2300; GFX10-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:2301; GFX10:       ; %bb.0:2302; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2303; GFX10-NEXT:    v_mov_b32_e32 v2, s202304; GFX10-NEXT:    s_waitcnt_vscnt null, 0x02305; GFX10-NEXT:    buffer_atomic_fmin_x2 v[0:1], v2, s[16:19], 0 offen offset:2048 glc2306; GFX10-NEXT:    s_waitcnt vmcnt(0)2307; GFX10-NEXT:    buffer_gl1_inv2308; GFX10-NEXT:    buffer_gl0_inv2309; GFX10-NEXT:    s_setpc_b64 s[30:31]2310;2311; GFX90A-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:2312; GFX90A:       ; %bb.0:2313; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2314; GFX90A-NEXT:    v_mov_b32_e32 v2, s202315; GFX90A-NEXT:    buffer_atomic_min_f64 v[0:1], v2, s[16:19], 0 offen offset:2048 glc2316; GFX90A-NEXT:    s_waitcnt vmcnt(0)2317; GFX90A-NEXT:    buffer_wbinvl12318; GFX90A-NEXT:    s_setpc_b64 s[30:31]2319;2320; GFX908-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:2321; GFX908:       ; %bb.0:2322; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2323; GFX908-NEXT:    v_mov_b32_e32 v2, s202324; GFX908-NEXT:    buffer_load_dwordx2 v[4:5], v2, s[16:19], 0 offen offset:20482325; GFX908-NEXT:    v_max_f64 v[6:7], v[0:1], v[0:1]2326; GFX908-NEXT:    s_mov_b64 s[4:5], 02327; GFX908-NEXT:    v_mov_b32_e32 v8, s202328; GFX908-NEXT:  .LBB9_1: ; %atomicrmw.start2329; GFX908-NEXT:    ; =>This Inner Loop Header: Depth=12330; GFX908-NEXT:    s_waitcnt vmcnt(0)2331; GFX908-NEXT:    v_max_f64 v[0:1], v[4:5], v[4:5]2332; GFX908-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2333; GFX908-NEXT:    v_mov_b32_e32 v0, v22334; GFX908-NEXT:    v_mov_b32_e32 v1, v32335; GFX908-NEXT:    v_mov_b32_e32 v2, v42336; GFX908-NEXT:    v_mov_b32_e32 v3, v52337; GFX908-NEXT:    buffer_atomic_cmpswap_x2 v[0:3], v8, s[16:19], 0 offen offset:2048 glc2338; GFX908-NEXT:    s_waitcnt vmcnt(0)2339; GFX908-NEXT:    buffer_wbinvl12340; GFX908-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[4:5]2341; GFX908-NEXT:    v_mov_b32_e32 v5, v12342; GFX908-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]2343; GFX908-NEXT:    v_mov_b32_e32 v4, v02344; GFX908-NEXT:    s_andn2_b64 exec, exec, s[4:5]2345; GFX908-NEXT:    s_cbranch_execnz .LBB9_12346; GFX908-NEXT:  ; %bb.2: ; %atomicrmw.end2347; GFX908-NEXT:    s_or_b64 exec, exec, s[4:5]2348; GFX908-NEXT:    s_setpc_b64 s[30:31]2349;2350; GFX8-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:2351; GFX8:       ; %bb.0:2352; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2353; GFX8-NEXT:    v_mov_b32_e32 v2, s202354; GFX8-NEXT:    buffer_load_dwordx2 v[4:5], v2, s[16:19], 0 offen offset:20482355; GFX8-NEXT:    v_max_f64 v[6:7], v[0:1], v[0:1]2356; GFX8-NEXT:    s_mov_b64 s[4:5], 02357; GFX8-NEXT:    v_mov_b32_e32 v8, s202358; GFX8-NEXT:  .LBB9_1: ; %atomicrmw.start2359; GFX8-NEXT:    ; =>This Inner Loop Header: Depth=12360; GFX8-NEXT:    s_waitcnt vmcnt(0)2361; GFX8-NEXT:    v_max_f64 v[0:1], v[4:5], v[4:5]2362; GFX8-NEXT:    v_min_f64 v[2:3], v[0:1], v[6:7]2363; GFX8-NEXT:    v_mov_b32_e32 v0, v22364; GFX8-NEXT:    v_mov_b32_e32 v1, v32365; GFX8-NEXT:    v_mov_b32_e32 v2, v42366; GFX8-NEXT:    v_mov_b32_e32 v3, v52367; GFX8-NEXT:    buffer_atomic_cmpswap_x2 v[0:3], v8, s[16:19], 0 offen offset:2048 glc2368; GFX8-NEXT:    s_waitcnt vmcnt(0)2369; GFX8-NEXT:    buffer_wbinvl12370; GFX8-NEXT:    v_cmp_eq_u64_e32 vcc, v[0:1], v[4:5]2371; GFX8-NEXT:    v_mov_b32_e32 v5, v12372; GFX8-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]2373; GFX8-NEXT:    v_mov_b32_e32 v4, v02374; GFX8-NEXT:    s_andn2_b64 exec, exec, s[4:5]2375; GFX8-NEXT:    s_cbranch_execnz .LBB9_12376; GFX8-NEXT:  ; %bb.2: ; %atomicrmw.end2377; GFX8-NEXT:    s_or_b64 exec, exec, s[4:5]2378; GFX8-NEXT:    s_setpc_b64 s[30:31]2379;2380; GFX7-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:2381; GFX7:       ; %bb.0:2382; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2383; GFX7-NEXT:    v_mov_b32_e32 v2, s202384; GFX7-NEXT:    buffer_atomic_fmin_x2 v[0:1], v2, s[16:19], 0 offen offset:2048 glc2385; GFX7-NEXT:    s_waitcnt vmcnt(0)2386; GFX7-NEXT:    buffer_wbinvl12387; GFX7-NEXT:    s_setpc_b64 s[30:31]2388;2389; GFX6-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f64__offset__amdgpu_no_fine_grained_memory__amdgpu_no_remote_memory:2390; GFX6:       ; %bb.0:2391; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2392; GFX6-NEXT:    v_mov_b32_e32 v2, s202393; GFX6-NEXT:    buffer_atomic_fmin_x2 v[0:1], v2, s[16:19], 0 offen offset:2048 glc2394; GFX6-NEXT:    s_waitcnt vmcnt(0)2395; GFX6-NEXT:    buffer_wbinvl12396; GFX6-NEXT:    s_waitcnt expcnt(0)2397; GFX6-NEXT:    s_setpc_b64 s[30:31]2398  %gep = getelementptr double, ptr addrspace(7) %ptr, i32 2562399  %result = atomicrmw fmin ptr addrspace(7) %gep, double %val syncscope("agent") seq_cst, !amdgpu.no.fine.grained.memory !0, !amdgpu.no.remote.memory !02400  ret double %result2401}2402 2403; --------------------------------------------------------------------2404; half2405; --------------------------------------------------------------------2406 2407define half @buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__amdgpu_no_fine_grained_memory(ptr addrspace(7) inreg %ptr, half %val) #0 {2408; GFX12-TRUE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__amdgpu_no_fine_grained_memory:2409; GFX12-TRUE16:       ; %bb.0:2410; GFX12-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x02411; GFX12-TRUE16-NEXT:    s_wait_expcnt 0x02412; GFX12-TRUE16-NEXT:    s_wait_samplecnt 0x02413; GFX12-TRUE16-NEXT:    s_wait_bvhcnt 0x02414; GFX12-TRUE16-NEXT:    s_wait_kmcnt 0x02415; GFX12-TRUE16-NEXT:    s_addk_co_i32 s16, 0x2002416; GFX12-TRUE16-NEXT:    v_max_num_f16_e32 v0.l, v0.l, v0.l2417; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2418; GFX12-TRUE16-NEXT:    s_and_b32 s4, s16, -42419; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2420; GFX12-TRUE16-NEXT:    v_mov_b32_e32 v5, s42421; GFX12-TRUE16-NEXT:    s_and_b32 s4, s16, 32422; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2423; GFX12-TRUE16-NEXT:    s_lshl_b32 s4, s4, 32424; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2425; GFX12-TRUE16-NEXT:    s_lshl_b32 s5, 0xffff, s42426; GFX12-TRUE16-NEXT:    buffer_load_b32 v2, v5, s[0:3], null offen2427; GFX12-TRUE16-NEXT:    s_not_b32 s6, s52428; GFX12-TRUE16-NEXT:    s_mov_b32 s5, 02429; GFX12-TRUE16-NEXT:  .LBB10_1: ; %atomicrmw.start2430; GFX12-TRUE16-NEXT:    ; =>This Inner Loop Header: Depth=12431; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x02432; GFX12-TRUE16-NEXT:    v_lshrrev_b32_e32 v1, s4, v22433; GFX12-TRUE16-NEXT:    v_mov_b16_e32 v1.h, 02434; GFX12-TRUE16-NEXT:    s_wait_storecnt 0x02435; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)2436; GFX12-TRUE16-NEXT:    v_max_num_f16_e32 v0.h, v1.l, v1.l2437; GFX12-TRUE16-NEXT:    v_min_num_f16_e32 v1.l, v0.h, v0.l2438; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_1)2439; GFX12-TRUE16-NEXT:    v_lshlrev_b32_e32 v1, s4, v12440; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2441; GFX12-TRUE16-NEXT:    v_and_or_b32 v1, v2, s6, v12442; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)2443; GFX12-TRUE16-NEXT:    v_dual_mov_b32 v4, v2 :: v_dual_mov_b32 v3, v12444; GFX12-TRUE16-NEXT:    buffer_atomic_cmpswap_b32 v[3:4], v5, s[0:3], null offen th:TH_ATOMIC_RETURN2445; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x02446; GFX12-TRUE16-NEXT:    global_inv scope:SCOPE_DEV2447; GFX12-TRUE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v3, v22448; GFX12-TRUE16-NEXT:    v_mov_b32_e32 v2, v32449; GFX12-TRUE16-NEXT:    s_or_b32 s5, vcc_lo, s52450; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2451; GFX12-TRUE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s52452; GFX12-TRUE16-NEXT:    s_cbranch_execnz .LBB10_12453; GFX12-TRUE16-NEXT:  ; %bb.2: ; %atomicrmw.end2454; GFX12-TRUE16-NEXT:    s_or_b32 exec_lo, exec_lo, s52455; GFX12-TRUE16-NEXT:    v_lshrrev_b32_e32 v0, s4, v32456; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x02457; GFX12-TRUE16-NEXT:    s_setpc_b64 s[30:31]2458;2459; GFX12-FAKE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__amdgpu_no_fine_grained_memory:2460; GFX12-FAKE16:       ; %bb.0:2461; GFX12-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x02462; GFX12-FAKE16-NEXT:    s_wait_expcnt 0x02463; GFX12-FAKE16-NEXT:    s_wait_samplecnt 0x02464; GFX12-FAKE16-NEXT:    s_wait_bvhcnt 0x02465; GFX12-FAKE16-NEXT:    s_wait_kmcnt 0x02466; GFX12-FAKE16-NEXT:    s_addk_co_i32 s16, 0x2002467; GFX12-FAKE16-NEXT:    v_max_num_f16_e32 v5, v0, v02468; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2469; GFX12-FAKE16-NEXT:    s_and_b32 s4, s16, -42470; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2471; GFX12-FAKE16-NEXT:    v_mov_b32_e32 v4, s42472; GFX12-FAKE16-NEXT:    s_and_b32 s4, s16, 32473; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2474; GFX12-FAKE16-NEXT:    s_lshl_b32 s4, s4, 32475; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2476; GFX12-FAKE16-NEXT:    s_lshl_b32 s5, 0xffff, s42477; GFX12-FAKE16-NEXT:    buffer_load_b32 v1, v4, s[0:3], null offen2478; GFX12-FAKE16-NEXT:    s_not_b32 s6, s52479; GFX12-FAKE16-NEXT:    s_mov_b32 s5, 02480; GFX12-FAKE16-NEXT:  .LBB10_1: ; %atomicrmw.start2481; GFX12-FAKE16-NEXT:    ; =>This Inner Loop Header: Depth=12482; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x02483; GFX12-FAKE16-NEXT:    v_lshrrev_b32_e32 v0, s4, v12484; GFX12-FAKE16-NEXT:    s_wait_storecnt 0x02485; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2486; GFX12-FAKE16-NEXT:    v_max_num_f16_e32 v0, v0, v02487; GFX12-FAKE16-NEXT:    v_min_num_f16_e32 v0, v0, v52488; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2489; GFX12-FAKE16-NEXT:    v_and_b32_e32 v0, 0xffff, v02490; GFX12-FAKE16-NEXT:    v_lshlrev_b32_e32 v0, s4, v02491; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2492; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2493; GFX12-FAKE16-NEXT:    v_and_or_b32 v0, v1, s6, v02494; GFX12-FAKE16-NEXT:    v_dual_mov_b32 v3, v1 :: v_dual_mov_b32 v2, v02495; GFX12-FAKE16-NEXT:    buffer_atomic_cmpswap_b32 v[2:3], v4, s[0:3], null offen th:TH_ATOMIC_RETURN2496; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x02497; GFX12-FAKE16-NEXT:    global_inv scope:SCOPE_DEV2498; GFX12-FAKE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v2, v12499; GFX12-FAKE16-NEXT:    v_mov_b32_e32 v1, v22500; GFX12-FAKE16-NEXT:    s_or_b32 s5, vcc_lo, s52501; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2502; GFX12-FAKE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s52503; GFX12-FAKE16-NEXT:    s_cbranch_execnz .LBB10_12504; GFX12-FAKE16-NEXT:  ; %bb.2: ; %atomicrmw.end2505; GFX12-FAKE16-NEXT:    s_or_b32 exec_lo, exec_lo, s52506; GFX12-FAKE16-NEXT:    v_lshrrev_b32_e32 v0, s4, v22507; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x02508; GFX12-FAKE16-NEXT:    s_setpc_b64 s[30:31]2509;2510; GFX942-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__amdgpu_no_fine_grained_memory:2511; GFX942:       ; %bb.0:2512; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2513; GFX942-NEXT:    s_addk_i32 s16, 0x2002514; GFX942-NEXT:    s_and_b32 s4, s16, -42515; GFX942-NEXT:    v_mov_b32_e32 v4, s42516; GFX942-NEXT:    buffer_load_dword v1, v4, s[0:3], 0 offen2517; GFX942-NEXT:    s_and_b32 s4, s16, 32518; GFX942-NEXT:    s_lshl_b32 s6, s4, 32519; GFX942-NEXT:    s_lshl_b32 s4, 0xffff, s62520; GFX942-NEXT:    s_not_b32 s7, s42521; GFX942-NEXT:    s_mov_b64 s[4:5], 02522; GFX942-NEXT:    v_max_f16_e32 v5, v0, v02523; GFX942-NEXT:  .LBB10_1: ; %atomicrmw.start2524; GFX942-NEXT:    ; =>This Inner Loop Header: Depth=12525; GFX942-NEXT:    s_waitcnt vmcnt(0)2526; GFX942-NEXT:    v_lshrrev_b32_e32 v0, s6, v12527; GFX942-NEXT:    v_max_f16_e32 v0, v0, v02528; GFX942-NEXT:    v_min_f16_e32 v0, v0, v52529; GFX942-NEXT:    v_lshlrev_b32_e32 v0, s6, v02530; GFX942-NEXT:    v_and_or_b32 v0, v1, s7, v02531; GFX942-NEXT:    v_mov_b64_e32 v[2:3], v[0:1]2532; GFX942-NEXT:    buffer_wbl2 sc12533; GFX942-NEXT:    buffer_atomic_cmpswap v[2:3], v4, s[0:3], 0 offen sc02534; GFX942-NEXT:    s_waitcnt vmcnt(0)2535; GFX942-NEXT:    buffer_inv sc12536; GFX942-NEXT:    v_cmp_eq_u32_e32 vcc, v2, v12537; GFX942-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]2538; GFX942-NEXT:    v_mov_b32_e32 v1, v22539; GFX942-NEXT:    s_andn2_b64 exec, exec, s[4:5]2540; GFX942-NEXT:    s_cbranch_execnz .LBB10_12541; GFX942-NEXT:  ; %bb.2: ; %atomicrmw.end2542; GFX942-NEXT:    s_or_b64 exec, exec, s[4:5]2543; GFX942-NEXT:    v_lshrrev_b32_e32 v0, s6, v22544; GFX942-NEXT:    s_setpc_b64 s[30:31]2545;2546; GFX11-TRUE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__amdgpu_no_fine_grained_memory:2547; GFX11-TRUE16:       ; %bb.0:2548; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2549; GFX11-TRUE16-NEXT:    s_addk_i32 s16, 0x2002550; GFX11-TRUE16-NEXT:    v_max_f16_e32 v0.l, v0.l, v0.l2551; GFX11-TRUE16-NEXT:    s_and_b32 s4, s16, -42552; GFX11-TRUE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1)2553; GFX11-TRUE16-NEXT:    v_mov_b32_e32 v5, s42554; GFX11-TRUE16-NEXT:    s_and_b32 s4, s16, 32555; GFX11-TRUE16-NEXT:    s_lshl_b32 s4, s4, 32556; GFX11-TRUE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)2557; GFX11-TRUE16-NEXT:    s_lshl_b32 s5, 0xffff, s42558; GFX11-TRUE16-NEXT:    buffer_load_b32 v2, v5, s[0:3], 0 offen2559; GFX11-TRUE16-NEXT:    s_not_b32 s6, s52560; GFX11-TRUE16-NEXT:    s_mov_b32 s5, 02561; GFX11-TRUE16-NEXT:  .LBB10_1: ; %atomicrmw.start2562; GFX11-TRUE16-NEXT:    ; =>This Inner Loop Header: Depth=12563; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0)2564; GFX11-TRUE16-NEXT:    v_lshrrev_b32_e32 v1, s4, v22565; GFX11-TRUE16-NEXT:    v_mov_b16_e32 v1.h, 02566; GFX11-TRUE16-NEXT:    s_waitcnt_vscnt null, 0x02567; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)2568; GFX11-TRUE16-NEXT:    v_max_f16_e32 v0.h, v1.l, v1.l2569; GFX11-TRUE16-NEXT:    v_min_f16_e32 v1.l, v0.h, v0.l2570; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2571; GFX11-TRUE16-NEXT:    v_lshlrev_b32_e32 v1, s4, v12572; GFX11-TRUE16-NEXT:    v_and_or_b32 v1, v2, s6, v12573; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)2574; GFX11-TRUE16-NEXT:    v_dual_mov_b32 v4, v2 :: v_dual_mov_b32 v3, v12575; GFX11-TRUE16-NEXT:    buffer_atomic_cmpswap_b32 v[3:4], v5, s[0:3], 0 offen glc2576; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0)2577; GFX11-TRUE16-NEXT:    buffer_gl1_inv2578; GFX11-TRUE16-NEXT:    buffer_gl0_inv2579; GFX11-TRUE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v3, v22580; GFX11-TRUE16-NEXT:    v_mov_b32_e32 v2, v32581; GFX11-TRUE16-NEXT:    s_or_b32 s5, vcc_lo, s52582; GFX11-TRUE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)2583; GFX11-TRUE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s52584; GFX11-TRUE16-NEXT:    s_cbranch_execnz .LBB10_12585; GFX11-TRUE16-NEXT:  ; %bb.2: ; %atomicrmw.end2586; GFX11-TRUE16-NEXT:    s_or_b32 exec_lo, exec_lo, s52587; GFX11-TRUE16-NEXT:    v_lshrrev_b32_e32 v0, s4, v32588; GFX11-TRUE16-NEXT:    s_setpc_b64 s[30:31]2589;2590; GFX11-FAKE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__amdgpu_no_fine_grained_memory:2591; GFX11-FAKE16:       ; %bb.0:2592; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2593; GFX11-FAKE16-NEXT:    s_addk_i32 s16, 0x2002594; GFX11-FAKE16-NEXT:    v_max_f16_e32 v5, v0, v02595; GFX11-FAKE16-NEXT:    s_and_b32 s4, s16, -42596; GFX11-FAKE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1)2597; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v4, s42598; GFX11-FAKE16-NEXT:    s_and_b32 s4, s16, 32599; GFX11-FAKE16-NEXT:    s_lshl_b32 s4, s4, 32600; GFX11-FAKE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)2601; GFX11-FAKE16-NEXT:    s_lshl_b32 s5, 0xffff, s42602; GFX11-FAKE16-NEXT:    buffer_load_b32 v1, v4, s[0:3], 0 offen2603; GFX11-FAKE16-NEXT:    s_not_b32 s6, s52604; GFX11-FAKE16-NEXT:    s_mov_b32 s5, 02605; GFX11-FAKE16-NEXT:    .p2align 62606; GFX11-FAKE16-NEXT:  .LBB10_1: ; %atomicrmw.start2607; GFX11-FAKE16-NEXT:    ; =>This Inner Loop Header: Depth=12608; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0)2609; GFX11-FAKE16-NEXT:    v_lshrrev_b32_e32 v0, s4, v12610; GFX11-FAKE16-NEXT:    s_waitcnt_vscnt null, 0x02611; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2612; GFX11-FAKE16-NEXT:    v_max_f16_e32 v0, v0, v02613; GFX11-FAKE16-NEXT:    v_min_f16_e32 v0, v0, v52614; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2615; GFX11-FAKE16-NEXT:    v_and_b32_e32 v0, 0xffff, v02616; GFX11-FAKE16-NEXT:    v_lshlrev_b32_e32 v0, s4, v02617; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2618; GFX11-FAKE16-NEXT:    v_and_or_b32 v0, v1, s6, v02619; GFX11-FAKE16-NEXT:    v_dual_mov_b32 v3, v1 :: v_dual_mov_b32 v2, v02620; GFX11-FAKE16-NEXT:    buffer_atomic_cmpswap_b32 v[2:3], v4, s[0:3], 0 offen glc2621; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0)2622; GFX11-FAKE16-NEXT:    buffer_gl1_inv2623; GFX11-FAKE16-NEXT:    buffer_gl0_inv2624; GFX11-FAKE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v2, v12625; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v1, v22626; GFX11-FAKE16-NEXT:    s_or_b32 s5, vcc_lo, s52627; GFX11-FAKE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)2628; GFX11-FAKE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s52629; GFX11-FAKE16-NEXT:    s_cbranch_execnz .LBB10_12630; GFX11-FAKE16-NEXT:  ; %bb.2: ; %atomicrmw.end2631; GFX11-FAKE16-NEXT:    s_or_b32 exec_lo, exec_lo, s52632; GFX11-FAKE16-NEXT:    v_lshrrev_b32_e32 v0, s4, v22633; GFX11-FAKE16-NEXT:    s_setpc_b64 s[30:31]2634;2635; GFX10-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__amdgpu_no_fine_grained_memory:2636; GFX10:       ; %bb.0:2637; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2638; GFX10-NEXT:    s_addk_i32 s20, 0x2002639; GFX10-NEXT:    v_max_f16_e32 v5, v0, v02640; GFX10-NEXT:    s_and_b32 s4, s20, -42641; GFX10-NEXT:    v_mov_b32_e32 v4, s42642; GFX10-NEXT:    s_and_b32 s4, s20, 32643; GFX10-NEXT:    s_lshl_b32 s4, s4, 32644; GFX10-NEXT:    s_lshl_b32 s5, 0xffff, s42645; GFX10-NEXT:    buffer_load_dword v1, v4, s[16:19], 0 offen2646; GFX10-NEXT:    s_not_b32 s6, s52647; GFX10-NEXT:    s_mov_b32 s5, 02648; GFX10-NEXT:  .LBB10_1: ; %atomicrmw.start2649; GFX10-NEXT:    ; =>This Inner Loop Header: Depth=12650; GFX10-NEXT:    s_waitcnt vmcnt(0)2651; GFX10-NEXT:    v_lshrrev_b32_e32 v0, s4, v12652; GFX10-NEXT:    s_waitcnt_vscnt null, 0x02653; GFX10-NEXT:    v_max_f16_e32 v0, v0, v02654; GFX10-NEXT:    v_min_f16_e32 v0, v0, v52655; GFX10-NEXT:    v_lshlrev_b32_sdwa v0, s4, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_02656; GFX10-NEXT:    v_and_or_b32 v0, v1, s6, v02657; GFX10-NEXT:    v_mov_b32_e32 v3, v12658; GFX10-NEXT:    v_mov_b32_e32 v2, v02659; GFX10-NEXT:    buffer_atomic_cmpswap v[2:3], v4, s[16:19], 0 offen glc2660; GFX10-NEXT:    s_waitcnt vmcnt(0)2661; GFX10-NEXT:    buffer_gl1_inv2662; GFX10-NEXT:    buffer_gl0_inv2663; GFX10-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v2, v12664; GFX10-NEXT:    v_mov_b32_e32 v1, v22665; GFX10-NEXT:    s_or_b32 s5, vcc_lo, s52666; GFX10-NEXT:    s_andn2_b32 exec_lo, exec_lo, s52667; GFX10-NEXT:    s_cbranch_execnz .LBB10_12668; GFX10-NEXT:  ; %bb.2: ; %atomicrmw.end2669; GFX10-NEXT:    s_or_b32 exec_lo, exec_lo, s52670; GFX10-NEXT:    v_lshrrev_b32_e32 v0, s4, v22671; GFX10-NEXT:    s_setpc_b64 s[30:31]2672;2673; GFX90A-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__amdgpu_no_fine_grained_memory:2674; GFX90A:       ; %bb.0:2675; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2676; GFX90A-NEXT:    s_addk_i32 s20, 0x2002677; GFX90A-NEXT:    s_and_b32 s4, s20, -42678; GFX90A-NEXT:    v_mov_b32_e32 v4, s42679; GFX90A-NEXT:    buffer_load_dword v1, v4, s[16:19], 0 offen2680; GFX90A-NEXT:    s_and_b32 s4, s20, 32681; GFX90A-NEXT:    s_lshl_b32 s6, s4, 32682; GFX90A-NEXT:    s_lshl_b32 s4, 0xffff, s62683; GFX90A-NEXT:    s_not_b32 s7, s42684; GFX90A-NEXT:    s_mov_b64 s[4:5], 02685; GFX90A-NEXT:    v_max_f16_e32 v5, v0, v02686; GFX90A-NEXT:  .LBB10_1: ; %atomicrmw.start2687; GFX90A-NEXT:    ; =>This Inner Loop Header: Depth=12688; GFX90A-NEXT:    s_waitcnt vmcnt(0)2689; GFX90A-NEXT:    v_lshrrev_b32_e32 v0, s6, v12690; GFX90A-NEXT:    v_max_f16_e32 v0, v0, v02691; GFX90A-NEXT:    v_min_f16_e32 v0, v0, v52692; GFX90A-NEXT:    v_lshlrev_b32_e32 v0, s6, v02693; GFX90A-NEXT:    v_and_or_b32 v0, v1, s7, v02694; GFX90A-NEXT:    v_pk_mov_b32 v[2:3], v[0:1], v[0:1] op_sel:[0,1]2695; GFX90A-NEXT:    buffer_atomic_cmpswap v[2:3], v4, s[16:19], 0 offen glc2696; GFX90A-NEXT:    s_waitcnt vmcnt(0)2697; GFX90A-NEXT:    buffer_wbinvl12698; GFX90A-NEXT:    v_cmp_eq_u32_e32 vcc, v2, v12699; GFX90A-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]2700; GFX90A-NEXT:    v_mov_b32_e32 v1, v22701; GFX90A-NEXT:    s_andn2_b64 exec, exec, s[4:5]2702; GFX90A-NEXT:    s_cbranch_execnz .LBB10_12703; GFX90A-NEXT:  ; %bb.2: ; %atomicrmw.end2704; GFX90A-NEXT:    s_or_b64 exec, exec, s[4:5]2705; GFX90A-NEXT:    v_lshrrev_b32_e32 v0, s6, v22706; GFX90A-NEXT:    s_setpc_b64 s[30:31]2707;2708; GFX908-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__amdgpu_no_fine_grained_memory:2709; GFX908:       ; %bb.0:2710; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2711; GFX908-NEXT:    s_addk_i32 s20, 0x2002712; GFX908-NEXT:    s_and_b32 s4, s20, -42713; GFX908-NEXT:    v_mov_b32_e32 v4, s42714; GFX908-NEXT:    buffer_load_dword v1, v4, s[16:19], 0 offen2715; GFX908-NEXT:    s_and_b32 s4, s20, 32716; GFX908-NEXT:    s_lshl_b32 s6, s4, 32717; GFX908-NEXT:    s_lshl_b32 s4, 0xffff, s62718; GFX908-NEXT:    s_not_b32 s7, s42719; GFX908-NEXT:    s_mov_b64 s[4:5], 02720; GFX908-NEXT:    v_max_f16_e32 v5, v0, v02721; GFX908-NEXT:  .LBB10_1: ; %atomicrmw.start2722; GFX908-NEXT:    ; =>This Inner Loop Header: Depth=12723; GFX908-NEXT:    s_waitcnt vmcnt(0)2724; GFX908-NEXT:    v_lshrrev_b32_e32 v0, s6, v12725; GFX908-NEXT:    v_max_f16_e32 v0, v0, v02726; GFX908-NEXT:    v_min_f16_e32 v0, v0, v52727; GFX908-NEXT:    v_lshlrev_b32_e32 v0, s6, v02728; GFX908-NEXT:    v_and_or_b32 v0, v1, s7, v02729; GFX908-NEXT:    v_mov_b32_e32 v3, v12730; GFX908-NEXT:    v_mov_b32_e32 v2, v02731; GFX908-NEXT:    buffer_atomic_cmpswap v[2:3], v4, s[16:19], 0 offen glc2732; GFX908-NEXT:    s_waitcnt vmcnt(0)2733; GFX908-NEXT:    buffer_wbinvl12734; GFX908-NEXT:    v_cmp_eq_u32_e32 vcc, v2, v12735; GFX908-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]2736; GFX908-NEXT:    v_mov_b32_e32 v1, v22737; GFX908-NEXT:    s_andn2_b64 exec, exec, s[4:5]2738; GFX908-NEXT:    s_cbranch_execnz .LBB10_12739; GFX908-NEXT:  ; %bb.2: ; %atomicrmw.end2740; GFX908-NEXT:    s_or_b64 exec, exec, s[4:5]2741; GFX908-NEXT:    v_lshrrev_b32_e32 v0, s6, v22742; GFX908-NEXT:    s_setpc_b64 s[30:31]2743;2744; GFX8-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__amdgpu_no_fine_grained_memory:2745; GFX8:       ; %bb.0:2746; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2747; GFX8-NEXT:    s_addk_i32 s20, 0x2002748; GFX8-NEXT:    s_and_b32 s4, s20, -42749; GFX8-NEXT:    v_mov_b32_e32 v4, s42750; GFX8-NEXT:    buffer_load_dword v1, v4, s[16:19], 0 offen2751; GFX8-NEXT:    s_and_b32 s4, s20, 32752; GFX8-NEXT:    s_lshl_b32 s6, s4, 32753; GFX8-NEXT:    s_lshl_b32 s4, 0xffff, s62754; GFX8-NEXT:    s_not_b32 s7, s42755; GFX8-NEXT:    s_mov_b64 s[4:5], 02756; GFX8-NEXT:    v_max_f16_e32 v5, v0, v02757; GFX8-NEXT:  .LBB10_1: ; %atomicrmw.start2758; GFX8-NEXT:    ; =>This Inner Loop Header: Depth=12759; GFX8-NEXT:    s_waitcnt vmcnt(0)2760; GFX8-NEXT:    v_lshrrev_b32_e32 v0, s6, v12761; GFX8-NEXT:    v_max_f16_e32 v0, v0, v02762; GFX8-NEXT:    v_min_f16_e32 v0, v0, v52763; GFX8-NEXT:    v_and_b32_e32 v2, s7, v12764; GFX8-NEXT:    v_lshlrev_b32_e32 v0, s6, v02765; GFX8-NEXT:    v_or_b32_e32 v0, v2, v02766; GFX8-NEXT:    v_mov_b32_e32 v3, v12767; GFX8-NEXT:    v_mov_b32_e32 v2, v02768; GFX8-NEXT:    buffer_atomic_cmpswap v[2:3], v4, s[16:19], 0 offen glc2769; GFX8-NEXT:    s_waitcnt vmcnt(0)2770; GFX8-NEXT:    buffer_wbinvl12771; GFX8-NEXT:    v_cmp_eq_u32_e32 vcc, v2, v12772; GFX8-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]2773; GFX8-NEXT:    v_mov_b32_e32 v1, v22774; GFX8-NEXT:    s_andn2_b64 exec, exec, s[4:5]2775; GFX8-NEXT:    s_cbranch_execnz .LBB10_12776; GFX8-NEXT:  ; %bb.2: ; %atomicrmw.end2777; GFX8-NEXT:    s_or_b64 exec, exec, s[4:5]2778; GFX8-NEXT:    v_lshrrev_b32_e32 v0, s6, v22779; GFX8-NEXT:    s_setpc_b64 s[30:31]2780;2781; GFX7-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__amdgpu_no_fine_grained_memory:2782; GFX7:       ; %bb.0:2783; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2784; GFX7-NEXT:    s_addk_i32 s20, 0x2002785; GFX7-NEXT:    s_and_b32 s4, s20, -42786; GFX7-NEXT:    v_mov_b32_e32 v4, s42787; GFX7-NEXT:    buffer_load_dword v1, v4, s[16:19], 0 offen2788; GFX7-NEXT:    v_cvt_f16_f32_e32 v0, v02789; GFX7-NEXT:    s_and_b32 s4, s20, 32790; GFX7-NEXT:    s_lshl_b32 s6, s4, 32791; GFX7-NEXT:    s_lshl_b32 s4, 0xffff, s62792; GFX7-NEXT:    v_cvt_f32_f16_e32 v5, v02793; GFX7-NEXT:    s_not_b32 s7, s42794; GFX7-NEXT:    s_mov_b64 s[4:5], 02795; GFX7-NEXT:  .LBB10_1: ; %atomicrmw.start2796; GFX7-NEXT:    ; =>This Inner Loop Header: Depth=12797; GFX7-NEXT:    s_waitcnt vmcnt(0)2798; GFX7-NEXT:    v_lshrrev_b32_e32 v0, s6, v12799; GFX7-NEXT:    v_cvt_f32_f16_e32 v0, v02800; GFX7-NEXT:    v_and_b32_e32 v2, s7, v12801; GFX7-NEXT:    v_min_f32_e32 v0, v0, v52802; GFX7-NEXT:    v_cvt_f16_f32_e32 v0, v02803; GFX7-NEXT:    v_lshlrev_b32_e32 v0, s6, v02804; GFX7-NEXT:    v_or_b32_e32 v0, v2, v02805; GFX7-NEXT:    v_mov_b32_e32 v3, v12806; GFX7-NEXT:    v_mov_b32_e32 v2, v02807; GFX7-NEXT:    buffer_atomic_cmpswap v[2:3], v4, s[16:19], 0 offen glc2808; GFX7-NEXT:    s_waitcnt vmcnt(0)2809; GFX7-NEXT:    buffer_wbinvl12810; GFX7-NEXT:    v_cmp_eq_u32_e32 vcc, v2, v12811; GFX7-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]2812; GFX7-NEXT:    v_mov_b32_e32 v1, v22813; GFX7-NEXT:    s_andn2_b64 exec, exec, s[4:5]2814; GFX7-NEXT:    s_cbranch_execnz .LBB10_12815; GFX7-NEXT:  ; %bb.2: ; %atomicrmw.end2816; GFX7-NEXT:    s_or_b64 exec, exec, s[4:5]2817; GFX7-NEXT:    v_lshrrev_b32_e32 v0, s6, v22818; GFX7-NEXT:    v_cvt_f32_f16_e32 v0, v02819; GFX7-NEXT:    s_setpc_b64 s[30:31]2820;2821; GFX6-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__amdgpu_no_fine_grained_memory:2822; GFX6:       ; %bb.0:2823; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2824; GFX6-NEXT:    s_addk_i32 s20, 0x2002825; GFX6-NEXT:    s_and_b32 s4, s20, -42826; GFX6-NEXT:    v_mov_b32_e32 v4, s42827; GFX6-NEXT:    buffer_load_dword v1, v4, s[16:19], 0 offen2828; GFX6-NEXT:    v_cvt_f16_f32_e32 v0, v02829; GFX6-NEXT:    s_and_b32 s4, s20, 32830; GFX6-NEXT:    s_lshl_b32 s6, s4, 32831; GFX6-NEXT:    s_lshl_b32 s4, 0xffff, s62832; GFX6-NEXT:    v_cvt_f32_f16_e32 v5, v02833; GFX6-NEXT:    s_not_b32 s7, s42834; GFX6-NEXT:    s_mov_b64 s[4:5], 02835; GFX6-NEXT:  .LBB10_1: ; %atomicrmw.start2836; GFX6-NEXT:    ; =>This Inner Loop Header: Depth=12837; GFX6-NEXT:    s_waitcnt vmcnt(0)2838; GFX6-NEXT:    v_lshrrev_b32_e32 v0, s6, v12839; GFX6-NEXT:    v_cvt_f32_f16_e32 v0, v02840; GFX6-NEXT:    s_waitcnt expcnt(0)2841; GFX6-NEXT:    v_and_b32_e32 v2, s7, v12842; GFX6-NEXT:    v_min_f32_e32 v0, v0, v52843; GFX6-NEXT:    v_cvt_f16_f32_e32 v0, v02844; GFX6-NEXT:    v_lshlrev_b32_e32 v0, s6, v02845; GFX6-NEXT:    v_or_b32_e32 v0, v2, v02846; GFX6-NEXT:    v_mov_b32_e32 v3, v12847; GFX6-NEXT:    v_mov_b32_e32 v2, v02848; GFX6-NEXT:    buffer_atomic_cmpswap v[2:3], v4, s[16:19], 0 offen glc2849; GFX6-NEXT:    s_waitcnt vmcnt(0)2850; GFX6-NEXT:    buffer_wbinvl12851; GFX6-NEXT:    v_cmp_eq_u32_e32 vcc, v2, v12852; GFX6-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]2853; GFX6-NEXT:    v_mov_b32_e32 v1, v22854; GFX6-NEXT:    s_andn2_b64 exec, exec, s[4:5]2855; GFX6-NEXT:    s_cbranch_execnz .LBB10_12856; GFX6-NEXT:  ; %bb.2: ; %atomicrmw.end2857; GFX6-NEXT:    s_or_b64 exec, exec, s[4:5]2858; GFX6-NEXT:    v_lshrrev_b32_e32 v0, s6, v22859; GFX6-NEXT:    v_cvt_f32_f16_e32 v0, v02860; GFX6-NEXT:    s_waitcnt expcnt(0)2861; GFX6-NEXT:    s_setpc_b64 s[30:31]2862  %gep = getelementptr half, ptr addrspace(7) %ptr, i32 2562863  %result = atomicrmw fmin ptr addrspace(7) %gep, half %val syncscope("agent") seq_cst, !amdgpu.no.fine.grained.memory !02864  ret half %result2865}2866 2867define void @buffer_fat_ptr_agent_atomic_fmin_noret_f16__offset__amdgpu_no_fine_grained_memory(ptr addrspace(7) inreg %ptr, half %val) #0 {2868; GFX12-TRUE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f16__offset__amdgpu_no_fine_grained_memory:2869; GFX12-TRUE16:       ; %bb.0:2870; GFX12-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x02871; GFX12-TRUE16-NEXT:    s_wait_expcnt 0x02872; GFX12-TRUE16-NEXT:    s_wait_samplecnt 0x02873; GFX12-TRUE16-NEXT:    s_wait_bvhcnt 0x02874; GFX12-TRUE16-NEXT:    s_wait_kmcnt 0x02875; GFX12-TRUE16-NEXT:    s_addk_co_i32 s16, 0x2002876; GFX12-TRUE16-NEXT:    v_max_num_f16_e32 v0.l, v0.l, v0.l2877; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2878; GFX12-TRUE16-NEXT:    s_and_b32 s4, s16, -42879; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2880; GFX12-TRUE16-NEXT:    v_mov_b32_e32 v3, s42881; GFX12-TRUE16-NEXT:    s_and_b32 s4, s16, 32882; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2883; GFX12-TRUE16-NEXT:    s_lshl_b32 s4, s4, 32884; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2885; GFX12-TRUE16-NEXT:    s_lshl_b32 s5, 0xffff, s42886; GFX12-TRUE16-NEXT:    buffer_load_b32 v2, v3, s[0:3], null offen2887; GFX12-TRUE16-NEXT:    s_not_b32 s6, s52888; GFX12-TRUE16-NEXT:    s_mov_b32 s5, 02889; GFX12-TRUE16-NEXT:  .LBB11_1: ; %atomicrmw.start2890; GFX12-TRUE16-NEXT:    ; =>This Inner Loop Header: Depth=12891; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x02892; GFX12-TRUE16-NEXT:    v_lshrrev_b32_e32 v1, s4, v22893; GFX12-TRUE16-NEXT:    v_mov_b16_e32 v1.h, 02894; GFX12-TRUE16-NEXT:    s_wait_storecnt 0x02895; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)2896; GFX12-TRUE16-NEXT:    v_max_num_f16_e32 v0.h, v1.l, v1.l2897; GFX12-TRUE16-NEXT:    v_min_num_f16_e32 v1.l, v0.h, v0.l2898; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_1)2899; GFX12-TRUE16-NEXT:    v_lshlrev_b32_e32 v1, s4, v12900; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2901; GFX12-TRUE16-NEXT:    v_and_or_b32 v1, v2, s6, v12902; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)2903; GFX12-TRUE16-NEXT:    v_dual_mov_b32 v5, v2 :: v_dual_mov_b32 v4, v12904; GFX12-TRUE16-NEXT:    buffer_atomic_cmpswap_b32 v[4:5], v3, s[0:3], null offen th:TH_ATOMIC_RETURN2905; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x02906; GFX12-TRUE16-NEXT:    global_inv scope:SCOPE_DEV2907; GFX12-TRUE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v4, v22908; GFX12-TRUE16-NEXT:    v_mov_b32_e32 v2, v42909; GFX12-TRUE16-NEXT:    s_or_b32 s5, vcc_lo, s52910; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2911; GFX12-TRUE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s52912; GFX12-TRUE16-NEXT:    s_cbranch_execnz .LBB11_12913; GFX12-TRUE16-NEXT:  ; %bb.2: ; %atomicrmw.end2914; GFX12-TRUE16-NEXT:    s_or_b32 exec_lo, exec_lo, s52915; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x02916; GFX12-TRUE16-NEXT:    s_setpc_b64 s[30:31]2917;2918; GFX12-FAKE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f16__offset__amdgpu_no_fine_grained_memory:2919; GFX12-FAKE16:       ; %bb.0:2920; GFX12-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x02921; GFX12-FAKE16-NEXT:    s_wait_expcnt 0x02922; GFX12-FAKE16-NEXT:    s_wait_samplecnt 0x02923; GFX12-FAKE16-NEXT:    s_wait_bvhcnt 0x02924; GFX12-FAKE16-NEXT:    s_wait_kmcnt 0x02925; GFX12-FAKE16-NEXT:    s_addk_co_i32 s16, 0x2002926; GFX12-FAKE16-NEXT:    v_max_num_f16_e32 v3, v0, v02927; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2928; GFX12-FAKE16-NEXT:    s_and_b32 s4, s16, -42929; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2930; GFX12-FAKE16-NEXT:    v_mov_b32_e32 v2, s42931; GFX12-FAKE16-NEXT:    s_and_b32 s4, s16, 32932; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2933; GFX12-FAKE16-NEXT:    s_lshl_b32 s4, s4, 32934; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2935; GFX12-FAKE16-NEXT:    s_lshl_b32 s5, 0xffff, s42936; GFX12-FAKE16-NEXT:    buffer_load_b32 v1, v2, s[0:3], null offen2937; GFX12-FAKE16-NEXT:    s_not_b32 s6, s52938; GFX12-FAKE16-NEXT:    s_mov_b32 s5, 02939; GFX12-FAKE16-NEXT:  .LBB11_1: ; %atomicrmw.start2940; GFX12-FAKE16-NEXT:    ; =>This Inner Loop Header: Depth=12941; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x02942; GFX12-FAKE16-NEXT:    v_lshrrev_b32_e32 v0, s4, v12943; GFX12-FAKE16-NEXT:    s_wait_storecnt 0x02944; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2945; GFX12-FAKE16-NEXT:    v_max_num_f16_e32 v0, v0, v02946; GFX12-FAKE16-NEXT:    v_min_num_f16_e32 v0, v0, v32947; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2948; GFX12-FAKE16-NEXT:    v_and_b32_e32 v0, 0xffff, v02949; GFX12-FAKE16-NEXT:    v_lshlrev_b32_e32 v0, s4, v02950; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2951; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)2952; GFX12-FAKE16-NEXT:    v_and_or_b32 v0, v1, s6, v02953; GFX12-FAKE16-NEXT:    v_dual_mov_b32 v5, v1 :: v_dual_mov_b32 v4, v02954; GFX12-FAKE16-NEXT:    buffer_atomic_cmpswap_b32 v[4:5], v2, s[0:3], null offen th:TH_ATOMIC_RETURN2955; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x02956; GFX12-FAKE16-NEXT:    global_inv scope:SCOPE_DEV2957; GFX12-FAKE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v4, v12958; GFX12-FAKE16-NEXT:    v_mov_b32_e32 v1, v42959; GFX12-FAKE16-NEXT:    s_or_b32 s5, vcc_lo, s52960; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)2961; GFX12-FAKE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s52962; GFX12-FAKE16-NEXT:    s_cbranch_execnz .LBB11_12963; GFX12-FAKE16-NEXT:  ; %bb.2: ; %atomicrmw.end2964; GFX12-FAKE16-NEXT:    s_or_b32 exec_lo, exec_lo, s52965; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x02966; GFX12-FAKE16-NEXT:    s_setpc_b64 s[30:31]2967;2968; GFX942-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f16__offset__amdgpu_no_fine_grained_memory:2969; GFX942:       ; %bb.0:2970; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2971; GFX942-NEXT:    s_addk_i32 s16, 0x2002972; GFX942-NEXT:    s_and_b32 s4, s16, -42973; GFX942-NEXT:    v_mov_b32_e32 v2, s42974; GFX942-NEXT:    buffer_load_dword v1, v2, s[0:3], 0 offen2975; GFX942-NEXT:    s_and_b32 s4, s16, 32976; GFX942-NEXT:    s_lshl_b32 s6, s4, 32977; GFX942-NEXT:    s_lshl_b32 s4, 0xffff, s62978; GFX942-NEXT:    s_not_b32 s7, s42979; GFX942-NEXT:    s_mov_b64 s[4:5], 02980; GFX942-NEXT:    v_max_f16_e32 v3, v0, v02981; GFX942-NEXT:  .LBB11_1: ; %atomicrmw.start2982; GFX942-NEXT:    ; =>This Inner Loop Header: Depth=12983; GFX942-NEXT:    s_waitcnt vmcnt(0)2984; GFX942-NEXT:    v_lshrrev_b32_e32 v0, s6, v12985; GFX942-NEXT:    v_max_f16_e32 v0, v0, v02986; GFX942-NEXT:    v_min_f16_e32 v0, v0, v32987; GFX942-NEXT:    v_lshlrev_b32_e32 v0, s6, v02988; GFX942-NEXT:    v_and_or_b32 v0, v1, s7, v02989; GFX942-NEXT:    v_mov_b64_e32 v[4:5], v[0:1]2990; GFX942-NEXT:    buffer_wbl2 sc12991; GFX942-NEXT:    buffer_atomic_cmpswap v[4:5], v2, s[0:3], 0 offen sc02992; GFX942-NEXT:    s_waitcnt vmcnt(0)2993; GFX942-NEXT:    buffer_inv sc12994; GFX942-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v12995; GFX942-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]2996; GFX942-NEXT:    v_mov_b32_e32 v1, v42997; GFX942-NEXT:    s_andn2_b64 exec, exec, s[4:5]2998; GFX942-NEXT:    s_cbranch_execnz .LBB11_12999; GFX942-NEXT:  ; %bb.2: ; %atomicrmw.end3000; GFX942-NEXT:    s_or_b64 exec, exec, s[4:5]3001; GFX942-NEXT:    s_setpc_b64 s[30:31]3002;3003; GFX11-TRUE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f16__offset__amdgpu_no_fine_grained_memory:3004; GFX11-TRUE16:       ; %bb.0:3005; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3006; GFX11-TRUE16-NEXT:    s_addk_i32 s16, 0x2003007; GFX11-TRUE16-NEXT:    v_max_f16_e32 v0.l, v0.l, v0.l3008; GFX11-TRUE16-NEXT:    s_and_b32 s4, s16, -43009; GFX11-TRUE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1)3010; GFX11-TRUE16-NEXT:    v_mov_b32_e32 v3, s43011; GFX11-TRUE16-NEXT:    s_and_b32 s4, s16, 33012; GFX11-TRUE16-NEXT:    s_lshl_b32 s4, s4, 33013; GFX11-TRUE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)3014; GFX11-TRUE16-NEXT:    s_lshl_b32 s5, 0xffff, s43015; GFX11-TRUE16-NEXT:    buffer_load_b32 v2, v3, s[0:3], 0 offen3016; GFX11-TRUE16-NEXT:    s_not_b32 s6, s53017; GFX11-TRUE16-NEXT:    s_mov_b32 s5, 03018; GFX11-TRUE16-NEXT:  .LBB11_1: ; %atomicrmw.start3019; GFX11-TRUE16-NEXT:    ; =>This Inner Loop Header: Depth=13020; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0)3021; GFX11-TRUE16-NEXT:    v_lshrrev_b32_e32 v1, s4, v23022; GFX11-TRUE16-NEXT:    v_mov_b16_e32 v1.h, 03023; GFX11-TRUE16-NEXT:    s_waitcnt_vscnt null, 0x03024; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)3025; GFX11-TRUE16-NEXT:    v_max_f16_e32 v0.h, v1.l, v1.l3026; GFX11-TRUE16-NEXT:    v_min_f16_e32 v1.l, v0.h, v0.l3027; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3028; GFX11-TRUE16-NEXT:    v_lshlrev_b32_e32 v1, s4, v13029; GFX11-TRUE16-NEXT:    v_and_or_b32 v1, v2, s6, v13030; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)3031; GFX11-TRUE16-NEXT:    v_dual_mov_b32 v5, v2 :: v_dual_mov_b32 v4, v13032; GFX11-TRUE16-NEXT:    buffer_atomic_cmpswap_b32 v[4:5], v3, s[0:3], 0 offen glc3033; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0)3034; GFX11-TRUE16-NEXT:    buffer_gl1_inv3035; GFX11-TRUE16-NEXT:    buffer_gl0_inv3036; GFX11-TRUE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v4, v23037; GFX11-TRUE16-NEXT:    v_mov_b32_e32 v2, v43038; GFX11-TRUE16-NEXT:    s_or_b32 s5, vcc_lo, s53039; GFX11-TRUE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)3040; GFX11-TRUE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s53041; GFX11-TRUE16-NEXT:    s_cbranch_execnz .LBB11_13042; GFX11-TRUE16-NEXT:  ; %bb.2: ; %atomicrmw.end3043; GFX11-TRUE16-NEXT:    s_or_b32 exec_lo, exec_lo, s53044; GFX11-TRUE16-NEXT:    s_setpc_b64 s[30:31]3045;3046; GFX11-FAKE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f16__offset__amdgpu_no_fine_grained_memory:3047; GFX11-FAKE16:       ; %bb.0:3048; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3049; GFX11-FAKE16-NEXT:    s_addk_i32 s16, 0x2003050; GFX11-FAKE16-NEXT:    v_max_f16_e32 v3, v0, v03051; GFX11-FAKE16-NEXT:    s_and_b32 s4, s16, -43052; GFX11-FAKE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1)3053; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v2, s43054; GFX11-FAKE16-NEXT:    s_and_b32 s4, s16, 33055; GFX11-FAKE16-NEXT:    s_lshl_b32 s4, s4, 33056; GFX11-FAKE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)3057; GFX11-FAKE16-NEXT:    s_lshl_b32 s5, 0xffff, s43058; GFX11-FAKE16-NEXT:    buffer_load_b32 v1, v2, s[0:3], 0 offen3059; GFX11-FAKE16-NEXT:    s_not_b32 s6, s53060; GFX11-FAKE16-NEXT:    s_mov_b32 s5, 03061; GFX11-FAKE16-NEXT:    .p2align 63062; GFX11-FAKE16-NEXT:  .LBB11_1: ; %atomicrmw.start3063; GFX11-FAKE16-NEXT:    ; =>This Inner Loop Header: Depth=13064; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0)3065; GFX11-FAKE16-NEXT:    v_lshrrev_b32_e32 v0, s4, v13066; GFX11-FAKE16-NEXT:    s_waitcnt_vscnt null, 0x03067; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3068; GFX11-FAKE16-NEXT:    v_max_f16_e32 v0, v0, v03069; GFX11-FAKE16-NEXT:    v_min_f16_e32 v0, v0, v33070; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3071; GFX11-FAKE16-NEXT:    v_and_b32_e32 v0, 0xffff, v03072; GFX11-FAKE16-NEXT:    v_lshlrev_b32_e32 v0, s4, v03073; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3074; GFX11-FAKE16-NEXT:    v_and_or_b32 v0, v1, s6, v03075; GFX11-FAKE16-NEXT:    v_dual_mov_b32 v5, v1 :: v_dual_mov_b32 v4, v03076; GFX11-FAKE16-NEXT:    buffer_atomic_cmpswap_b32 v[4:5], v2, s[0:3], 0 offen glc3077; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0)3078; GFX11-FAKE16-NEXT:    buffer_gl1_inv3079; GFX11-FAKE16-NEXT:    buffer_gl0_inv3080; GFX11-FAKE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v4, v13081; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v1, v43082; GFX11-FAKE16-NEXT:    s_or_b32 s5, vcc_lo, s53083; GFX11-FAKE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)3084; GFX11-FAKE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s53085; GFX11-FAKE16-NEXT:    s_cbranch_execnz .LBB11_13086; GFX11-FAKE16-NEXT:  ; %bb.2: ; %atomicrmw.end3087; GFX11-FAKE16-NEXT:    s_or_b32 exec_lo, exec_lo, s53088; GFX11-FAKE16-NEXT:    s_setpc_b64 s[30:31]3089;3090; GFX10-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f16__offset__amdgpu_no_fine_grained_memory:3091; GFX10:       ; %bb.0:3092; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3093; GFX10-NEXT:    s_addk_i32 s20, 0x2003094; GFX10-NEXT:    v_max_f16_e32 v3, v0, v03095; GFX10-NEXT:    s_and_b32 s4, s20, -43096; GFX10-NEXT:    v_mov_b32_e32 v2, s43097; GFX10-NEXT:    s_and_b32 s4, s20, 33098; GFX10-NEXT:    s_lshl_b32 s4, s4, 33099; GFX10-NEXT:    s_lshl_b32 s5, 0xffff, s43100; GFX10-NEXT:    buffer_load_dword v1, v2, s[16:19], 0 offen3101; GFX10-NEXT:    s_not_b32 s6, s53102; GFX10-NEXT:    s_mov_b32 s5, 03103; GFX10-NEXT:  .LBB11_1: ; %atomicrmw.start3104; GFX10-NEXT:    ; =>This Inner Loop Header: Depth=13105; GFX10-NEXT:    s_waitcnt vmcnt(0)3106; GFX10-NEXT:    v_lshrrev_b32_e32 v0, s4, v13107; GFX10-NEXT:    s_waitcnt_vscnt null, 0x03108; GFX10-NEXT:    v_max_f16_e32 v0, v0, v03109; GFX10-NEXT:    v_min_f16_e32 v0, v0, v33110; GFX10-NEXT:    v_lshlrev_b32_sdwa v0, s4, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_03111; GFX10-NEXT:    v_and_or_b32 v0, v1, s6, v03112; GFX10-NEXT:    v_mov_b32_e32 v5, v13113; GFX10-NEXT:    v_mov_b32_e32 v4, v03114; GFX10-NEXT:    buffer_atomic_cmpswap v[4:5], v2, s[16:19], 0 offen glc3115; GFX10-NEXT:    s_waitcnt vmcnt(0)3116; GFX10-NEXT:    buffer_gl1_inv3117; GFX10-NEXT:    buffer_gl0_inv3118; GFX10-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v4, v13119; GFX10-NEXT:    v_mov_b32_e32 v1, v43120; GFX10-NEXT:    s_or_b32 s5, vcc_lo, s53121; GFX10-NEXT:    s_andn2_b32 exec_lo, exec_lo, s53122; GFX10-NEXT:    s_cbranch_execnz .LBB11_13123; GFX10-NEXT:  ; %bb.2: ; %atomicrmw.end3124; GFX10-NEXT:    s_or_b32 exec_lo, exec_lo, s53125; GFX10-NEXT:    s_setpc_b64 s[30:31]3126;3127; GFX90A-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f16__offset__amdgpu_no_fine_grained_memory:3128; GFX90A:       ; %bb.0:3129; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3130; GFX90A-NEXT:    s_addk_i32 s20, 0x2003131; GFX90A-NEXT:    s_and_b32 s4, s20, -43132; GFX90A-NEXT:    v_mov_b32_e32 v2, s43133; GFX90A-NEXT:    buffer_load_dword v1, v2, s[16:19], 0 offen3134; GFX90A-NEXT:    s_and_b32 s4, s20, 33135; GFX90A-NEXT:    s_lshl_b32 s6, s4, 33136; GFX90A-NEXT:    s_lshl_b32 s4, 0xffff, s63137; GFX90A-NEXT:    s_not_b32 s7, s43138; GFX90A-NEXT:    s_mov_b64 s[4:5], 03139; GFX90A-NEXT:    v_max_f16_e32 v3, v0, v03140; GFX90A-NEXT:  .LBB11_1: ; %atomicrmw.start3141; GFX90A-NEXT:    ; =>This Inner Loop Header: Depth=13142; GFX90A-NEXT:    s_waitcnt vmcnt(0)3143; GFX90A-NEXT:    v_lshrrev_b32_e32 v0, s6, v13144; GFX90A-NEXT:    v_max_f16_e32 v0, v0, v03145; GFX90A-NEXT:    v_min_f16_e32 v0, v0, v33146; GFX90A-NEXT:    v_lshlrev_b32_e32 v0, s6, v03147; GFX90A-NEXT:    v_and_or_b32 v0, v1, s7, v03148; GFX90A-NEXT:    v_pk_mov_b32 v[4:5], v[0:1], v[0:1] op_sel:[0,1]3149; GFX90A-NEXT:    buffer_atomic_cmpswap v[4:5], v2, s[16:19], 0 offen glc3150; GFX90A-NEXT:    s_waitcnt vmcnt(0)3151; GFX90A-NEXT:    buffer_wbinvl13152; GFX90A-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v13153; GFX90A-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]3154; GFX90A-NEXT:    v_mov_b32_e32 v1, v43155; GFX90A-NEXT:    s_andn2_b64 exec, exec, s[4:5]3156; GFX90A-NEXT:    s_cbranch_execnz .LBB11_13157; GFX90A-NEXT:  ; %bb.2: ; %atomicrmw.end3158; GFX90A-NEXT:    s_or_b64 exec, exec, s[4:5]3159; GFX90A-NEXT:    s_setpc_b64 s[30:31]3160;3161; GFX908-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f16__offset__amdgpu_no_fine_grained_memory:3162; GFX908:       ; %bb.0:3163; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3164; GFX908-NEXT:    s_addk_i32 s20, 0x2003165; GFX908-NEXT:    s_and_b32 s4, s20, -43166; GFX908-NEXT:    v_mov_b32_e32 v2, s43167; GFX908-NEXT:    buffer_load_dword v1, v2, s[16:19], 0 offen3168; GFX908-NEXT:    s_and_b32 s4, s20, 33169; GFX908-NEXT:    s_lshl_b32 s6, s4, 33170; GFX908-NEXT:    s_lshl_b32 s4, 0xffff, s63171; GFX908-NEXT:    s_not_b32 s7, s43172; GFX908-NEXT:    s_mov_b64 s[4:5], 03173; GFX908-NEXT:    v_max_f16_e32 v3, v0, v03174; GFX908-NEXT:  .LBB11_1: ; %atomicrmw.start3175; GFX908-NEXT:    ; =>This Inner Loop Header: Depth=13176; GFX908-NEXT:    s_waitcnt vmcnt(0)3177; GFX908-NEXT:    v_lshrrev_b32_e32 v0, s6, v13178; GFX908-NEXT:    v_max_f16_e32 v0, v0, v03179; GFX908-NEXT:    v_min_f16_e32 v0, v0, v33180; GFX908-NEXT:    v_lshlrev_b32_e32 v0, s6, v03181; GFX908-NEXT:    v_and_or_b32 v0, v1, s7, v03182; GFX908-NEXT:    v_mov_b32_e32 v5, v13183; GFX908-NEXT:    v_mov_b32_e32 v4, v03184; GFX908-NEXT:    buffer_atomic_cmpswap v[4:5], v2, s[16:19], 0 offen glc3185; GFX908-NEXT:    s_waitcnt vmcnt(0)3186; GFX908-NEXT:    buffer_wbinvl13187; GFX908-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v13188; GFX908-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]3189; GFX908-NEXT:    v_mov_b32_e32 v1, v43190; GFX908-NEXT:    s_andn2_b64 exec, exec, s[4:5]3191; GFX908-NEXT:    s_cbranch_execnz .LBB11_13192; GFX908-NEXT:  ; %bb.2: ; %atomicrmw.end3193; GFX908-NEXT:    s_or_b64 exec, exec, s[4:5]3194; GFX908-NEXT:    s_setpc_b64 s[30:31]3195;3196; GFX8-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f16__offset__amdgpu_no_fine_grained_memory:3197; GFX8:       ; %bb.0:3198; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3199; GFX8-NEXT:    s_addk_i32 s20, 0x2003200; GFX8-NEXT:    s_and_b32 s4, s20, -43201; GFX8-NEXT:    v_mov_b32_e32 v2, s43202; GFX8-NEXT:    buffer_load_dword v1, v2, s[16:19], 0 offen3203; GFX8-NEXT:    s_and_b32 s4, s20, 33204; GFX8-NEXT:    s_lshl_b32 s6, s4, 33205; GFX8-NEXT:    s_lshl_b32 s4, 0xffff, s63206; GFX8-NEXT:    s_not_b32 s7, s43207; GFX8-NEXT:    s_mov_b64 s[4:5], 03208; GFX8-NEXT:    v_max_f16_e32 v3, v0, v03209; GFX8-NEXT:  .LBB11_1: ; %atomicrmw.start3210; GFX8-NEXT:    ; =>This Inner Loop Header: Depth=13211; GFX8-NEXT:    s_waitcnt vmcnt(0)3212; GFX8-NEXT:    v_lshrrev_b32_e32 v0, s6, v13213; GFX8-NEXT:    v_max_f16_e32 v0, v0, v03214; GFX8-NEXT:    v_min_f16_e32 v0, v0, v33215; GFX8-NEXT:    v_and_b32_e32 v4, s7, v13216; GFX8-NEXT:    v_lshlrev_b32_e32 v0, s6, v03217; GFX8-NEXT:    v_or_b32_e32 v0, v4, v03218; GFX8-NEXT:    v_mov_b32_e32 v5, v13219; GFX8-NEXT:    v_mov_b32_e32 v4, v03220; GFX8-NEXT:    buffer_atomic_cmpswap v[4:5], v2, s[16:19], 0 offen glc3221; GFX8-NEXT:    s_waitcnt vmcnt(0)3222; GFX8-NEXT:    buffer_wbinvl13223; GFX8-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v13224; GFX8-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]3225; GFX8-NEXT:    v_mov_b32_e32 v1, v43226; GFX8-NEXT:    s_andn2_b64 exec, exec, s[4:5]3227; GFX8-NEXT:    s_cbranch_execnz .LBB11_13228; GFX8-NEXT:  ; %bb.2: ; %atomicrmw.end3229; GFX8-NEXT:    s_or_b64 exec, exec, s[4:5]3230; GFX8-NEXT:    s_setpc_b64 s[30:31]3231;3232; GFX7-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f16__offset__amdgpu_no_fine_grained_memory:3233; GFX7:       ; %bb.0:3234; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3235; GFX7-NEXT:    s_addk_i32 s20, 0x2003236; GFX7-NEXT:    s_and_b32 s4, s20, -43237; GFX7-NEXT:    v_mov_b32_e32 v2, s43238; GFX7-NEXT:    buffer_load_dword v1, v2, s[16:19], 0 offen3239; GFX7-NEXT:    v_cvt_f16_f32_e32 v0, v03240; GFX7-NEXT:    s_and_b32 s4, s20, 33241; GFX7-NEXT:    s_lshl_b32 s6, s4, 33242; GFX7-NEXT:    s_lshl_b32 s4, 0xffff, s63243; GFX7-NEXT:    v_cvt_f32_f16_e32 v3, v03244; GFX7-NEXT:    s_not_b32 s7, s43245; GFX7-NEXT:    s_mov_b64 s[4:5], 03246; GFX7-NEXT:  .LBB11_1: ; %atomicrmw.start3247; GFX7-NEXT:    ; =>This Inner Loop Header: Depth=13248; GFX7-NEXT:    s_waitcnt vmcnt(0)3249; GFX7-NEXT:    v_lshrrev_b32_e32 v0, s6, v13250; GFX7-NEXT:    v_cvt_f32_f16_e32 v0, v03251; GFX7-NEXT:    v_and_b32_e32 v4, s7, v13252; GFX7-NEXT:    v_min_f32_e32 v0, v0, v33253; GFX7-NEXT:    v_cvt_f16_f32_e32 v0, v03254; GFX7-NEXT:    v_lshlrev_b32_e32 v0, s6, v03255; GFX7-NEXT:    v_or_b32_e32 v0, v4, v03256; GFX7-NEXT:    v_mov_b32_e32 v5, v13257; GFX7-NEXT:    v_mov_b32_e32 v4, v03258; GFX7-NEXT:    buffer_atomic_cmpswap v[4:5], v2, s[16:19], 0 offen glc3259; GFX7-NEXT:    s_waitcnt vmcnt(0)3260; GFX7-NEXT:    buffer_wbinvl13261; GFX7-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v13262; GFX7-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]3263; GFX7-NEXT:    v_mov_b32_e32 v1, v43264; GFX7-NEXT:    s_andn2_b64 exec, exec, s[4:5]3265; GFX7-NEXT:    s_cbranch_execnz .LBB11_13266; GFX7-NEXT:  ; %bb.2: ; %atomicrmw.end3267; GFX7-NEXT:    s_or_b64 exec, exec, s[4:5]3268; GFX7-NEXT:    s_setpc_b64 s[30:31]3269;3270; GFX6-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_f16__offset__amdgpu_no_fine_grained_memory:3271; GFX6:       ; %bb.0:3272; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3273; GFX6-NEXT:    s_addk_i32 s20, 0x2003274; GFX6-NEXT:    s_and_b32 s4, s20, -43275; GFX6-NEXT:    v_mov_b32_e32 v2, s43276; GFX6-NEXT:    buffer_load_dword v1, v2, s[16:19], 0 offen3277; GFX6-NEXT:    v_cvt_f16_f32_e32 v0, v03278; GFX6-NEXT:    s_and_b32 s4, s20, 33279; GFX6-NEXT:    s_lshl_b32 s6, s4, 33280; GFX6-NEXT:    s_lshl_b32 s4, 0xffff, s63281; GFX6-NEXT:    v_cvt_f32_f16_e32 v3, v03282; GFX6-NEXT:    s_not_b32 s7, s43283; GFX6-NEXT:    s_mov_b64 s[4:5], 03284; GFX6-NEXT:  .LBB11_1: ; %atomicrmw.start3285; GFX6-NEXT:    ; =>This Inner Loop Header: Depth=13286; GFX6-NEXT:    s_waitcnt vmcnt(0)3287; GFX6-NEXT:    v_lshrrev_b32_e32 v0, s6, v13288; GFX6-NEXT:    v_cvt_f32_f16_e32 v0, v03289; GFX6-NEXT:    s_waitcnt expcnt(0)3290; GFX6-NEXT:    v_and_b32_e32 v4, s7, v13291; GFX6-NEXT:    v_min_f32_e32 v0, v0, v33292; GFX6-NEXT:    v_cvt_f16_f32_e32 v0, v03293; GFX6-NEXT:    v_lshlrev_b32_e32 v0, s6, v03294; GFX6-NEXT:    v_or_b32_e32 v0, v4, v03295; GFX6-NEXT:    v_mov_b32_e32 v5, v13296; GFX6-NEXT:    v_mov_b32_e32 v4, v03297; GFX6-NEXT:    buffer_atomic_cmpswap v[4:5], v2, s[16:19], 0 offen glc3298; GFX6-NEXT:    s_waitcnt vmcnt(0)3299; GFX6-NEXT:    buffer_wbinvl13300; GFX6-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v13301; GFX6-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]3302; GFX6-NEXT:    v_mov_b32_e32 v1, v43303; GFX6-NEXT:    s_andn2_b64 exec, exec, s[4:5]3304; GFX6-NEXT:    s_cbranch_execnz .LBB11_13305; GFX6-NEXT:  ; %bb.2: ; %atomicrmw.end3306; GFX6-NEXT:    s_or_b64 exec, exec, s[4:5]3307; GFX6-NEXT:    s_waitcnt expcnt(0)3308; GFX6-NEXT:    s_setpc_b64 s[30:31]3309  %gep = getelementptr half, ptr addrspace(7) %ptr, i32 2563310  %unused = atomicrmw fmin ptr addrspace(7) %gep, half %val syncscope("agent") seq_cst, !amdgpu.no.fine.grained.memory !03311  ret void3312}3313 3314define half @buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__waterfall__amdgpu_no_fine_grained_memory(ptr addrspace(7) %ptr, half %val) #0 {3315; GFX12-TRUE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__waterfall__amdgpu_no_fine_grained_memory:3316; GFX12-TRUE16:       ; %bb.0:3317; GFX12-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x03318; GFX12-TRUE16-NEXT:    s_wait_expcnt 0x03319; GFX12-TRUE16-NEXT:    s_wait_samplecnt 0x03320; GFX12-TRUE16-NEXT:    s_wait_bvhcnt 0x03321; GFX12-TRUE16-NEXT:    s_wait_kmcnt 0x03322; GFX12-TRUE16-NEXT:    v_add_nc_u32_e32 v4, 0x200, v43323; GFX12-TRUE16-NEXT:    s_mov_b32 s1, exec_lo3324; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)3325; GFX12-TRUE16-NEXT:    v_and_b32_e32 v6, 3, v43326; GFX12-TRUE16-NEXT:    v_and_b32_e32 v10, -4, v43327; GFX12-TRUE16-NEXT:    v_lshlrev_b32_e32 v9, 3, v63328; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3329; GFX12-TRUE16-NEXT:    v_lshlrev_b32_e64 v6, v9, 0xffff3330; GFX12-TRUE16-NEXT:    v_not_b32_e32 v11, v63331; GFX12-TRUE16-NEXT:  .LBB12_1: ; =>This Inner Loop Header: Depth=13332; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s4, v03333; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s5, v13334; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s6, v23335; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s7, v33336; GFX12-TRUE16-NEXT:    s_wait_alu depctr_va_sdst(0)3337; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)3338; GFX12-TRUE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]3339; GFX12-TRUE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]3340; GFX12-TRUE16-NEXT:    s_and_b32 s0, vcc_lo, s03341; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)3342; GFX12-TRUE16-NEXT:    s_and_saveexec_b32 s0, s03343; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x03344; GFX12-TRUE16-NEXT:    buffer_load_b32 v6, v10, s[4:7], null offen3345; GFX12-TRUE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s03346; GFX12-TRUE16-NEXT:    s_cbranch_execnz .LBB12_13347; GFX12-TRUE16-NEXT:  ; %bb.2:3348; GFX12-TRUE16-NEXT:    s_mov_b32 exec_lo, s13349; GFX12-TRUE16-NEXT:    v_max_num_f16_e32 v4.l, v5.l, v5.l3350; GFX12-TRUE16-NEXT:    s_mov_b32 s1, 03351; GFX12-TRUE16-NEXT:  .LBB12_3: ; %atomicrmw.start3352; GFX12-TRUE16-NEXT:    ; =>This Loop Header: Depth=13353; GFX12-TRUE16-NEXT:    ; Child Loop BB12_4 Depth 23354; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x03355; GFX12-TRUE16-NEXT:    v_lshrrev_b32_e32 v5, v9, v63356; GFX12-TRUE16-NEXT:    v_mov_b16_e32 v5.h, 03357; GFX12-TRUE16-NEXT:    s_mov_b32 s2, exec_lo3358; GFX12-TRUE16-NEXT:    s_wait_storecnt 0x03359; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)3360; GFX12-TRUE16-NEXT:    v_max_num_f16_e32 v4.h, v5.l, v5.l3361; GFX12-TRUE16-NEXT:    v_min_num_f16_e32 v5.l, v4.h, v4.l3362; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3363; GFX12-TRUE16-NEXT:    v_lshlrev_b32_e32 v5, v9, v53364; GFX12-TRUE16-NEXT:    v_and_or_b32 v5, v6, v11, v53365; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)3366; GFX12-TRUE16-NEXT:    v_dual_mov_b32 v8, v6 :: v_dual_mov_b32 v7, v53367; GFX12-TRUE16-NEXT:  .LBB12_4: ; Parent Loop BB12_3 Depth=13368; GFX12-TRUE16-NEXT:    ; => This Inner Loop Header: Depth=23369; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s4, v03370; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s5, v13371; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s6, v23372; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s7, v33373; GFX12-TRUE16-NEXT:    s_wait_alu depctr_va_sdst(0)3374; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)3375; GFX12-TRUE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]3376; GFX12-TRUE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]3377; GFX12-TRUE16-NEXT:    s_and_b32 s0, vcc_lo, s03378; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)3379; GFX12-TRUE16-NEXT:    s_and_saveexec_b32 s0, s03380; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x03381; GFX12-TRUE16-NEXT:    buffer_atomic_cmpswap_b32 v[7:8], v10, s[4:7], null offen th:TH_ATOMIC_RETURN3382; GFX12-TRUE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s03383; GFX12-TRUE16-NEXT:    s_cbranch_execnz .LBB12_43384; GFX12-TRUE16-NEXT:  ; %bb.5: ; in Loop: Header=BB12_3 Depth=13385; GFX12-TRUE16-NEXT:    s_mov_b32 exec_lo, s23386; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x03387; GFX12-TRUE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v7, v63388; GFX12-TRUE16-NEXT:    v_mov_b32_e32 v6, v73389; GFX12-TRUE16-NEXT:    global_inv scope:SCOPE_DEV3390; GFX12-TRUE16-NEXT:    s_or_b32 s1, vcc_lo, s13391; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)3392; GFX12-TRUE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s13393; GFX12-TRUE16-NEXT:    s_cbranch_execnz .LBB12_33394; GFX12-TRUE16-NEXT:  ; %bb.6: ; %atomicrmw.end3395; GFX12-TRUE16-NEXT:    s_or_b32 exec_lo, exec_lo, s13396; GFX12-TRUE16-NEXT:    v_lshrrev_b32_e32 v0, v9, v73397; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x03398; GFX12-TRUE16-NEXT:    s_setpc_b64 s[30:31]3399;3400; GFX12-FAKE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__waterfall__amdgpu_no_fine_grained_memory:3401; GFX12-FAKE16:       ; %bb.0:3402; GFX12-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x03403; GFX12-FAKE16-NEXT:    s_wait_expcnt 0x03404; GFX12-FAKE16-NEXT:    s_wait_samplecnt 0x03405; GFX12-FAKE16-NEXT:    s_wait_bvhcnt 0x03406; GFX12-FAKE16-NEXT:    s_wait_kmcnt 0x03407; GFX12-FAKE16-NEXT:    v_add_nc_u32_e32 v4, 0x200, v43408; GFX12-FAKE16-NEXT:    s_mov_b32 s1, exec_lo3409; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)3410; GFX12-FAKE16-NEXT:    v_and_b32_e32 v6, 3, v43411; GFX12-FAKE16-NEXT:    v_and_b32_e32 v8, -4, v43412; GFX12-FAKE16-NEXT:    v_lshlrev_b32_e32 v7, 3, v63413; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3414; GFX12-FAKE16-NEXT:    v_lshlrev_b32_e64 v6, v7, 0xffff3415; GFX12-FAKE16-NEXT:    v_not_b32_e32 v9, v63416; GFX12-FAKE16-NEXT:  .LBB12_1: ; =>This Inner Loop Header: Depth=13417; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s4, v03418; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s5, v13419; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s6, v23420; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s7, v33421; GFX12-FAKE16-NEXT:    s_wait_alu depctr_va_sdst(0)3422; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)3423; GFX12-FAKE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]3424; GFX12-FAKE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]3425; GFX12-FAKE16-NEXT:    s_and_b32 s0, vcc_lo, s03426; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)3427; GFX12-FAKE16-NEXT:    s_and_saveexec_b32 s0, s03428; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x03429; GFX12-FAKE16-NEXT:    buffer_load_b32 v6, v8, s[4:7], null offen3430; GFX12-FAKE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s03431; GFX12-FAKE16-NEXT:    s_cbranch_execnz .LBB12_13432; GFX12-FAKE16-NEXT:  ; %bb.2:3433; GFX12-FAKE16-NEXT:    s_mov_b32 exec_lo, s13434; GFX12-FAKE16-NEXT:    v_max_num_f16_e32 v10, v5, v53435; GFX12-FAKE16-NEXT:    s_mov_b32 s1, 03436; GFX12-FAKE16-NEXT:  .LBB12_3: ; %atomicrmw.start3437; GFX12-FAKE16-NEXT:    ; =>This Loop Header: Depth=13438; GFX12-FAKE16-NEXT:    ; Child Loop BB12_4 Depth 23439; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x03440; GFX12-FAKE16-NEXT:    v_lshrrev_b32_e32 v4, v7, v63441; GFX12-FAKE16-NEXT:    s_mov_b32 s2, exec_lo3442; GFX12-FAKE16-NEXT:    s_wait_storecnt 0x03443; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3444; GFX12-FAKE16-NEXT:    v_max_num_f16_e32 v4, v4, v43445; GFX12-FAKE16-NEXT:    v_min_num_f16_e32 v4, v4, v103446; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3447; GFX12-FAKE16-NEXT:    v_and_b32_e32 v4, 0xffff, v43448; GFX12-FAKE16-NEXT:    v_lshlrev_b32_e32 v4, v7, v43449; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3450; GFX12-FAKE16-NEXT:    v_and_or_b32 v5, v6, v9, v43451; GFX12-FAKE16-NEXT:    v_mov_b32_e32 v4, v53452; GFX12-FAKE16-NEXT:    v_mov_b32_e32 v5, v63453; GFX12-FAKE16-NEXT:  .LBB12_4: ; Parent Loop BB12_3 Depth=13454; GFX12-FAKE16-NEXT:    ; => This Inner Loop Header: Depth=23455; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s4, v03456; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s5, v13457; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s6, v23458; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s7, v33459; GFX12-FAKE16-NEXT:    s_wait_alu depctr_va_sdst(0)3460; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)3461; GFX12-FAKE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]3462; GFX12-FAKE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]3463; GFX12-FAKE16-NEXT:    s_and_b32 s0, vcc_lo, s03464; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)3465; GFX12-FAKE16-NEXT:    s_and_saveexec_b32 s0, s03466; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x03467; GFX12-FAKE16-NEXT:    buffer_atomic_cmpswap_b32 v[4:5], v8, s[4:7], null offen th:TH_ATOMIC_RETURN3468; GFX12-FAKE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s03469; GFX12-FAKE16-NEXT:    s_cbranch_execnz .LBB12_43470; GFX12-FAKE16-NEXT:  ; %bb.5: ; in Loop: Header=BB12_3 Depth=13471; GFX12-FAKE16-NEXT:    s_mov_b32 exec_lo, s23472; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x03473; GFX12-FAKE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v4, v63474; GFX12-FAKE16-NEXT:    v_mov_b32_e32 v6, v43475; GFX12-FAKE16-NEXT:    global_inv scope:SCOPE_DEV3476; GFX12-FAKE16-NEXT:    s_or_b32 s1, vcc_lo, s13477; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)3478; GFX12-FAKE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s13479; GFX12-FAKE16-NEXT:    s_cbranch_execnz .LBB12_33480; GFX12-FAKE16-NEXT:  ; %bb.6: ; %atomicrmw.end3481; GFX12-FAKE16-NEXT:    s_or_b32 exec_lo, exec_lo, s13482; GFX12-FAKE16-NEXT:    v_lshrrev_b32_e32 v0, v7, v43483; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x03484; GFX12-FAKE16-NEXT:    s_setpc_b64 s[30:31]3485;3486; GFX942-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__waterfall__amdgpu_no_fine_grained_memory:3487; GFX942:       ; %bb.0:3488; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3489; GFX942-NEXT:    v_add_u32_e32 v4, 0x200, v43490; GFX942-NEXT:    v_and_b32_e32 v9, -4, v43491; GFX942-NEXT:    v_and_b32_e32 v4, 3, v43492; GFX942-NEXT:    v_lshlrev_b32_e32 v8, 3, v43493; GFX942-NEXT:    s_mov_b32 s0, 0xffff3494; GFX942-NEXT:    v_lshlrev_b32_e64 v4, v8, s03495; GFX942-NEXT:    v_not_b32_e32 v10, v43496; GFX942-NEXT:    s_mov_b64 s[2:3], exec3497; GFX942-NEXT:  .LBB12_1: ; =>This Inner Loop Header: Depth=13498; GFX942-NEXT:    v_readfirstlane_b32 s4, v03499; GFX942-NEXT:    v_readfirstlane_b32 s5, v13500; GFX942-NEXT:    v_readfirstlane_b32 s6, v23501; GFX942-NEXT:    v_readfirstlane_b32 s7, v33502; GFX942-NEXT:    v_cmp_eq_u64_e32 vcc, s[4:5], v[0:1]3503; GFX942-NEXT:    s_nop 03504; GFX942-NEXT:    v_cmp_eq_u64_e64 s[0:1], s[6:7], v[2:3]3505; GFX942-NEXT:    s_and_b64 s[0:1], vcc, s[0:1]3506; GFX942-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]3507; GFX942-NEXT:    buffer_load_dword v7, v9, s[4:7], 0 offen3508; GFX942-NEXT:    s_xor_b64 exec, exec, s[0:1]3509; GFX942-NEXT:    s_cbranch_execnz .LBB12_13510; GFX942-NEXT:  ; %bb.2:3511; GFX942-NEXT:    s_mov_b64 exec, s[2:3]3512; GFX942-NEXT:    s_mov_b64 s[2:3], 03513; GFX942-NEXT:    v_max_f16_e32 v11, v5, v53514; GFX942-NEXT:  .LBB12_3: ; %atomicrmw.start3515; GFX942-NEXT:    ; =>This Loop Header: Depth=13516; GFX942-NEXT:    ; Child Loop BB12_4 Depth 23517; GFX942-NEXT:    s_waitcnt vmcnt(0)3518; GFX942-NEXT:    v_lshrrev_b32_e32 v4, v8, v73519; GFX942-NEXT:    v_max_f16_e32 v4, v4, v43520; GFX942-NEXT:    v_min_f16_e32 v4, v4, v113521; GFX942-NEXT:    v_lshlrev_b32_e32 v4, v8, v43522; GFX942-NEXT:    v_and_or_b32 v6, v7, v10, v43523; GFX942-NEXT:    s_mov_b64 s[8:9], exec3524; GFX942-NEXT:    v_mov_b64_e32 v[4:5], v[6:7]3525; GFX942-NEXT:    buffer_wbl2 sc13526; GFX942-NEXT:  .LBB12_4: ; Parent Loop BB12_3 Depth=13527; GFX942-NEXT:    ; => This Inner Loop Header: Depth=23528; GFX942-NEXT:    v_readfirstlane_b32 s4, v03529; GFX942-NEXT:    v_readfirstlane_b32 s5, v13530; GFX942-NEXT:    v_readfirstlane_b32 s6, v23531; GFX942-NEXT:    v_readfirstlane_b32 s7, v33532; GFX942-NEXT:    v_cmp_eq_u64_e32 vcc, s[4:5], v[0:1]3533; GFX942-NEXT:    s_nop 03534; GFX942-NEXT:    v_cmp_eq_u64_e64 s[0:1], s[6:7], v[2:3]3535; GFX942-NEXT:    s_and_b64 s[0:1], vcc, s[0:1]3536; GFX942-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]3537; GFX942-NEXT:    s_waitcnt vmcnt(0)3538; GFX942-NEXT:    buffer_atomic_cmpswap v[4:5], v9, s[4:7], 0 offen sc03539; GFX942-NEXT:    s_xor_b64 exec, exec, s[0:1]3540; GFX942-NEXT:    s_cbranch_execnz .LBB12_43541; GFX942-NEXT:  ; %bb.5: ; in Loop: Header=BB12_3 Depth=13542; GFX942-NEXT:    s_mov_b64 exec, s[8:9]3543; GFX942-NEXT:    s_waitcnt vmcnt(0)3544; GFX942-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v73545; GFX942-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]3546; GFX942-NEXT:    v_mov_b32_e32 v7, v43547; GFX942-NEXT:    buffer_inv sc13548; GFX942-NEXT:    s_andn2_b64 exec, exec, s[2:3]3549; GFX942-NEXT:    s_cbranch_execnz .LBB12_33550; GFX942-NEXT:  ; %bb.6: ; %atomicrmw.end3551; GFX942-NEXT:    s_or_b64 exec, exec, s[2:3]3552; GFX942-NEXT:    v_lshrrev_b32_e32 v0, v8, v43553; GFX942-NEXT:    s_setpc_b64 s[30:31]3554;3555; GFX11-TRUE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__waterfall__amdgpu_no_fine_grained_memory:3556; GFX11-TRUE16:       ; %bb.0:3557; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3558; GFX11-TRUE16-NEXT:    v_add_nc_u32_e32 v4, 0x200, v43559; GFX11-TRUE16-NEXT:    s_mov_b32 s1, 03560; GFX11-TRUE16-NEXT:    s_mov_b32 s2, exec_lo3561; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)3562; GFX11-TRUE16-NEXT:    v_and_b32_e32 v6, 3, v43563; GFX11-TRUE16-NEXT:    v_and_b32_e32 v10, -4, v43564; GFX11-TRUE16-NEXT:    v_lshlrev_b32_e32 v9, 3, v63565; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3566; GFX11-TRUE16-NEXT:    v_lshlrev_b32_e64 v6, v9, 0xffff3567; GFX11-TRUE16-NEXT:    v_not_b32_e32 v11, v63568; GFX11-TRUE16-NEXT:  .LBB12_1: ; =>This Inner Loop Header: Depth=13569; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s4, v03570; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s5, v13571; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s6, v23572; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s7, v33573; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)3574; GFX11-TRUE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]3575; GFX11-TRUE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]3576; GFX11-TRUE16-NEXT:    s_and_b32 s0, vcc_lo, s03577; GFX11-TRUE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)3578; GFX11-TRUE16-NEXT:    s_and_saveexec_b32 s0, s03579; GFX11-TRUE16-NEXT:    buffer_load_b32 v6, v10, s[4:7], 0 offen3580; GFX11-TRUE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s03581; GFX11-TRUE16-NEXT:    s_cbranch_execnz .LBB12_13582; GFX11-TRUE16-NEXT:  ; %bb.2:3583; GFX11-TRUE16-NEXT:    s_mov_b32 exec_lo, s23584; GFX11-TRUE16-NEXT:    v_max_f16_e32 v4.l, v5.l, v5.l3585; GFX11-TRUE16-NEXT:    .p2align 63586; GFX11-TRUE16-NEXT:  .LBB12_3: ; %atomicrmw.start3587; GFX11-TRUE16-NEXT:    ; =>This Loop Header: Depth=13588; GFX11-TRUE16-NEXT:    ; Child Loop BB12_4 Depth 23589; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0)3590; GFX11-TRUE16-NEXT:    v_lshrrev_b32_e32 v5, v9, v63591; GFX11-TRUE16-NEXT:    v_mov_b16_e32 v5.h, 03592; GFX11-TRUE16-NEXT:    s_mov_b32 s2, exec_lo3593; GFX11-TRUE16-NEXT:    s_waitcnt_vscnt null, 0x03594; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1)3595; GFX11-TRUE16-NEXT:    v_max_f16_e32 v4.h, v5.l, v5.l3596; GFX11-TRUE16-NEXT:    v_min_f16_e32 v5.l, v4.h, v4.l3597; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3598; GFX11-TRUE16-NEXT:    v_lshlrev_b32_e32 v5, v9, v53599; GFX11-TRUE16-NEXT:    v_and_or_b32 v5, v6, v11, v53600; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)3601; GFX11-TRUE16-NEXT:    v_dual_mov_b32 v8, v6 :: v_dual_mov_b32 v7, v53602; GFX11-TRUE16-NEXT:  .LBB12_4: ; Parent Loop BB12_3 Depth=13603; GFX11-TRUE16-NEXT:    ; => This Inner Loop Header: Depth=23604; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s4, v03605; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s5, v13606; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s6, v23607; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s7, v33608; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)3609; GFX11-TRUE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]3610; GFX11-TRUE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]3611; GFX11-TRUE16-NEXT:    s_and_b32 s0, vcc_lo, s03612; GFX11-TRUE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)3613; GFX11-TRUE16-NEXT:    s_and_saveexec_b32 s0, s03614; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0)3615; GFX11-TRUE16-NEXT:    buffer_atomic_cmpswap_b32 v[7:8], v10, s[4:7], 0 offen glc3616; GFX11-TRUE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s03617; GFX11-TRUE16-NEXT:    s_cbranch_execnz .LBB12_43618; GFX11-TRUE16-NEXT:  ; %bb.5: ; in Loop: Header=BB12_3 Depth=13619; GFX11-TRUE16-NEXT:    s_mov_b32 exec_lo, s23620; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0)3621; GFX11-TRUE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v7, v63622; GFX11-TRUE16-NEXT:    v_mov_b32_e32 v6, v73623; GFX11-TRUE16-NEXT:    buffer_gl1_inv3624; GFX11-TRUE16-NEXT:    buffer_gl0_inv3625; GFX11-TRUE16-NEXT:    s_or_b32 s1, vcc_lo, s13626; GFX11-TRUE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)3627; GFX11-TRUE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s13628; GFX11-TRUE16-NEXT:    s_cbranch_execnz .LBB12_33629; GFX11-TRUE16-NEXT:  ; %bb.6: ; %atomicrmw.end3630; GFX11-TRUE16-NEXT:    s_or_b32 exec_lo, exec_lo, s13631; GFX11-TRUE16-NEXT:    v_lshrrev_b32_e32 v0, v9, v73632; GFX11-TRUE16-NEXT:    s_setpc_b64 s[30:31]3633;3634; GFX11-FAKE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__waterfall__amdgpu_no_fine_grained_memory:3635; GFX11-FAKE16:       ; %bb.0:3636; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3637; GFX11-FAKE16-NEXT:    v_add_nc_u32_e32 v4, 0x200, v43638; GFX11-FAKE16-NEXT:    s_mov_b32 s1, 03639; GFX11-FAKE16-NEXT:    s_mov_b32 s2, exec_lo3640; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)3641; GFX11-FAKE16-NEXT:    v_and_b32_e32 v6, 3, v43642; GFX11-FAKE16-NEXT:    v_and_b32_e32 v8, -4, v43643; GFX11-FAKE16-NEXT:    v_lshlrev_b32_e32 v7, 3, v63644; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3645; GFX11-FAKE16-NEXT:    v_lshlrev_b32_e64 v6, v7, 0xffff3646; GFX11-FAKE16-NEXT:    v_not_b32_e32 v9, v63647; GFX11-FAKE16-NEXT:  .LBB12_1: ; =>This Inner Loop Header: Depth=13648; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s4, v03649; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s5, v13650; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s6, v23651; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s7, v33652; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)3653; GFX11-FAKE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]3654; GFX11-FAKE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]3655; GFX11-FAKE16-NEXT:    s_and_b32 s0, vcc_lo, s03656; GFX11-FAKE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)3657; GFX11-FAKE16-NEXT:    s_and_saveexec_b32 s0, s03658; GFX11-FAKE16-NEXT:    buffer_load_b32 v6, v8, s[4:7], 0 offen3659; GFX11-FAKE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s03660; GFX11-FAKE16-NEXT:    s_cbranch_execnz .LBB12_13661; GFX11-FAKE16-NEXT:  ; %bb.2:3662; GFX11-FAKE16-NEXT:    s_mov_b32 exec_lo, s23663; GFX11-FAKE16-NEXT:    v_max_f16_e32 v10, v5, v53664; GFX11-FAKE16-NEXT:    .p2align 63665; GFX11-FAKE16-NEXT:  .LBB12_3: ; %atomicrmw.start3666; GFX11-FAKE16-NEXT:    ; =>This Loop Header: Depth=13667; GFX11-FAKE16-NEXT:    ; Child Loop BB12_4 Depth 23668; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0)3669; GFX11-FAKE16-NEXT:    v_lshrrev_b32_e32 v4, v7, v63670; GFX11-FAKE16-NEXT:    s_mov_b32 s2, exec_lo3671; GFX11-FAKE16-NEXT:    s_waitcnt_vscnt null, 0x03672; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3673; GFX11-FAKE16-NEXT:    v_max_f16_e32 v4, v4, v43674; GFX11-FAKE16-NEXT:    v_min_f16_e32 v4, v4, v103675; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3676; GFX11-FAKE16-NEXT:    v_and_b32_e32 v4, 0xffff, v43677; GFX11-FAKE16-NEXT:    v_lshlrev_b32_e32 v4, v7, v43678; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)3679; GFX11-FAKE16-NEXT:    v_and_or_b32 v5, v6, v9, v43680; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v4, v53681; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v5, v63682; GFX11-FAKE16-NEXT:  .LBB12_4: ; Parent Loop BB12_3 Depth=13683; GFX11-FAKE16-NEXT:    ; => This Inner Loop Header: Depth=23684; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s4, v03685; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s5, v13686; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s6, v23687; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s7, v33688; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)3689; GFX11-FAKE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]3690; GFX11-FAKE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]3691; GFX11-FAKE16-NEXT:    s_and_b32 s0, vcc_lo, s03692; GFX11-FAKE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)3693; GFX11-FAKE16-NEXT:    s_and_saveexec_b32 s0, s03694; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0)3695; GFX11-FAKE16-NEXT:    buffer_atomic_cmpswap_b32 v[4:5], v8, s[4:7], 0 offen glc3696; GFX11-FAKE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s03697; GFX11-FAKE16-NEXT:    s_cbranch_execnz .LBB12_43698; GFX11-FAKE16-NEXT:  ; %bb.5: ; in Loop: Header=BB12_3 Depth=13699; GFX11-FAKE16-NEXT:    s_mov_b32 exec_lo, s23700; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0)3701; GFX11-FAKE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v4, v63702; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v6, v43703; GFX11-FAKE16-NEXT:    buffer_gl1_inv3704; GFX11-FAKE16-NEXT:    buffer_gl0_inv3705; GFX11-FAKE16-NEXT:    s_or_b32 s1, vcc_lo, s13706; GFX11-FAKE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)3707; GFX11-FAKE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s13708; GFX11-FAKE16-NEXT:    s_cbranch_execnz .LBB12_33709; GFX11-FAKE16-NEXT:  ; %bb.6: ; %atomicrmw.end3710; GFX11-FAKE16-NEXT:    s_or_b32 exec_lo, exec_lo, s13711; GFX11-FAKE16-NEXT:    v_lshrrev_b32_e32 v0, v7, v43712; GFX11-FAKE16-NEXT:    s_setpc_b64 s[30:31]3713;3714; GFX10-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__waterfall__amdgpu_no_fine_grained_memory:3715; GFX10:       ; %bb.0:3716; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3717; GFX10-NEXT:    v_add_nc_u32_e32 v4, 0x200, v43718; GFX10-NEXT:    s_mov_b32 s5, 03719; GFX10-NEXT:    s_mov_b32 s6, exec_lo3720; GFX10-NEXT:    v_and_b32_e32 v6, 3, v43721; GFX10-NEXT:    v_and_b32_e32 v8, -4, v43722; GFX10-NEXT:    v_lshlrev_b32_e32 v7, 3, v63723; GFX10-NEXT:    v_lshlrev_b32_e64 v6, v7, 0xffff3724; GFX10-NEXT:    v_not_b32_e32 v9, v63725; GFX10-NEXT:  .LBB12_1: ; =>This Inner Loop Header: Depth=13726; GFX10-NEXT:    v_readfirstlane_b32 s8, v03727; GFX10-NEXT:    v_readfirstlane_b32 s9, v13728; GFX10-NEXT:    v_readfirstlane_b32 s10, v23729; GFX10-NEXT:    v_readfirstlane_b32 s11, v33730; GFX10-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[8:9], v[0:1]3731; GFX10-NEXT:    v_cmp_eq_u64_e64 s4, s[10:11], v[2:3]3732; GFX10-NEXT:    s_and_b32 s4, vcc_lo, s43733; GFX10-NEXT:    s_and_saveexec_b32 s4, s43734; GFX10-NEXT:    buffer_load_dword v6, v8, s[8:11], 0 offen3735; GFX10-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)3736; GFX10-NEXT:    s_xor_b32 exec_lo, exec_lo, s43737; GFX10-NEXT:    s_cbranch_execnz .LBB12_13738; GFX10-NEXT:  ; %bb.2:3739; GFX10-NEXT:    s_mov_b32 exec_lo, s63740; GFX10-NEXT:    v_max_f16_e32 v10, v5, v53741; GFX10-NEXT:  .LBB12_3: ; %atomicrmw.start3742; GFX10-NEXT:    ; =>This Loop Header: Depth=13743; GFX10-NEXT:    ; Child Loop BB12_4 Depth 23744; GFX10-NEXT:    s_waitcnt vmcnt(0)3745; GFX10-NEXT:    v_lshrrev_b32_e32 v4, v7, v63746; GFX10-NEXT:    s_mov_b32 s6, exec_lo3747; GFX10-NEXT:    s_waitcnt_vscnt null, 0x03748; GFX10-NEXT:    v_max_f16_e32 v4, v4, v43749; GFX10-NEXT:    v_min_f16_e32 v4, v4, v103750; GFX10-NEXT:    v_lshlrev_b32_sdwa v4, v7, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_03751; GFX10-NEXT:    v_and_or_b32 v5, v6, v9, v43752; GFX10-NEXT:    v_mov_b32_e32 v4, v53753; GFX10-NEXT:    v_mov_b32_e32 v5, v63754; GFX10-NEXT:  .LBB12_4: ; Parent Loop BB12_3 Depth=13755; GFX10-NEXT:    ; => This Inner Loop Header: Depth=23756; GFX10-NEXT:    v_readfirstlane_b32 s8, v03757; GFX10-NEXT:    v_readfirstlane_b32 s9, v13758; GFX10-NEXT:    v_readfirstlane_b32 s10, v23759; GFX10-NEXT:    v_readfirstlane_b32 s11, v33760; GFX10-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[8:9], v[0:1]3761; GFX10-NEXT:    v_cmp_eq_u64_e64 s4, s[10:11], v[2:3]3762; GFX10-NEXT:    s_and_b32 s4, vcc_lo, s43763; GFX10-NEXT:    s_and_saveexec_b32 s4, s43764; GFX10-NEXT:    s_waitcnt vmcnt(0)3765; GFX10-NEXT:    buffer_atomic_cmpswap v[4:5], v8, s[8:11], 0 offen glc3766; GFX10-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)3767; GFX10-NEXT:    s_xor_b32 exec_lo, exec_lo, s43768; GFX10-NEXT:    s_cbranch_execnz .LBB12_43769; GFX10-NEXT:  ; %bb.5: ; in Loop: Header=BB12_3 Depth=13770; GFX10-NEXT:    s_mov_b32 exec_lo, s63771; GFX10-NEXT:    s_waitcnt vmcnt(0)3772; GFX10-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v4, v63773; GFX10-NEXT:    v_mov_b32_e32 v6, v43774; GFX10-NEXT:    buffer_gl1_inv3775; GFX10-NEXT:    buffer_gl0_inv3776; GFX10-NEXT:    s_or_b32 s5, vcc_lo, s53777; GFX10-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)3778; GFX10-NEXT:    s_andn2_b32 exec_lo, exec_lo, s53779; GFX10-NEXT:    s_cbranch_execnz .LBB12_33780; GFX10-NEXT:  ; %bb.6: ; %atomicrmw.end3781; GFX10-NEXT:    s_or_b32 exec_lo, exec_lo, s53782; GFX10-NEXT:    v_lshrrev_b32_e32 v0, v7, v43783; GFX10-NEXT:    s_setpc_b64 s[30:31]3784;3785; GFX90A-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__waterfall__amdgpu_no_fine_grained_memory:3786; GFX90A:       ; %bb.0:3787; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3788; GFX90A-NEXT:    v_add_u32_e32 v4, 0x200, v43789; GFX90A-NEXT:    v_and_b32_e32 v9, -4, v43790; GFX90A-NEXT:    v_and_b32_e32 v4, 3, v43791; GFX90A-NEXT:    v_lshlrev_b32_e32 v8, 3, v43792; GFX90A-NEXT:    s_mov_b32 s4, 0xffff3793; GFX90A-NEXT:    v_lshlrev_b32_e64 v4, v8, s43794; GFX90A-NEXT:    v_not_b32_e32 v10, v43795; GFX90A-NEXT:    s_mov_b64 s[6:7], exec3796; GFX90A-NEXT:  .LBB12_1: ; =>This Inner Loop Header: Depth=13797; GFX90A-NEXT:    v_readfirstlane_b32 s8, v03798; GFX90A-NEXT:    v_readfirstlane_b32 s9, v13799; GFX90A-NEXT:    v_readfirstlane_b32 s10, v23800; GFX90A-NEXT:    v_readfirstlane_b32 s11, v33801; GFX90A-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]3802; GFX90A-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]3803; GFX90A-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]3804; GFX90A-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]3805; GFX90A-NEXT:    s_nop 03806; GFX90A-NEXT:    buffer_load_dword v7, v9, s[8:11], 0 offen3807; GFX90A-NEXT:    s_xor_b64 exec, exec, s[4:5]3808; GFX90A-NEXT:    s_cbranch_execnz .LBB12_13809; GFX90A-NEXT:  ; %bb.2:3810; GFX90A-NEXT:    s_mov_b64 exec, s[6:7]3811; GFX90A-NEXT:    s_mov_b64 s[6:7], 03812; GFX90A-NEXT:    v_max_f16_e32 v11, v5, v53813; GFX90A-NEXT:  .LBB12_3: ; %atomicrmw.start3814; GFX90A-NEXT:    ; =>This Loop Header: Depth=13815; GFX90A-NEXT:    ; Child Loop BB12_4 Depth 23816; GFX90A-NEXT:    s_waitcnt vmcnt(0)3817; GFX90A-NEXT:    v_lshrrev_b32_e32 v4, v8, v73818; GFX90A-NEXT:    v_max_f16_e32 v4, v4, v43819; GFX90A-NEXT:    v_min_f16_e32 v4, v4, v113820; GFX90A-NEXT:    v_lshlrev_b32_e32 v4, v8, v43821; GFX90A-NEXT:    v_and_or_b32 v6, v7, v10, v43822; GFX90A-NEXT:    s_mov_b64 s[12:13], exec3823; GFX90A-NEXT:    v_pk_mov_b32 v[4:5], v[6:7], v[6:7] op_sel:[0,1]3824; GFX90A-NEXT:  .LBB12_4: ; Parent Loop BB12_3 Depth=13825; GFX90A-NEXT:    ; => This Inner Loop Header: Depth=23826; GFX90A-NEXT:    v_readfirstlane_b32 s8, v03827; GFX90A-NEXT:    v_readfirstlane_b32 s9, v13828; GFX90A-NEXT:    v_readfirstlane_b32 s10, v23829; GFX90A-NEXT:    v_readfirstlane_b32 s11, v33830; GFX90A-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]3831; GFX90A-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]3832; GFX90A-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]3833; GFX90A-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]3834; GFX90A-NEXT:    s_waitcnt vmcnt(0)3835; GFX90A-NEXT:    buffer_atomic_cmpswap v[4:5], v9, s[8:11], 0 offen glc3836; GFX90A-NEXT:    s_xor_b64 exec, exec, s[4:5]3837; GFX90A-NEXT:    s_cbranch_execnz .LBB12_43838; GFX90A-NEXT:  ; %bb.5: ; in Loop: Header=BB12_3 Depth=13839; GFX90A-NEXT:    s_mov_b64 exec, s[12:13]3840; GFX90A-NEXT:    s_waitcnt vmcnt(0)3841; GFX90A-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v73842; GFX90A-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]3843; GFX90A-NEXT:    v_mov_b32_e32 v7, v43844; GFX90A-NEXT:    buffer_wbinvl13845; GFX90A-NEXT:    s_andn2_b64 exec, exec, s[6:7]3846; GFX90A-NEXT:    s_cbranch_execnz .LBB12_33847; GFX90A-NEXT:  ; %bb.6: ; %atomicrmw.end3848; GFX90A-NEXT:    s_or_b64 exec, exec, s[6:7]3849; GFX90A-NEXT:    v_lshrrev_b32_e32 v0, v8, v43850; GFX90A-NEXT:    s_setpc_b64 s[30:31]3851;3852; GFX908-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__waterfall__amdgpu_no_fine_grained_memory:3853; GFX908:       ; %bb.0:3854; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3855; GFX908-NEXT:    v_add_u32_e32 v4, 0x200, v43856; GFX908-NEXT:    v_and_b32_e32 v8, -4, v43857; GFX908-NEXT:    v_and_b32_e32 v4, 3, v43858; GFX908-NEXT:    v_lshlrev_b32_e32 v7, 3, v43859; GFX908-NEXT:    s_mov_b32 s4, 0xffff3860; GFX908-NEXT:    v_lshlrev_b32_e64 v4, v7, s43861; GFX908-NEXT:    v_not_b32_e32 v9, v43862; GFX908-NEXT:    s_mov_b64 s[6:7], exec3863; GFX908-NEXT:  .LBB12_1: ; =>This Inner Loop Header: Depth=13864; GFX908-NEXT:    v_readfirstlane_b32 s8, v03865; GFX908-NEXT:    v_readfirstlane_b32 s9, v13866; GFX908-NEXT:    v_readfirstlane_b32 s10, v23867; GFX908-NEXT:    v_readfirstlane_b32 s11, v33868; GFX908-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]3869; GFX908-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]3870; GFX908-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]3871; GFX908-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]3872; GFX908-NEXT:    s_nop 03873; GFX908-NEXT:    buffer_load_dword v6, v8, s[8:11], 0 offen3874; GFX908-NEXT:    s_xor_b64 exec, exec, s[4:5]3875; GFX908-NEXT:    s_cbranch_execnz .LBB12_13876; GFX908-NEXT:  ; %bb.2:3877; GFX908-NEXT:    s_mov_b64 exec, s[6:7]3878; GFX908-NEXT:    s_mov_b64 s[6:7], 03879; GFX908-NEXT:    v_max_f16_e32 v10, v5, v53880; GFX908-NEXT:  .LBB12_3: ; %atomicrmw.start3881; GFX908-NEXT:    ; =>This Loop Header: Depth=13882; GFX908-NEXT:    ; Child Loop BB12_4 Depth 23883; GFX908-NEXT:    s_waitcnt vmcnt(0)3884; GFX908-NEXT:    v_lshrrev_b32_e32 v4, v7, v63885; GFX908-NEXT:    v_max_f16_e32 v4, v4, v43886; GFX908-NEXT:    v_min_f16_e32 v4, v4, v103887; GFX908-NEXT:    v_lshlrev_b32_e32 v4, v7, v43888; GFX908-NEXT:    v_and_or_b32 v5, v6, v9, v43889; GFX908-NEXT:    v_mov_b32_e32 v4, v53890; GFX908-NEXT:    s_mov_b64 s[12:13], exec3891; GFX908-NEXT:    v_mov_b32_e32 v5, v63892; GFX908-NEXT:  .LBB12_4: ; Parent Loop BB12_3 Depth=13893; GFX908-NEXT:    ; => This Inner Loop Header: Depth=23894; GFX908-NEXT:    v_readfirstlane_b32 s8, v03895; GFX908-NEXT:    v_readfirstlane_b32 s9, v13896; GFX908-NEXT:    v_readfirstlane_b32 s10, v23897; GFX908-NEXT:    v_readfirstlane_b32 s11, v33898; GFX908-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]3899; GFX908-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]3900; GFX908-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]3901; GFX908-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]3902; GFX908-NEXT:    s_waitcnt vmcnt(0)3903; GFX908-NEXT:    buffer_atomic_cmpswap v[4:5], v8, s[8:11], 0 offen glc3904; GFX908-NEXT:    s_xor_b64 exec, exec, s[4:5]3905; GFX908-NEXT:    s_cbranch_execnz .LBB12_43906; GFX908-NEXT:  ; %bb.5: ; in Loop: Header=BB12_3 Depth=13907; GFX908-NEXT:    s_mov_b64 exec, s[12:13]3908; GFX908-NEXT:    s_waitcnt vmcnt(0)3909; GFX908-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v63910; GFX908-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]3911; GFX908-NEXT:    v_mov_b32_e32 v6, v43912; GFX908-NEXT:    buffer_wbinvl13913; GFX908-NEXT:    s_andn2_b64 exec, exec, s[6:7]3914; GFX908-NEXT:    s_cbranch_execnz .LBB12_33915; GFX908-NEXT:  ; %bb.6: ; %atomicrmw.end3916; GFX908-NEXT:    s_or_b64 exec, exec, s[6:7]3917; GFX908-NEXT:    v_lshrrev_b32_e32 v0, v7, v43918; GFX908-NEXT:    s_setpc_b64 s[30:31]3919;3920; GFX8-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__waterfall__amdgpu_no_fine_grained_memory:3921; GFX8:       ; %bb.0:3922; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3923; GFX8-NEXT:    v_add_u32_e32 v4, vcc, 0x200, v43924; GFX8-NEXT:    v_and_b32_e32 v8, -4, v43925; GFX8-NEXT:    v_and_b32_e32 v4, 3, v43926; GFX8-NEXT:    v_lshlrev_b32_e32 v7, 3, v43927; GFX8-NEXT:    s_mov_b32 s4, 0xffff3928; GFX8-NEXT:    v_lshlrev_b32_e64 v4, v7, s43929; GFX8-NEXT:    v_not_b32_e32 v9, v43930; GFX8-NEXT:    s_mov_b64 s[6:7], exec3931; GFX8-NEXT:  .LBB12_1: ; =>This Inner Loop Header: Depth=13932; GFX8-NEXT:    v_readfirstlane_b32 s8, v03933; GFX8-NEXT:    v_readfirstlane_b32 s9, v13934; GFX8-NEXT:    v_readfirstlane_b32 s10, v23935; GFX8-NEXT:    v_readfirstlane_b32 s11, v33936; GFX8-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]3937; GFX8-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]3938; GFX8-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]3939; GFX8-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]3940; GFX8-NEXT:    s_nop 03941; GFX8-NEXT:    buffer_load_dword v6, v8, s[8:11], 0 offen3942; GFX8-NEXT:    s_xor_b64 exec, exec, s[4:5]3943; GFX8-NEXT:    s_cbranch_execnz .LBB12_13944; GFX8-NEXT:  ; %bb.2:3945; GFX8-NEXT:    s_mov_b64 exec, s[6:7]3946; GFX8-NEXT:    s_mov_b64 s[6:7], 03947; GFX8-NEXT:    v_max_f16_e32 v10, v5, v53948; GFX8-NEXT:  .LBB12_3: ; %atomicrmw.start3949; GFX8-NEXT:    ; =>This Loop Header: Depth=13950; GFX8-NEXT:    ; Child Loop BB12_4 Depth 23951; GFX8-NEXT:    s_waitcnt vmcnt(0)3952; GFX8-NEXT:    v_lshrrev_b32_e32 v4, v7, v63953; GFX8-NEXT:    v_max_f16_e32 v4, v4, v43954; GFX8-NEXT:    v_min_f16_e32 v4, v4, v103955; GFX8-NEXT:    v_lshlrev_b32_e32 v4, v7, v43956; GFX8-NEXT:    v_and_b32_e32 v5, v6, v93957; GFX8-NEXT:    v_or_b32_e32 v5, v5, v43958; GFX8-NEXT:    v_mov_b32_e32 v4, v53959; GFX8-NEXT:    s_mov_b64 s[12:13], exec3960; GFX8-NEXT:    v_mov_b32_e32 v5, v63961; GFX8-NEXT:  .LBB12_4: ; Parent Loop BB12_3 Depth=13962; GFX8-NEXT:    ; => This Inner Loop Header: Depth=23963; GFX8-NEXT:    v_readfirstlane_b32 s8, v03964; GFX8-NEXT:    v_readfirstlane_b32 s9, v13965; GFX8-NEXT:    v_readfirstlane_b32 s10, v23966; GFX8-NEXT:    v_readfirstlane_b32 s11, v33967; GFX8-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]3968; GFX8-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]3969; GFX8-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]3970; GFX8-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]3971; GFX8-NEXT:    s_waitcnt vmcnt(0)3972; GFX8-NEXT:    buffer_atomic_cmpswap v[4:5], v8, s[8:11], 0 offen glc3973; GFX8-NEXT:    s_xor_b64 exec, exec, s[4:5]3974; GFX8-NEXT:    s_cbranch_execnz .LBB12_43975; GFX8-NEXT:  ; %bb.5: ; in Loop: Header=BB12_3 Depth=13976; GFX8-NEXT:    s_mov_b64 exec, s[12:13]3977; GFX8-NEXT:    s_waitcnt vmcnt(0)3978; GFX8-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v63979; GFX8-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]3980; GFX8-NEXT:    v_mov_b32_e32 v6, v43981; GFX8-NEXT:    buffer_wbinvl13982; GFX8-NEXT:    s_andn2_b64 exec, exec, s[6:7]3983; GFX8-NEXT:    s_cbranch_execnz .LBB12_33984; GFX8-NEXT:  ; %bb.6: ; %atomicrmw.end3985; GFX8-NEXT:    s_or_b64 exec, exec, s[6:7]3986; GFX8-NEXT:    v_lshrrev_b32_e32 v0, v7, v43987; GFX8-NEXT:    s_setpc_b64 s[30:31]3988;3989; GFX7-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__waterfall__amdgpu_no_fine_grained_memory:3990; GFX7:       ; %bb.0:3991; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3992; GFX7-NEXT:    v_add_i32_e32 v4, vcc, 0x200, v43993; GFX7-NEXT:    v_and_b32_e32 v8, -4, v43994; GFX7-NEXT:    v_and_b32_e32 v4, 3, v43995; GFX7-NEXT:    v_lshlrev_b32_e32 v7, 3, v43996; GFX7-NEXT:    v_lshl_b32_e32 v4, 0xffff, v73997; GFX7-NEXT:    v_not_b32_e32 v9, v43998; GFX7-NEXT:    s_mov_b64 s[6:7], exec3999; GFX7-NEXT:  .LBB12_1: ; =>This Inner Loop Header: Depth=14000; GFX7-NEXT:    v_readfirstlane_b32 s8, v04001; GFX7-NEXT:    v_readfirstlane_b32 s9, v14002; GFX7-NEXT:    v_readfirstlane_b32 s10, v24003; GFX7-NEXT:    v_readfirstlane_b32 s11, v34004; GFX7-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]4005; GFX7-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]4006; GFX7-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]4007; GFX7-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]4008; GFX7-NEXT:    buffer_load_dword v6, v8, s[8:11], 0 offen4009; GFX7-NEXT:    s_xor_b64 exec, exec, s[4:5]4010; GFX7-NEXT:    s_cbranch_execnz .LBB12_14011; GFX7-NEXT:  ; %bb.2:4012; GFX7-NEXT:    s_mov_b64 exec, s[6:7]4013; GFX7-NEXT:    v_cvt_f16_f32_e32 v4, v54014; GFX7-NEXT:    s_mov_b64 s[6:7], 04015; GFX7-NEXT:    v_cvt_f32_f16_e32 v10, v44016; GFX7-NEXT:  .LBB12_3: ; %atomicrmw.start4017; GFX7-NEXT:    ; =>This Loop Header: Depth=14018; GFX7-NEXT:    ; Child Loop BB12_4 Depth 24019; GFX7-NEXT:    s_waitcnt vmcnt(0)4020; GFX7-NEXT:    v_lshrrev_b32_e32 v4, v7, v64021; GFX7-NEXT:    v_cvt_f32_f16_e32 v4, v44022; GFX7-NEXT:    v_and_b32_e32 v5, v6, v94023; GFX7-NEXT:    s_mov_b64 s[12:13], exec4024; GFX7-NEXT:    v_min_f32_e32 v4, v4, v104025; GFX7-NEXT:    v_cvt_f16_f32_e32 v4, v44026; GFX7-NEXT:    v_lshlrev_b32_e32 v4, v7, v44027; GFX7-NEXT:    v_or_b32_e32 v5, v5, v44028; GFX7-NEXT:    v_mov_b32_e32 v4, v54029; GFX7-NEXT:    v_mov_b32_e32 v5, v64030; GFX7-NEXT:  .LBB12_4: ; Parent Loop BB12_3 Depth=14031; GFX7-NEXT:    ; => This Inner Loop Header: Depth=24032; GFX7-NEXT:    v_readfirstlane_b32 s8, v04033; GFX7-NEXT:    v_readfirstlane_b32 s9, v14034; GFX7-NEXT:    v_readfirstlane_b32 s10, v24035; GFX7-NEXT:    v_readfirstlane_b32 s11, v34036; GFX7-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]4037; GFX7-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]4038; GFX7-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]4039; GFX7-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]4040; GFX7-NEXT:    s_waitcnt vmcnt(0)4041; GFX7-NEXT:    buffer_atomic_cmpswap v[4:5], v8, s[8:11], 0 offen glc4042; GFX7-NEXT:    s_xor_b64 exec, exec, s[4:5]4043; GFX7-NEXT:    s_cbranch_execnz .LBB12_44044; GFX7-NEXT:  ; %bb.5: ; in Loop: Header=BB12_3 Depth=14045; GFX7-NEXT:    s_mov_b64 exec, s[12:13]4046; GFX7-NEXT:    s_waitcnt vmcnt(0)4047; GFX7-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v64048; GFX7-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]4049; GFX7-NEXT:    v_mov_b32_e32 v6, v44050; GFX7-NEXT:    buffer_wbinvl14051; GFX7-NEXT:    s_andn2_b64 exec, exec, s[6:7]4052; GFX7-NEXT:    s_cbranch_execnz .LBB12_34053; GFX7-NEXT:  ; %bb.6: ; %atomicrmw.end4054; GFX7-NEXT:    s_or_b64 exec, exec, s[6:7]4055; GFX7-NEXT:    v_lshrrev_b32_e32 v0, v7, v44056; GFX7-NEXT:    v_cvt_f32_f16_e32 v0, v04057; GFX7-NEXT:    s_setpc_b64 s[30:31]4058;4059; GFX6-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_f16__offset__waterfall__amdgpu_no_fine_grained_memory:4060; GFX6:       ; %bb.0:4061; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4062; GFX6-NEXT:    v_add_i32_e32 v4, vcc, 0x200, v44063; GFX6-NEXT:    v_and_b32_e32 v8, -4, v44064; GFX6-NEXT:    v_and_b32_e32 v4, 3, v44065; GFX6-NEXT:    v_lshlrev_b32_e32 v7, 3, v44066; GFX6-NEXT:    v_lshl_b32_e32 v4, 0xffff, v74067; GFX6-NEXT:    v_not_b32_e32 v9, v44068; GFX6-NEXT:    s_mov_b64 s[6:7], exec4069; GFX6-NEXT:  .LBB12_1: ; =>This Inner Loop Header: Depth=14070; GFX6-NEXT:    v_readfirstlane_b32 s8, v04071; GFX6-NEXT:    v_readfirstlane_b32 s9, v14072; GFX6-NEXT:    v_readfirstlane_b32 s10, v24073; GFX6-NEXT:    v_readfirstlane_b32 s11, v34074; GFX6-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]4075; GFX6-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]4076; GFX6-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]4077; GFX6-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]4078; GFX6-NEXT:    buffer_load_dword v6, v8, s[8:11], 0 offen4079; GFX6-NEXT:    s_xor_b64 exec, exec, s[4:5]4080; GFX6-NEXT:    s_cbranch_execnz .LBB12_14081; GFX6-NEXT:  ; %bb.2:4082; GFX6-NEXT:    s_mov_b64 exec, s[6:7]4083; GFX6-NEXT:    v_cvt_f16_f32_e32 v4, v54084; GFX6-NEXT:    s_mov_b64 s[6:7], 04085; GFX6-NEXT:    v_cvt_f32_f16_e32 v10, v44086; GFX6-NEXT:  .LBB12_3: ; %atomicrmw.start4087; GFX6-NEXT:    ; =>This Loop Header: Depth=14088; GFX6-NEXT:    ; Child Loop BB12_4 Depth 24089; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0)4090; GFX6-NEXT:    v_lshrrev_b32_e32 v4, v7, v64091; GFX6-NEXT:    v_cvt_f32_f16_e32 v4, v44092; GFX6-NEXT:    v_and_b32_e32 v5, v6, v94093; GFX6-NEXT:    s_mov_b64 s[12:13], exec4094; GFX6-NEXT:    v_min_f32_e32 v4, v4, v104095; GFX6-NEXT:    v_cvt_f16_f32_e32 v4, v44096; GFX6-NEXT:    v_lshlrev_b32_e32 v4, v7, v44097; GFX6-NEXT:    v_or_b32_e32 v5, v5, v44098; GFX6-NEXT:    v_mov_b32_e32 v4, v54099; GFX6-NEXT:    v_mov_b32_e32 v5, v64100; GFX6-NEXT:  .LBB12_4: ; Parent Loop BB12_3 Depth=14101; GFX6-NEXT:    ; => This Inner Loop Header: Depth=24102; GFX6-NEXT:    v_readfirstlane_b32 s8, v04103; GFX6-NEXT:    v_readfirstlane_b32 s9, v14104; GFX6-NEXT:    v_readfirstlane_b32 s10, v24105; GFX6-NEXT:    v_readfirstlane_b32 s11, v34106; GFX6-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]4107; GFX6-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]4108; GFX6-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]4109; GFX6-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]4110; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0)4111; GFX6-NEXT:    buffer_atomic_cmpswap v[4:5], v8, s[8:11], 0 offen glc4112; GFX6-NEXT:    s_xor_b64 exec, exec, s[4:5]4113; GFX6-NEXT:    s_cbranch_execnz .LBB12_44114; GFX6-NEXT:  ; %bb.5: ; in Loop: Header=BB12_3 Depth=14115; GFX6-NEXT:    s_mov_b64 exec, s[12:13]4116; GFX6-NEXT:    s_waitcnt vmcnt(0)4117; GFX6-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v64118; GFX6-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]4119; GFX6-NEXT:    v_mov_b32_e32 v6, v44120; GFX6-NEXT:    buffer_wbinvl14121; GFX6-NEXT:    s_andn2_b64 exec, exec, s[6:7]4122; GFX6-NEXT:    s_cbranch_execnz .LBB12_34123; GFX6-NEXT:  ; %bb.6: ; %atomicrmw.end4124; GFX6-NEXT:    s_or_b64 exec, exec, s[6:7]4125; GFX6-NEXT:    v_lshrrev_b32_e32 v0, v7, v44126; GFX6-NEXT:    v_cvt_f32_f16_e32 v0, v04127; GFX6-NEXT:    s_waitcnt expcnt(0)4128; GFX6-NEXT:    s_setpc_b64 s[30:31]4129  %gep = getelementptr half, ptr addrspace(7) %ptr, i32 2564130  %result = atomicrmw fmin ptr addrspace(7) %gep, half %val syncscope("agent") seq_cst, !amdgpu.no.fine.grained.memory !04131  ret half %result4132}4133 4134; --------------------------------------------------------------------4135; bfloat4136; --------------------------------------------------------------------4137 4138define bfloat @buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__amdgpu_no_fine_grained_memory(ptr addrspace(7) inreg %ptr, bfloat %val) #0 {4139; GFX12-TRUE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__amdgpu_no_fine_grained_memory:4140; GFX12-TRUE16:       ; %bb.0:4141; GFX12-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x04142; GFX12-TRUE16-NEXT:    s_wait_expcnt 0x04143; GFX12-TRUE16-NEXT:    s_wait_samplecnt 0x04144; GFX12-TRUE16-NEXT:    s_wait_bvhcnt 0x04145; GFX12-TRUE16-NEXT:    s_wait_kmcnt 0x04146; GFX12-TRUE16-NEXT:    s_addk_co_i32 s16, 0x2004147; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4148; GFX12-TRUE16-NEXT:    s_and_b32 s4, s16, -44149; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4150; GFX12-TRUE16-NEXT:    v_mov_b32_e32 v5, s44151; GFX12-TRUE16-NEXT:    s_and_b32 s4, s16, 34152; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4153; GFX12-TRUE16-NEXT:    s_lshl_b32 s4, s4, 34154; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4155; GFX12-TRUE16-NEXT:    s_lshl_b32 s5, 0xffff, s44156; GFX12-TRUE16-NEXT:    buffer_load_b32 v2, v5, s[0:3], null offen4157; GFX12-TRUE16-NEXT:    s_not_b32 s6, s54158; GFX12-TRUE16-NEXT:    s_mov_b32 s5, 04159; GFX12-TRUE16-NEXT:  .LBB13_1: ; %atomicrmw.start4160; GFX12-TRUE16-NEXT:    ; =>This Inner Loop Header: Depth=14161; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x04162; GFX12-TRUE16-NEXT:    v_lshrrev_b32_e32 v1, s4, v24163; GFX12-TRUE16-NEXT:    v_mov_b16_e32 v3.l, 04164; GFX12-TRUE16-NEXT:    v_mov_b16_e32 v3.h, v0.l4165; GFX12-TRUE16-NEXT:    s_wait_storecnt 0x04166; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)4167; GFX12-TRUE16-NEXT:    v_lshlrev_b32_e32 v1, 16, v14168; GFX12-TRUE16-NEXT:    v_min_num_f32_e32 v1, v1, v34169; GFX12-TRUE16-NEXT:    v_mov_b16_e32 v3.h, v3.l4170; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_2) | instid1(VALU_DEP_3)4171; GFX12-TRUE16-NEXT:    v_bfe_u32 v4, v1, 16, 14172; GFX12-TRUE16-NEXT:    v_or_b32_e32 v6, 0x400000, v14173; GFX12-TRUE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v1, v14174; GFX12-TRUE16-NEXT:    v_add3_u32 v4, v4, v1, 0x7fff4175; GFX12-TRUE16-NEXT:    s_wait_alu depctr_va_vcc(0)4176; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4177; GFX12-TRUE16-NEXT:    v_cndmask_b32_e32 v1, v4, v6, vcc_lo4178; GFX12-TRUE16-NEXT:    v_mov_b16_e32 v3.l, v1.h4179; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_1)4180; GFX12-TRUE16-NEXT:    v_lshlrev_b32_e32 v1, s4, v34181; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4182; GFX12-TRUE16-NEXT:    v_and_or_b32 v1, v2, s6, v14183; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)4184; GFX12-TRUE16-NEXT:    v_dual_mov_b32 v4, v2 :: v_dual_mov_b32 v3, v14185; GFX12-TRUE16-NEXT:    buffer_atomic_cmpswap_b32 v[3:4], v5, s[0:3], null offen th:TH_ATOMIC_RETURN4186; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x04187; GFX12-TRUE16-NEXT:    global_inv scope:SCOPE_DEV4188; GFX12-TRUE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v3, v24189; GFX12-TRUE16-NEXT:    v_mov_b32_e32 v2, v34190; GFX12-TRUE16-NEXT:    s_or_b32 s5, vcc_lo, s54191; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4192; GFX12-TRUE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s54193; GFX12-TRUE16-NEXT:    s_cbranch_execnz .LBB13_14194; GFX12-TRUE16-NEXT:  ; %bb.2: ; %atomicrmw.end4195; GFX12-TRUE16-NEXT:    s_or_b32 exec_lo, exec_lo, s54196; GFX12-TRUE16-NEXT:    v_lshrrev_b32_e32 v0, s4, v34197; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x04198; GFX12-TRUE16-NEXT:    s_setpc_b64 s[30:31]4199;4200; GFX12-FAKE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__amdgpu_no_fine_grained_memory:4201; GFX12-FAKE16:       ; %bb.0:4202; GFX12-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x04203; GFX12-FAKE16-NEXT:    s_wait_expcnt 0x04204; GFX12-FAKE16-NEXT:    s_wait_samplecnt 0x04205; GFX12-FAKE16-NEXT:    s_wait_bvhcnt 0x04206; GFX12-FAKE16-NEXT:    s_wait_kmcnt 0x04207; GFX12-FAKE16-NEXT:    s_addk_co_i32 s16, 0x2004208; GFX12-FAKE16-NEXT:    v_lshlrev_b32_e32 v5, 16, v04209; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4210; GFX12-FAKE16-NEXT:    s_and_b32 s4, s16, -44211; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4212; GFX12-FAKE16-NEXT:    v_mov_b32_e32 v4, s44213; GFX12-FAKE16-NEXT:    s_and_b32 s4, s16, 34214; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4215; GFX12-FAKE16-NEXT:    s_lshl_b32 s4, s4, 34216; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4217; GFX12-FAKE16-NEXT:    s_lshl_b32 s5, 0xffff, s44218; GFX12-FAKE16-NEXT:    buffer_load_b32 v1, v4, s[0:3], null offen4219; GFX12-FAKE16-NEXT:    s_not_b32 s6, s54220; GFX12-FAKE16-NEXT:    s_mov_b32 s5, 04221; GFX12-FAKE16-NEXT:  .LBB13_1: ; %atomicrmw.start4222; GFX12-FAKE16-NEXT:    ; =>This Inner Loop Header: Depth=14223; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x04224; GFX12-FAKE16-NEXT:    v_lshrrev_b32_e32 v0, s4, v14225; GFX12-FAKE16-NEXT:    s_wait_storecnt 0x04226; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4227; GFX12-FAKE16-NEXT:    v_lshlrev_b32_e32 v0, 16, v04228; GFX12-FAKE16-NEXT:    v_min_num_f32_e32 v0, v0, v54229; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_3)4230; GFX12-FAKE16-NEXT:    v_bfe_u32 v2, v0, 16, 14231; GFX12-FAKE16-NEXT:    v_or_b32_e32 v3, 0x400000, v04232; GFX12-FAKE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v0, v04233; GFX12-FAKE16-NEXT:    v_add3_u32 v2, v2, v0, 0x7fff4234; GFX12-FAKE16-NEXT:    s_wait_alu depctr_va_vcc(0)4235; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4236; GFX12-FAKE16-NEXT:    v_cndmask_b32_e32 v0, v2, v3, vcc_lo4237; GFX12-FAKE16-NEXT:    v_lshrrev_b32_e32 v0, 16, v04238; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_1)4239; GFX12-FAKE16-NEXT:    v_lshlrev_b32_e32 v0, s4, v04240; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4241; GFX12-FAKE16-NEXT:    v_and_or_b32 v0, v1, s6, v04242; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)4243; GFX12-FAKE16-NEXT:    v_dual_mov_b32 v3, v1 :: v_dual_mov_b32 v2, v04244; GFX12-FAKE16-NEXT:    buffer_atomic_cmpswap_b32 v[2:3], v4, s[0:3], null offen th:TH_ATOMIC_RETURN4245; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x04246; GFX12-FAKE16-NEXT:    global_inv scope:SCOPE_DEV4247; GFX12-FAKE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v2, v14248; GFX12-FAKE16-NEXT:    v_mov_b32_e32 v1, v24249; GFX12-FAKE16-NEXT:    s_or_b32 s5, vcc_lo, s54250; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4251; GFX12-FAKE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s54252; GFX12-FAKE16-NEXT:    s_cbranch_execnz .LBB13_14253; GFX12-FAKE16-NEXT:  ; %bb.2: ; %atomicrmw.end4254; GFX12-FAKE16-NEXT:    s_or_b32 exec_lo, exec_lo, s54255; GFX12-FAKE16-NEXT:    v_lshrrev_b32_e32 v0, s4, v24256; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x04257; GFX12-FAKE16-NEXT:    s_setpc_b64 s[30:31]4258;4259; GFX942-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__amdgpu_no_fine_grained_memory:4260; GFX942:       ; %bb.0:4261; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4262; GFX942-NEXT:    s_addk_i32 s16, 0x2004263; GFX942-NEXT:    s_and_b32 s4, s16, -44264; GFX942-NEXT:    v_mov_b32_e32 v4, s44265; GFX942-NEXT:    buffer_load_dword v1, v4, s[0:3], 0 offen4266; GFX942-NEXT:    s_and_b32 s4, s16, 34267; GFX942-NEXT:    s_lshl_b32 s6, s4, 34268; GFX942-NEXT:    s_lshl_b32 s4, 0xffff, s64269; GFX942-NEXT:    s_not_b32 s7, s44270; GFX942-NEXT:    s_mov_b64 s[4:5], 04271; GFX942-NEXT:    v_lshlrev_b32_e32 v5, 16, v04272; GFX942-NEXT:    s_movk_i32 s8, 0x7fff4273; GFX942-NEXT:  .LBB13_1: ; %atomicrmw.start4274; GFX942-NEXT:    ; =>This Inner Loop Header: Depth=14275; GFX942-NEXT:    s_waitcnt vmcnt(0)4276; GFX942-NEXT:    v_lshrrev_b32_sdwa v0, s6, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4277; GFX942-NEXT:    buffer_wbl2 sc14278; GFX942-NEXT:    v_min_f32_e32 v0, v0, v54279; GFX942-NEXT:    v_bfe_u32 v2, v0, 16, 14280; GFX942-NEXT:    v_or_b32_e32 v3, 0x400000, v04281; GFX942-NEXT:    v_add3_u32 v2, v2, v0, s84282; GFX942-NEXT:    v_cmp_u_f32_e32 vcc, v0, v04283; GFX942-NEXT:    s_nop 14284; GFX942-NEXT:    v_cndmask_b32_e32 v0, v2, v3, vcc4285; GFX942-NEXT:    v_lshlrev_b32_sdwa v0, s6, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_14286; GFX942-NEXT:    v_and_or_b32 v0, v1, s7, v04287; GFX942-NEXT:    v_mov_b64_e32 v[2:3], v[0:1]4288; GFX942-NEXT:    buffer_atomic_cmpswap v[2:3], v4, s[0:3], 0 offen sc04289; GFX942-NEXT:    s_waitcnt vmcnt(0)4290; GFX942-NEXT:    buffer_inv sc14291; GFX942-NEXT:    v_cmp_eq_u32_e32 vcc, v2, v14292; GFX942-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]4293; GFX942-NEXT:    v_mov_b32_e32 v1, v24294; GFX942-NEXT:    s_andn2_b64 exec, exec, s[4:5]4295; GFX942-NEXT:    s_cbranch_execnz .LBB13_14296; GFX942-NEXT:  ; %bb.2: ; %atomicrmw.end4297; GFX942-NEXT:    s_or_b64 exec, exec, s[4:5]4298; GFX942-NEXT:    v_lshrrev_b32_e32 v0, s6, v24299; GFX942-NEXT:    s_setpc_b64 s[30:31]4300;4301; GFX11-TRUE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__amdgpu_no_fine_grained_memory:4302; GFX11-TRUE16:       ; %bb.0:4303; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4304; GFX11-TRUE16-NEXT:    s_addk_i32 s16, 0x2004305; GFX11-TRUE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(SALU_CYCLE_1)4306; GFX11-TRUE16-NEXT:    s_and_b32 s4, s16, -44307; GFX11-TRUE16-NEXT:    v_mov_b32_e32 v5, s44308; GFX11-TRUE16-NEXT:    s_and_b32 s4, s16, 34309; GFX11-TRUE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(SALU_CYCLE_1)4310; GFX11-TRUE16-NEXT:    s_lshl_b32 s4, s4, 34311; GFX11-TRUE16-NEXT:    s_lshl_b32 s5, 0xffff, s44312; GFX11-TRUE16-NEXT:    buffer_load_b32 v2, v5, s[0:3], 0 offen4313; GFX11-TRUE16-NEXT:    s_not_b32 s6, s54314; GFX11-TRUE16-NEXT:    s_mov_b32 s5, 04315; GFX11-TRUE16-NEXT:    .p2align 64316; GFX11-TRUE16-NEXT:  .LBB13_1: ; %atomicrmw.start4317; GFX11-TRUE16-NEXT:    ; =>This Inner Loop Header: Depth=14318; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0)4319; GFX11-TRUE16-NEXT:    v_lshrrev_b32_e32 v1, s4, v24320; GFX11-TRUE16-NEXT:    v_mov_b16_e32 v3.l, 04321; GFX11-TRUE16-NEXT:    v_mov_b16_e32 v3.h, v0.l4322; GFX11-TRUE16-NEXT:    s_waitcnt_vscnt null, 0x04323; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)4324; GFX11-TRUE16-NEXT:    v_lshlrev_b32_e32 v1, 16, v14325; GFX11-TRUE16-NEXT:    v_min_f32_e32 v1, v1, v34326; GFX11-TRUE16-NEXT:    v_mov_b16_e32 v3.h, v3.l4327; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_2) | instid1(VALU_DEP_3)4328; GFX11-TRUE16-NEXT:    v_bfe_u32 v4, v1, 16, 14329; GFX11-TRUE16-NEXT:    v_or_b32_e32 v6, 0x400000, v14330; GFX11-TRUE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v1, v14331; GFX11-TRUE16-NEXT:    v_add3_u32 v4, v4, v1, 0x7fff4332; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4333; GFX11-TRUE16-NEXT:    v_cndmask_b32_e32 v1, v4, v6, vcc_lo4334; GFX11-TRUE16-NEXT:    v_mov_b16_e32 v3.l, v1.h4335; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4336; GFX11-TRUE16-NEXT:    v_lshlrev_b32_e32 v1, s4, v34337; GFX11-TRUE16-NEXT:    v_and_or_b32 v1, v2, s6, v14338; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)4339; GFX11-TRUE16-NEXT:    v_dual_mov_b32 v4, v2 :: v_dual_mov_b32 v3, v14340; GFX11-TRUE16-NEXT:    buffer_atomic_cmpswap_b32 v[3:4], v5, s[0:3], 0 offen glc4341; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0)4342; GFX11-TRUE16-NEXT:    buffer_gl1_inv4343; GFX11-TRUE16-NEXT:    buffer_gl0_inv4344; GFX11-TRUE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v3, v24345; GFX11-TRUE16-NEXT:    v_mov_b32_e32 v2, v34346; GFX11-TRUE16-NEXT:    s_or_b32 s5, vcc_lo, s54347; GFX11-TRUE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4348; GFX11-TRUE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s54349; GFX11-TRUE16-NEXT:    s_cbranch_execnz .LBB13_14350; GFX11-TRUE16-NEXT:  ; %bb.2: ; %atomicrmw.end4351; GFX11-TRUE16-NEXT:    s_or_b32 exec_lo, exec_lo, s54352; GFX11-TRUE16-NEXT:    v_lshrrev_b32_e32 v0, s4, v34353; GFX11-TRUE16-NEXT:    s_setpc_b64 s[30:31]4354;4355; GFX11-FAKE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__amdgpu_no_fine_grained_memory:4356; GFX11-FAKE16:       ; %bb.0:4357; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4358; GFX11-FAKE16-NEXT:    s_addk_i32 s16, 0x2004359; GFX11-FAKE16-NEXT:    v_lshlrev_b32_e32 v5, 16, v04360; GFX11-FAKE16-NEXT:    s_and_b32 s4, s16, -44361; GFX11-FAKE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1)4362; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v4, s44363; GFX11-FAKE16-NEXT:    s_and_b32 s4, s16, 34364; GFX11-FAKE16-NEXT:    s_lshl_b32 s4, s4, 34365; GFX11-FAKE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4366; GFX11-FAKE16-NEXT:    s_lshl_b32 s5, 0xffff, s44367; GFX11-FAKE16-NEXT:    buffer_load_b32 v1, v4, s[0:3], 0 offen4368; GFX11-FAKE16-NEXT:    s_not_b32 s6, s54369; GFX11-FAKE16-NEXT:    s_mov_b32 s5, 04370; GFX11-FAKE16-NEXT:    .p2align 64371; GFX11-FAKE16-NEXT:  .LBB13_1: ; %atomicrmw.start4372; GFX11-FAKE16-NEXT:    ; =>This Inner Loop Header: Depth=14373; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0)4374; GFX11-FAKE16-NEXT:    v_lshrrev_b32_e32 v0, s4, v14375; GFX11-FAKE16-NEXT:    s_waitcnt_vscnt null, 0x04376; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4377; GFX11-FAKE16-NEXT:    v_lshlrev_b32_e32 v0, 16, v04378; GFX11-FAKE16-NEXT:    v_min_f32_e32 v0, v0, v54379; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_3)4380; GFX11-FAKE16-NEXT:    v_bfe_u32 v2, v0, 16, 14381; GFX11-FAKE16-NEXT:    v_or_b32_e32 v3, 0x400000, v04382; GFX11-FAKE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v0, v04383; GFX11-FAKE16-NEXT:    v_add3_u32 v2, v2, v0, 0x7fff4384; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4385; GFX11-FAKE16-NEXT:    v_cndmask_b32_e32 v0, v2, v3, vcc_lo4386; GFX11-FAKE16-NEXT:    v_lshrrev_b32_e32 v0, 16, v04387; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4388; GFX11-FAKE16-NEXT:    v_lshlrev_b32_e32 v0, s4, v04389; GFX11-FAKE16-NEXT:    v_and_or_b32 v0, v1, s6, v04390; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)4391; GFX11-FAKE16-NEXT:    v_dual_mov_b32 v3, v1 :: v_dual_mov_b32 v2, v04392; GFX11-FAKE16-NEXT:    buffer_atomic_cmpswap_b32 v[2:3], v4, s[0:3], 0 offen glc4393; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0)4394; GFX11-FAKE16-NEXT:    buffer_gl1_inv4395; GFX11-FAKE16-NEXT:    buffer_gl0_inv4396; GFX11-FAKE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v2, v14397; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v1, v24398; GFX11-FAKE16-NEXT:    s_or_b32 s5, vcc_lo, s54399; GFX11-FAKE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4400; GFX11-FAKE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s54401; GFX11-FAKE16-NEXT:    s_cbranch_execnz .LBB13_14402; GFX11-FAKE16-NEXT:  ; %bb.2: ; %atomicrmw.end4403; GFX11-FAKE16-NEXT:    s_or_b32 exec_lo, exec_lo, s54404; GFX11-FAKE16-NEXT:    v_lshrrev_b32_e32 v0, s4, v24405; GFX11-FAKE16-NEXT:    s_setpc_b64 s[30:31]4406;4407; GFX10-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__amdgpu_no_fine_grained_memory:4408; GFX10:       ; %bb.0:4409; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4410; GFX10-NEXT:    s_addk_i32 s20, 0x2004411; GFX10-NEXT:    v_lshlrev_b32_e32 v5, 16, v04412; GFX10-NEXT:    s_and_b32 s4, s20, -44413; GFX10-NEXT:    v_mov_b32_e32 v4, s44414; GFX10-NEXT:    s_and_b32 s4, s20, 34415; GFX10-NEXT:    s_lshl_b32 s4, s4, 34416; GFX10-NEXT:    s_lshl_b32 s5, 0xffff, s44417; GFX10-NEXT:    buffer_load_dword v1, v4, s[16:19], 0 offen4418; GFX10-NEXT:    s_not_b32 s6, s54419; GFX10-NEXT:    s_mov_b32 s5, 04420; GFX10-NEXT:  .LBB13_1: ; %atomicrmw.start4421; GFX10-NEXT:    ; =>This Inner Loop Header: Depth=14422; GFX10-NEXT:    s_waitcnt vmcnt(0)4423; GFX10-NEXT:    v_lshrrev_b32_sdwa v0, s4, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4424; GFX10-NEXT:    s_waitcnt_vscnt null, 0x04425; GFX10-NEXT:    v_min_f32_e32 v0, v0, v54426; GFX10-NEXT:    v_bfe_u32 v2, v0, 16, 14427; GFX10-NEXT:    v_or_b32_e32 v3, 0x400000, v04428; GFX10-NEXT:    v_cmp_u_f32_e32 vcc_lo, v0, v04429; GFX10-NEXT:    v_add3_u32 v2, v2, v0, 0x7fff4430; GFX10-NEXT:    v_cndmask_b32_e32 v0, v2, v3, vcc_lo4431; GFX10-NEXT:    v_lshlrev_b32_sdwa v0, s4, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_14432; GFX10-NEXT:    v_and_or_b32 v0, v1, s6, v04433; GFX10-NEXT:    v_mov_b32_e32 v3, v14434; GFX10-NEXT:    v_mov_b32_e32 v2, v04435; GFX10-NEXT:    buffer_atomic_cmpswap v[2:3], v4, s[16:19], 0 offen glc4436; GFX10-NEXT:    s_waitcnt vmcnt(0)4437; GFX10-NEXT:    buffer_gl1_inv4438; GFX10-NEXT:    buffer_gl0_inv4439; GFX10-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v2, v14440; GFX10-NEXT:    v_mov_b32_e32 v1, v24441; GFX10-NEXT:    s_or_b32 s5, vcc_lo, s54442; GFX10-NEXT:    s_andn2_b32 exec_lo, exec_lo, s54443; GFX10-NEXT:    s_cbranch_execnz .LBB13_14444; GFX10-NEXT:  ; %bb.2: ; %atomicrmw.end4445; GFX10-NEXT:    s_or_b32 exec_lo, exec_lo, s54446; GFX10-NEXT:    v_lshrrev_b32_e32 v0, s4, v24447; GFX10-NEXT:    s_setpc_b64 s[30:31]4448;4449; GFX90A-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__amdgpu_no_fine_grained_memory:4450; GFX90A:       ; %bb.0:4451; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4452; GFX90A-NEXT:    s_addk_i32 s20, 0x2004453; GFX90A-NEXT:    s_and_b32 s4, s20, -44454; GFX90A-NEXT:    v_mov_b32_e32 v4, s44455; GFX90A-NEXT:    buffer_load_dword v1, v4, s[16:19], 0 offen4456; GFX90A-NEXT:    s_and_b32 s4, s20, 34457; GFX90A-NEXT:    s_lshl_b32 s6, s4, 34458; GFX90A-NEXT:    s_lshl_b32 s4, 0xffff, s64459; GFX90A-NEXT:    s_not_b32 s7, s44460; GFX90A-NEXT:    s_mov_b64 s[4:5], 04461; GFX90A-NEXT:    v_lshlrev_b32_e32 v5, 16, v04462; GFX90A-NEXT:    s_movk_i32 s8, 0x7fff4463; GFX90A-NEXT:  .LBB13_1: ; %atomicrmw.start4464; GFX90A-NEXT:    ; =>This Inner Loop Header: Depth=14465; GFX90A-NEXT:    s_waitcnt vmcnt(0)4466; GFX90A-NEXT:    v_lshrrev_b32_sdwa v0, s6, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4467; GFX90A-NEXT:    v_min_f32_e32 v0, v0, v54468; GFX90A-NEXT:    v_bfe_u32 v2, v0, 16, 14469; GFX90A-NEXT:    v_or_b32_e32 v3, 0x400000, v04470; GFX90A-NEXT:    v_add3_u32 v2, v2, v0, s84471; GFX90A-NEXT:    v_cmp_u_f32_e32 vcc, v0, v04472; GFX90A-NEXT:    v_cndmask_b32_e32 v0, v2, v3, vcc4473; GFX90A-NEXT:    v_lshlrev_b32_sdwa v0, s6, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_14474; GFX90A-NEXT:    v_and_or_b32 v0, v1, s7, v04475; GFX90A-NEXT:    v_pk_mov_b32 v[2:3], v[0:1], v[0:1] op_sel:[0,1]4476; GFX90A-NEXT:    buffer_atomic_cmpswap v[2:3], v4, s[16:19], 0 offen glc4477; GFX90A-NEXT:    s_waitcnt vmcnt(0)4478; GFX90A-NEXT:    buffer_wbinvl14479; GFX90A-NEXT:    v_cmp_eq_u32_e32 vcc, v2, v14480; GFX90A-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]4481; GFX90A-NEXT:    v_mov_b32_e32 v1, v24482; GFX90A-NEXT:    s_andn2_b64 exec, exec, s[4:5]4483; GFX90A-NEXT:    s_cbranch_execnz .LBB13_14484; GFX90A-NEXT:  ; %bb.2: ; %atomicrmw.end4485; GFX90A-NEXT:    s_or_b64 exec, exec, s[4:5]4486; GFX90A-NEXT:    v_lshrrev_b32_e32 v0, s6, v24487; GFX90A-NEXT:    s_setpc_b64 s[30:31]4488;4489; GFX908-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__amdgpu_no_fine_grained_memory:4490; GFX908:       ; %bb.0:4491; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4492; GFX908-NEXT:    s_addk_i32 s20, 0x2004493; GFX908-NEXT:    s_and_b32 s4, s20, -44494; GFX908-NEXT:    v_mov_b32_e32 v4, s44495; GFX908-NEXT:    buffer_load_dword v1, v4, s[16:19], 0 offen4496; GFX908-NEXT:    s_and_b32 s4, s20, 34497; GFX908-NEXT:    s_lshl_b32 s6, s4, 34498; GFX908-NEXT:    s_lshl_b32 s4, 0xffff, s64499; GFX908-NEXT:    s_not_b32 s7, s44500; GFX908-NEXT:    s_mov_b64 s[4:5], 04501; GFX908-NEXT:    v_lshlrev_b32_e32 v5, 16, v04502; GFX908-NEXT:    s_movk_i32 s8, 0x7fff4503; GFX908-NEXT:  .LBB13_1: ; %atomicrmw.start4504; GFX908-NEXT:    ; =>This Inner Loop Header: Depth=14505; GFX908-NEXT:    s_waitcnt vmcnt(0)4506; GFX908-NEXT:    v_lshrrev_b32_sdwa v0, s6, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4507; GFX908-NEXT:    v_min_f32_e32 v0, v0, v54508; GFX908-NEXT:    v_bfe_u32 v2, v0, 16, 14509; GFX908-NEXT:    v_or_b32_e32 v3, 0x400000, v04510; GFX908-NEXT:    v_add3_u32 v2, v2, v0, s84511; GFX908-NEXT:    v_cmp_u_f32_e32 vcc, v0, v04512; GFX908-NEXT:    v_cndmask_b32_e32 v0, v2, v3, vcc4513; GFX908-NEXT:    v_lshlrev_b32_sdwa v0, s6, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_14514; GFX908-NEXT:    v_and_or_b32 v0, v1, s7, v04515; GFX908-NEXT:    v_mov_b32_e32 v3, v14516; GFX908-NEXT:    v_mov_b32_e32 v2, v04517; GFX908-NEXT:    buffer_atomic_cmpswap v[2:3], v4, s[16:19], 0 offen glc4518; GFX908-NEXT:    s_waitcnt vmcnt(0)4519; GFX908-NEXT:    buffer_wbinvl14520; GFX908-NEXT:    v_cmp_eq_u32_e32 vcc, v2, v14521; GFX908-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]4522; GFX908-NEXT:    v_mov_b32_e32 v1, v24523; GFX908-NEXT:    s_andn2_b64 exec, exec, s[4:5]4524; GFX908-NEXT:    s_cbranch_execnz .LBB13_14525; GFX908-NEXT:  ; %bb.2: ; %atomicrmw.end4526; GFX908-NEXT:    s_or_b64 exec, exec, s[4:5]4527; GFX908-NEXT:    v_lshrrev_b32_e32 v0, s6, v24528; GFX908-NEXT:    s_setpc_b64 s[30:31]4529;4530; GFX8-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__amdgpu_no_fine_grained_memory:4531; GFX8:       ; %bb.0:4532; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4533; GFX8-NEXT:    s_addk_i32 s20, 0x2004534; GFX8-NEXT:    s_and_b32 s4, s20, -44535; GFX8-NEXT:    v_mov_b32_e32 v4, s44536; GFX8-NEXT:    buffer_load_dword v1, v4, s[16:19], 0 offen4537; GFX8-NEXT:    s_and_b32 s4, s20, 34538; GFX8-NEXT:    s_lshl_b32 s6, s4, 34539; GFX8-NEXT:    s_lshl_b32 s4, 0xffff, s64540; GFX8-NEXT:    s_not_b32 s7, s44541; GFX8-NEXT:    s_mov_b64 s[4:5], 04542; GFX8-NEXT:    v_lshlrev_b32_e32 v5, 16, v04543; GFX8-NEXT:  .LBB13_1: ; %atomicrmw.start4544; GFX8-NEXT:    ; =>This Inner Loop Header: Depth=14545; GFX8-NEXT:    v_mov_b32_e32 v0, s64546; GFX8-NEXT:    s_waitcnt vmcnt(0)4547; GFX8-NEXT:    v_lshrrev_b32_sdwa v3, v0, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4548; GFX8-NEXT:    v_min_f32_e32 v3, v3, v54549; GFX8-NEXT:    v_bfe_u32 v6, v3, 16, 14550; GFX8-NEXT:    v_add_u32_e32 v6, vcc, v6, v34551; GFX8-NEXT:    v_add_u32_e32 v6, vcc, 0x7fff, v64552; GFX8-NEXT:    v_or_b32_e32 v7, 0x400000, v34553; GFX8-NEXT:    v_cmp_u_f32_e32 vcc, v3, v34554; GFX8-NEXT:    v_cndmask_b32_e32 v3, v6, v7, vcc4555; GFX8-NEXT:    v_and_b32_e32 v2, s7, v14556; GFX8-NEXT:    v_lshlrev_b32_sdwa v0, v0, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_14557; GFX8-NEXT:    v_or_b32_e32 v0, v2, v04558; GFX8-NEXT:    v_mov_b32_e32 v3, v14559; GFX8-NEXT:    v_mov_b32_e32 v2, v04560; GFX8-NEXT:    buffer_atomic_cmpswap v[2:3], v4, s[16:19], 0 offen glc4561; GFX8-NEXT:    s_waitcnt vmcnt(0)4562; GFX8-NEXT:    buffer_wbinvl14563; GFX8-NEXT:    v_cmp_eq_u32_e32 vcc, v2, v14564; GFX8-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]4565; GFX8-NEXT:    v_mov_b32_e32 v1, v24566; GFX8-NEXT:    s_andn2_b64 exec, exec, s[4:5]4567; GFX8-NEXT:    s_cbranch_execnz .LBB13_14568; GFX8-NEXT:  ; %bb.2: ; %atomicrmw.end4569; GFX8-NEXT:    s_or_b64 exec, exec, s[4:5]4570; GFX8-NEXT:    v_lshrrev_b32_e32 v0, s6, v24571; GFX8-NEXT:    s_setpc_b64 s[30:31]4572;4573; GFX7-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__amdgpu_no_fine_grained_memory:4574; GFX7:       ; %bb.0:4575; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4576; GFX7-NEXT:    s_addk_i32 s20, 0x2004577; GFX7-NEXT:    s_and_b32 s4, s20, -44578; GFX7-NEXT:    v_mov_b32_e32 v4, s44579; GFX7-NEXT:    buffer_load_dword v1, v4, s[16:19], 0 offen4580; GFX7-NEXT:    s_and_b32 s4, s20, 34581; GFX7-NEXT:    s_lshl_b32 s6, s4, 34582; GFX7-NEXT:    s_lshl_b32 s4, 0xffff, s64583; GFX7-NEXT:    v_mul_f32_e32 v0, 1.0, v04584; GFX7-NEXT:    s_not_b32 s7, s44585; GFX7-NEXT:    s_mov_b64 s[4:5], 04586; GFX7-NEXT:    v_and_b32_e32 v5, 0xffff0000, v04587; GFX7-NEXT:  .LBB13_1: ; %atomicrmw.start4588; GFX7-NEXT:    ; =>This Inner Loop Header: Depth=14589; GFX7-NEXT:    s_waitcnt vmcnt(0)4590; GFX7-NEXT:    v_lshrrev_b32_e32 v0, s6, v14591; GFX7-NEXT:    v_lshlrev_b32_e32 v0, 16, v04592; GFX7-NEXT:    v_mul_f32_e32 v0, 1.0, v04593; GFX7-NEXT:    v_min_f32_e32 v0, v0, v54594; GFX7-NEXT:    v_lshrrev_b32_e32 v0, 16, v04595; GFX7-NEXT:    v_and_b32_e32 v2, s7, v14596; GFX7-NEXT:    v_lshlrev_b32_e32 v0, s6, v04597; GFX7-NEXT:    v_or_b32_e32 v0, v2, v04598; GFX7-NEXT:    v_mov_b32_e32 v3, v14599; GFX7-NEXT:    v_mov_b32_e32 v2, v04600; GFX7-NEXT:    buffer_atomic_cmpswap v[2:3], v4, s[16:19], 0 offen glc4601; GFX7-NEXT:    s_waitcnt vmcnt(0)4602; GFX7-NEXT:    buffer_wbinvl14603; GFX7-NEXT:    v_cmp_eq_u32_e32 vcc, v2, v14604; GFX7-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]4605; GFX7-NEXT:    v_mov_b32_e32 v1, v24606; GFX7-NEXT:    s_andn2_b64 exec, exec, s[4:5]4607; GFX7-NEXT:    s_cbranch_execnz .LBB13_14608; GFX7-NEXT:  ; %bb.2: ; %atomicrmw.end4609; GFX7-NEXT:    s_or_b64 exec, exec, s[4:5]4610; GFX7-NEXT:    v_lshrrev_b32_e32 v0, s6, v24611; GFX7-NEXT:    v_lshlrev_b32_e32 v0, 16, v04612; GFX7-NEXT:    s_setpc_b64 s[30:31]4613;4614; GFX6-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__amdgpu_no_fine_grained_memory:4615; GFX6:       ; %bb.0:4616; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4617; GFX6-NEXT:    s_addk_i32 s20, 0x2004618; GFX6-NEXT:    s_and_b32 s4, s20, -44619; GFX6-NEXT:    v_mov_b32_e32 v4, s44620; GFX6-NEXT:    buffer_load_dword v1, v4, s[16:19], 0 offen4621; GFX6-NEXT:    s_and_b32 s4, s20, 34622; GFX6-NEXT:    s_lshl_b32 s6, s4, 34623; GFX6-NEXT:    s_lshl_b32 s4, 0xffff, s64624; GFX6-NEXT:    v_mul_f32_e32 v0, 1.0, v04625; GFX6-NEXT:    s_not_b32 s7, s44626; GFX6-NEXT:    s_mov_b64 s[4:5], 04627; GFX6-NEXT:    v_and_b32_e32 v5, 0xffff0000, v04628; GFX6-NEXT:  .LBB13_1: ; %atomicrmw.start4629; GFX6-NEXT:    ; =>This Inner Loop Header: Depth=14630; GFX6-NEXT:    s_waitcnt vmcnt(0)4631; GFX6-NEXT:    v_lshrrev_b32_e32 v0, s6, v14632; GFX6-NEXT:    v_lshlrev_b32_e32 v0, 16, v04633; GFX6-NEXT:    v_mul_f32_e32 v0, 1.0, v04634; GFX6-NEXT:    v_min_f32_e32 v0, v0, v54635; GFX6-NEXT:    v_lshrrev_b32_e32 v0, 16, v04636; GFX6-NEXT:    s_waitcnt expcnt(0)4637; GFX6-NEXT:    v_and_b32_e32 v2, s7, v14638; GFX6-NEXT:    v_lshlrev_b32_e32 v0, s6, v04639; GFX6-NEXT:    v_or_b32_e32 v0, v2, v04640; GFX6-NEXT:    v_mov_b32_e32 v3, v14641; GFX6-NEXT:    v_mov_b32_e32 v2, v04642; GFX6-NEXT:    buffer_atomic_cmpswap v[2:3], v4, s[16:19], 0 offen glc4643; GFX6-NEXT:    s_waitcnt vmcnt(0)4644; GFX6-NEXT:    buffer_wbinvl14645; GFX6-NEXT:    v_cmp_eq_u32_e32 vcc, v2, v14646; GFX6-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]4647; GFX6-NEXT:    v_mov_b32_e32 v1, v24648; GFX6-NEXT:    s_andn2_b64 exec, exec, s[4:5]4649; GFX6-NEXT:    s_cbranch_execnz .LBB13_14650; GFX6-NEXT:  ; %bb.2: ; %atomicrmw.end4651; GFX6-NEXT:    s_or_b64 exec, exec, s[4:5]4652; GFX6-NEXT:    v_lshrrev_b32_e32 v0, s6, v24653; GFX6-NEXT:    v_lshlrev_b32_e32 v0, 16, v04654; GFX6-NEXT:    s_waitcnt expcnt(0)4655; GFX6-NEXT:    s_setpc_b64 s[30:31]4656  %gep = getelementptr bfloat, ptr addrspace(7) %ptr, i32 2564657  %result = atomicrmw fmin ptr addrspace(7) %gep, bfloat %val syncscope("agent") seq_cst, !amdgpu.no.fine.grained.memory !04658  ret bfloat %result4659}4660 4661define void @buffer_fat_ptr_agent_atomic_fmin_noret_bf16__offset__amdgpu_no_fine_grained_memory(ptr addrspace(7) inreg %ptr, bfloat %val) #0 {4662; GFX12-TRUE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_bf16__offset__amdgpu_no_fine_grained_memory:4663; GFX12-TRUE16:       ; %bb.0:4664; GFX12-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x04665; GFX12-TRUE16-NEXT:    s_wait_expcnt 0x04666; GFX12-TRUE16-NEXT:    s_wait_samplecnt 0x04667; GFX12-TRUE16-NEXT:    s_wait_bvhcnt 0x04668; GFX12-TRUE16-NEXT:    s_wait_kmcnt 0x04669; GFX12-TRUE16-NEXT:    s_addk_co_i32 s16, 0x2004670; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4671; GFX12-TRUE16-NEXT:    s_and_b32 s4, s16, -44672; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4673; GFX12-TRUE16-NEXT:    v_mov_b32_e32 v3, s44674; GFX12-TRUE16-NEXT:    s_and_b32 s4, s16, 34675; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4676; GFX12-TRUE16-NEXT:    s_lshl_b32 s4, s4, 34677; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4678; GFX12-TRUE16-NEXT:    s_lshl_b32 s5, 0xffff, s44679; GFX12-TRUE16-NEXT:    buffer_load_b32 v2, v3, s[0:3], null offen4680; GFX12-TRUE16-NEXT:    s_not_b32 s6, s54681; GFX12-TRUE16-NEXT:    s_mov_b32 s5, 04682; GFX12-TRUE16-NEXT:  .LBB14_1: ; %atomicrmw.start4683; GFX12-TRUE16-NEXT:    ; =>This Inner Loop Header: Depth=14684; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x04685; GFX12-TRUE16-NEXT:    v_lshrrev_b32_e32 v1, s4, v24686; GFX12-TRUE16-NEXT:    v_mov_b16_e32 v4.l, 04687; GFX12-TRUE16-NEXT:    v_mov_b16_e32 v4.h, v0.l4688; GFX12-TRUE16-NEXT:    s_wait_storecnt 0x04689; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)4690; GFX12-TRUE16-NEXT:    v_lshlrev_b32_e32 v1, 16, v14691; GFX12-TRUE16-NEXT:    v_min_num_f32_e32 v1, v1, v44692; GFX12-TRUE16-NEXT:    v_mov_b16_e32 v4.h, v4.l4693; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_2) | instid1(VALU_DEP_3)4694; GFX12-TRUE16-NEXT:    v_bfe_u32 v5, v1, 16, 14695; GFX12-TRUE16-NEXT:    v_or_b32_e32 v6, 0x400000, v14696; GFX12-TRUE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v1, v14697; GFX12-TRUE16-NEXT:    v_add3_u32 v5, v5, v1, 0x7fff4698; GFX12-TRUE16-NEXT:    s_wait_alu depctr_va_vcc(0)4699; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4700; GFX12-TRUE16-NEXT:    v_cndmask_b32_e32 v1, v5, v6, vcc_lo4701; GFX12-TRUE16-NEXT:    v_mov_b16_e32 v4.l, v1.h4702; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_1)4703; GFX12-TRUE16-NEXT:    v_lshlrev_b32_e32 v1, s4, v44704; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4705; GFX12-TRUE16-NEXT:    v_and_or_b32 v1, v2, s6, v14706; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)4707; GFX12-TRUE16-NEXT:    v_dual_mov_b32 v5, v2 :: v_dual_mov_b32 v4, v14708; GFX12-TRUE16-NEXT:    buffer_atomic_cmpswap_b32 v[4:5], v3, s[0:3], null offen th:TH_ATOMIC_RETURN4709; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x04710; GFX12-TRUE16-NEXT:    global_inv scope:SCOPE_DEV4711; GFX12-TRUE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v4, v24712; GFX12-TRUE16-NEXT:    v_mov_b32_e32 v2, v44713; GFX12-TRUE16-NEXT:    s_or_b32 s5, vcc_lo, s54714; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4715; GFX12-TRUE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s54716; GFX12-TRUE16-NEXT:    s_cbranch_execnz .LBB14_14717; GFX12-TRUE16-NEXT:  ; %bb.2: ; %atomicrmw.end4718; GFX12-TRUE16-NEXT:    s_or_b32 exec_lo, exec_lo, s54719; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x04720; GFX12-TRUE16-NEXT:    s_setpc_b64 s[30:31]4721;4722; GFX12-FAKE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_bf16__offset__amdgpu_no_fine_grained_memory:4723; GFX12-FAKE16:       ; %bb.0:4724; GFX12-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x04725; GFX12-FAKE16-NEXT:    s_wait_expcnt 0x04726; GFX12-FAKE16-NEXT:    s_wait_samplecnt 0x04727; GFX12-FAKE16-NEXT:    s_wait_bvhcnt 0x04728; GFX12-FAKE16-NEXT:    s_wait_kmcnt 0x04729; GFX12-FAKE16-NEXT:    s_addk_co_i32 s16, 0x2004730; GFX12-FAKE16-NEXT:    v_lshlrev_b32_e32 v3, 16, v04731; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4732; GFX12-FAKE16-NEXT:    s_and_b32 s4, s16, -44733; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4734; GFX12-FAKE16-NEXT:    v_mov_b32_e32 v2, s44735; GFX12-FAKE16-NEXT:    s_and_b32 s4, s16, 34736; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4737; GFX12-FAKE16-NEXT:    s_lshl_b32 s4, s4, 34738; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4739; GFX12-FAKE16-NEXT:    s_lshl_b32 s5, 0xffff, s44740; GFX12-FAKE16-NEXT:    buffer_load_b32 v1, v2, s[0:3], null offen4741; GFX12-FAKE16-NEXT:    s_not_b32 s6, s54742; GFX12-FAKE16-NEXT:    s_mov_b32 s5, 04743; GFX12-FAKE16-NEXT:  .LBB14_1: ; %atomicrmw.start4744; GFX12-FAKE16-NEXT:    ; =>This Inner Loop Header: Depth=14745; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x04746; GFX12-FAKE16-NEXT:    v_lshrrev_b32_e32 v0, s4, v14747; GFX12-FAKE16-NEXT:    s_wait_storecnt 0x04748; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4749; GFX12-FAKE16-NEXT:    v_lshlrev_b32_e32 v0, 16, v04750; GFX12-FAKE16-NEXT:    v_min_num_f32_e32 v0, v0, v34751; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_3)4752; GFX12-FAKE16-NEXT:    v_bfe_u32 v4, v0, 16, 14753; GFX12-FAKE16-NEXT:    v_or_b32_e32 v5, 0x400000, v04754; GFX12-FAKE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v0, v04755; GFX12-FAKE16-NEXT:    v_add3_u32 v4, v4, v0, 0x7fff4756; GFX12-FAKE16-NEXT:    s_wait_alu depctr_va_vcc(0)4757; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4758; GFX12-FAKE16-NEXT:    v_cndmask_b32_e32 v0, v4, v5, vcc_lo4759; GFX12-FAKE16-NEXT:    v_lshrrev_b32_e32 v0, 16, v04760; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_1)4761; GFX12-FAKE16-NEXT:    v_lshlrev_b32_e32 v0, s4, v04762; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4763; GFX12-FAKE16-NEXT:    v_and_or_b32 v0, v1, s6, v04764; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)4765; GFX12-FAKE16-NEXT:    v_dual_mov_b32 v5, v1 :: v_dual_mov_b32 v4, v04766; GFX12-FAKE16-NEXT:    buffer_atomic_cmpswap_b32 v[4:5], v2, s[0:3], null offen th:TH_ATOMIC_RETURN4767; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x04768; GFX12-FAKE16-NEXT:    global_inv scope:SCOPE_DEV4769; GFX12-FAKE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v4, v14770; GFX12-FAKE16-NEXT:    v_mov_b32_e32 v1, v44771; GFX12-FAKE16-NEXT:    s_or_b32 s5, vcc_lo, s54772; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)4773; GFX12-FAKE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s54774; GFX12-FAKE16-NEXT:    s_cbranch_execnz .LBB14_14775; GFX12-FAKE16-NEXT:  ; %bb.2: ; %atomicrmw.end4776; GFX12-FAKE16-NEXT:    s_or_b32 exec_lo, exec_lo, s54777; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x04778; GFX12-FAKE16-NEXT:    s_setpc_b64 s[30:31]4779;4780; GFX942-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_bf16__offset__amdgpu_no_fine_grained_memory:4781; GFX942:       ; %bb.0:4782; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4783; GFX942-NEXT:    s_addk_i32 s16, 0x2004784; GFX942-NEXT:    s_and_b32 s4, s16, -44785; GFX942-NEXT:    v_mov_b32_e32 v2, s44786; GFX942-NEXT:    buffer_load_dword v1, v2, s[0:3], 0 offen4787; GFX942-NEXT:    s_and_b32 s4, s16, 34788; GFX942-NEXT:    s_lshl_b32 s6, s4, 34789; GFX942-NEXT:    s_lshl_b32 s4, 0xffff, s64790; GFX942-NEXT:    s_not_b32 s7, s44791; GFX942-NEXT:    s_mov_b64 s[4:5], 04792; GFX942-NEXT:    v_lshlrev_b32_e32 v3, 16, v04793; GFX942-NEXT:    s_movk_i32 s8, 0x7fff4794; GFX942-NEXT:  .LBB14_1: ; %atomicrmw.start4795; GFX942-NEXT:    ; =>This Inner Loop Header: Depth=14796; GFX942-NEXT:    s_waitcnt vmcnt(0)4797; GFX942-NEXT:    v_lshrrev_b32_sdwa v0, s6, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4798; GFX942-NEXT:    buffer_wbl2 sc14799; GFX942-NEXT:    v_min_f32_e32 v0, v0, v34800; GFX942-NEXT:    v_bfe_u32 v4, v0, 16, 14801; GFX942-NEXT:    v_or_b32_e32 v5, 0x400000, v04802; GFX942-NEXT:    v_add3_u32 v4, v4, v0, s84803; GFX942-NEXT:    v_cmp_u_f32_e32 vcc, v0, v04804; GFX942-NEXT:    s_nop 14805; GFX942-NEXT:    v_cndmask_b32_e32 v0, v4, v5, vcc4806; GFX942-NEXT:    v_lshlrev_b32_sdwa v0, s6, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_14807; GFX942-NEXT:    v_and_or_b32 v0, v1, s7, v04808; GFX942-NEXT:    v_mov_b64_e32 v[4:5], v[0:1]4809; GFX942-NEXT:    buffer_atomic_cmpswap v[4:5], v2, s[0:3], 0 offen sc04810; GFX942-NEXT:    s_waitcnt vmcnt(0)4811; GFX942-NEXT:    buffer_inv sc14812; GFX942-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v14813; GFX942-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]4814; GFX942-NEXT:    v_mov_b32_e32 v1, v44815; GFX942-NEXT:    s_andn2_b64 exec, exec, s[4:5]4816; GFX942-NEXT:    s_cbranch_execnz .LBB14_14817; GFX942-NEXT:  ; %bb.2: ; %atomicrmw.end4818; GFX942-NEXT:    s_or_b64 exec, exec, s[4:5]4819; GFX942-NEXT:    s_setpc_b64 s[30:31]4820;4821; GFX11-TRUE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_bf16__offset__amdgpu_no_fine_grained_memory:4822; GFX11-TRUE16:       ; %bb.0:4823; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4824; GFX11-TRUE16-NEXT:    s_addk_i32 s16, 0x2004825; GFX11-TRUE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(SALU_CYCLE_1)4826; GFX11-TRUE16-NEXT:    s_and_b32 s4, s16, -44827; GFX11-TRUE16-NEXT:    v_mov_b32_e32 v3, s44828; GFX11-TRUE16-NEXT:    s_and_b32 s4, s16, 34829; GFX11-TRUE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(SALU_CYCLE_1)4830; GFX11-TRUE16-NEXT:    s_lshl_b32 s4, s4, 34831; GFX11-TRUE16-NEXT:    s_lshl_b32 s5, 0xffff, s44832; GFX11-TRUE16-NEXT:    buffer_load_b32 v2, v3, s[0:3], 0 offen4833; GFX11-TRUE16-NEXT:    s_not_b32 s6, s54834; GFX11-TRUE16-NEXT:    s_mov_b32 s5, 04835; GFX11-TRUE16-NEXT:    .p2align 64836; GFX11-TRUE16-NEXT:  .LBB14_1: ; %atomicrmw.start4837; GFX11-TRUE16-NEXT:    ; =>This Inner Loop Header: Depth=14838; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0)4839; GFX11-TRUE16-NEXT:    v_lshrrev_b32_e32 v1, s4, v24840; GFX11-TRUE16-NEXT:    v_mov_b16_e32 v4.l, 04841; GFX11-TRUE16-NEXT:    v_mov_b16_e32 v4.h, v0.l4842; GFX11-TRUE16-NEXT:    s_waitcnt_vscnt null, 0x04843; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)4844; GFX11-TRUE16-NEXT:    v_lshlrev_b32_e32 v1, 16, v14845; GFX11-TRUE16-NEXT:    v_min_f32_e32 v1, v1, v44846; GFX11-TRUE16-NEXT:    v_mov_b16_e32 v4.h, v4.l4847; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_2) | instid1(VALU_DEP_3)4848; GFX11-TRUE16-NEXT:    v_bfe_u32 v5, v1, 16, 14849; GFX11-TRUE16-NEXT:    v_or_b32_e32 v6, 0x400000, v14850; GFX11-TRUE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v1, v14851; GFX11-TRUE16-NEXT:    v_add3_u32 v5, v5, v1, 0x7fff4852; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4853; GFX11-TRUE16-NEXT:    v_cndmask_b32_e32 v1, v5, v6, vcc_lo4854; GFX11-TRUE16-NEXT:    v_mov_b16_e32 v4.l, v1.h4855; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4856; GFX11-TRUE16-NEXT:    v_lshlrev_b32_e32 v1, s4, v44857; GFX11-TRUE16-NEXT:    v_and_or_b32 v1, v2, s6, v14858; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)4859; GFX11-TRUE16-NEXT:    v_dual_mov_b32 v5, v2 :: v_dual_mov_b32 v4, v14860; GFX11-TRUE16-NEXT:    buffer_atomic_cmpswap_b32 v[4:5], v3, s[0:3], 0 offen glc4861; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0)4862; GFX11-TRUE16-NEXT:    buffer_gl1_inv4863; GFX11-TRUE16-NEXT:    buffer_gl0_inv4864; GFX11-TRUE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v4, v24865; GFX11-TRUE16-NEXT:    v_mov_b32_e32 v2, v44866; GFX11-TRUE16-NEXT:    s_or_b32 s5, vcc_lo, s54867; GFX11-TRUE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4868; GFX11-TRUE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s54869; GFX11-TRUE16-NEXT:    s_cbranch_execnz .LBB14_14870; GFX11-TRUE16-NEXT:  ; %bb.2: ; %atomicrmw.end4871; GFX11-TRUE16-NEXT:    s_or_b32 exec_lo, exec_lo, s54872; GFX11-TRUE16-NEXT:    s_setpc_b64 s[30:31]4873;4874; GFX11-FAKE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_bf16__offset__amdgpu_no_fine_grained_memory:4875; GFX11-FAKE16:       ; %bb.0:4876; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4877; GFX11-FAKE16-NEXT:    s_addk_i32 s16, 0x2004878; GFX11-FAKE16-NEXT:    v_lshlrev_b32_e32 v3, 16, v04879; GFX11-FAKE16-NEXT:    s_and_b32 s4, s16, -44880; GFX11-FAKE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1)4881; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v2, s44882; GFX11-FAKE16-NEXT:    s_and_b32 s4, s16, 34883; GFX11-FAKE16-NEXT:    s_lshl_b32 s4, s4, 34884; GFX11-FAKE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4885; GFX11-FAKE16-NEXT:    s_lshl_b32 s5, 0xffff, s44886; GFX11-FAKE16-NEXT:    buffer_load_b32 v1, v2, s[0:3], 0 offen4887; GFX11-FAKE16-NEXT:    s_not_b32 s6, s54888; GFX11-FAKE16-NEXT:    s_mov_b32 s5, 04889; GFX11-FAKE16-NEXT:    .p2align 64890; GFX11-FAKE16-NEXT:  .LBB14_1: ; %atomicrmw.start4891; GFX11-FAKE16-NEXT:    ; =>This Inner Loop Header: Depth=14892; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0)4893; GFX11-FAKE16-NEXT:    v_lshrrev_b32_e32 v0, s4, v14894; GFX11-FAKE16-NEXT:    s_waitcnt_vscnt null, 0x04895; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4896; GFX11-FAKE16-NEXT:    v_lshlrev_b32_e32 v0, 16, v04897; GFX11-FAKE16-NEXT:    v_min_f32_e32 v0, v0, v34898; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_3)4899; GFX11-FAKE16-NEXT:    v_bfe_u32 v4, v0, 16, 14900; GFX11-FAKE16-NEXT:    v_or_b32_e32 v5, 0x400000, v04901; GFX11-FAKE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v0, v04902; GFX11-FAKE16-NEXT:    v_add3_u32 v4, v4, v0, 0x7fff4903; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4904; GFX11-FAKE16-NEXT:    v_cndmask_b32_e32 v0, v4, v5, vcc_lo4905; GFX11-FAKE16-NEXT:    v_lshrrev_b32_e32 v0, 16, v04906; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)4907; GFX11-FAKE16-NEXT:    v_lshlrev_b32_e32 v0, s4, v04908; GFX11-FAKE16-NEXT:    v_and_or_b32 v0, v1, s6, v04909; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)4910; GFX11-FAKE16-NEXT:    v_dual_mov_b32 v5, v1 :: v_dual_mov_b32 v4, v04911; GFX11-FAKE16-NEXT:    buffer_atomic_cmpswap_b32 v[4:5], v2, s[0:3], 0 offen glc4912; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0)4913; GFX11-FAKE16-NEXT:    buffer_gl1_inv4914; GFX11-FAKE16-NEXT:    buffer_gl0_inv4915; GFX11-FAKE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v4, v14916; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v1, v44917; GFX11-FAKE16-NEXT:    s_or_b32 s5, vcc_lo, s54918; GFX11-FAKE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)4919; GFX11-FAKE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s54920; GFX11-FAKE16-NEXT:    s_cbranch_execnz .LBB14_14921; GFX11-FAKE16-NEXT:  ; %bb.2: ; %atomicrmw.end4922; GFX11-FAKE16-NEXT:    s_or_b32 exec_lo, exec_lo, s54923; GFX11-FAKE16-NEXT:    s_setpc_b64 s[30:31]4924;4925; GFX10-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_bf16__offset__amdgpu_no_fine_grained_memory:4926; GFX10:       ; %bb.0:4927; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4928; GFX10-NEXT:    s_addk_i32 s20, 0x2004929; GFX10-NEXT:    v_lshlrev_b32_e32 v3, 16, v04930; GFX10-NEXT:    s_and_b32 s4, s20, -44931; GFX10-NEXT:    v_mov_b32_e32 v2, s44932; GFX10-NEXT:    s_and_b32 s4, s20, 34933; GFX10-NEXT:    s_lshl_b32 s4, s4, 34934; GFX10-NEXT:    s_lshl_b32 s5, 0xffff, s44935; GFX10-NEXT:    buffer_load_dword v1, v2, s[16:19], 0 offen4936; GFX10-NEXT:    s_not_b32 s6, s54937; GFX10-NEXT:    s_mov_b32 s5, 04938; GFX10-NEXT:  .LBB14_1: ; %atomicrmw.start4939; GFX10-NEXT:    ; =>This Inner Loop Header: Depth=14940; GFX10-NEXT:    s_waitcnt vmcnt(0)4941; GFX10-NEXT:    v_lshrrev_b32_sdwa v0, s4, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4942; GFX10-NEXT:    s_waitcnt_vscnt null, 0x04943; GFX10-NEXT:    v_min_f32_e32 v0, v0, v34944; GFX10-NEXT:    v_bfe_u32 v4, v0, 16, 14945; GFX10-NEXT:    v_or_b32_e32 v5, 0x400000, v04946; GFX10-NEXT:    v_cmp_u_f32_e32 vcc_lo, v0, v04947; GFX10-NEXT:    v_add3_u32 v4, v4, v0, 0x7fff4948; GFX10-NEXT:    v_cndmask_b32_e32 v0, v4, v5, vcc_lo4949; GFX10-NEXT:    v_lshlrev_b32_sdwa v0, s4, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_14950; GFX10-NEXT:    v_and_or_b32 v0, v1, s6, v04951; GFX10-NEXT:    v_mov_b32_e32 v5, v14952; GFX10-NEXT:    v_mov_b32_e32 v4, v04953; GFX10-NEXT:    buffer_atomic_cmpswap v[4:5], v2, s[16:19], 0 offen glc4954; GFX10-NEXT:    s_waitcnt vmcnt(0)4955; GFX10-NEXT:    buffer_gl1_inv4956; GFX10-NEXT:    buffer_gl0_inv4957; GFX10-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v4, v14958; GFX10-NEXT:    v_mov_b32_e32 v1, v44959; GFX10-NEXT:    s_or_b32 s5, vcc_lo, s54960; GFX10-NEXT:    s_andn2_b32 exec_lo, exec_lo, s54961; GFX10-NEXT:    s_cbranch_execnz .LBB14_14962; GFX10-NEXT:  ; %bb.2: ; %atomicrmw.end4963; GFX10-NEXT:    s_or_b32 exec_lo, exec_lo, s54964; GFX10-NEXT:    s_setpc_b64 s[30:31]4965;4966; GFX90A-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_bf16__offset__amdgpu_no_fine_grained_memory:4967; GFX90A:       ; %bb.0:4968; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4969; GFX90A-NEXT:    s_addk_i32 s20, 0x2004970; GFX90A-NEXT:    s_and_b32 s4, s20, -44971; GFX90A-NEXT:    v_mov_b32_e32 v2, s44972; GFX90A-NEXT:    buffer_load_dword v1, v2, s[16:19], 0 offen4973; GFX90A-NEXT:    s_and_b32 s4, s20, 34974; GFX90A-NEXT:    s_lshl_b32 s6, s4, 34975; GFX90A-NEXT:    s_lshl_b32 s4, 0xffff, s64976; GFX90A-NEXT:    s_not_b32 s7, s44977; GFX90A-NEXT:    s_mov_b64 s[4:5], 04978; GFX90A-NEXT:    v_lshlrev_b32_e32 v3, 16, v04979; GFX90A-NEXT:    s_movk_i32 s8, 0x7fff4980; GFX90A-NEXT:  .LBB14_1: ; %atomicrmw.start4981; GFX90A-NEXT:    ; =>This Inner Loop Header: Depth=14982; GFX90A-NEXT:    s_waitcnt vmcnt(0)4983; GFX90A-NEXT:    v_lshrrev_b32_sdwa v0, s6, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD4984; GFX90A-NEXT:    v_min_f32_e32 v0, v0, v34985; GFX90A-NEXT:    v_bfe_u32 v4, v0, 16, 14986; GFX90A-NEXT:    v_or_b32_e32 v5, 0x400000, v04987; GFX90A-NEXT:    v_add3_u32 v4, v4, v0, s84988; GFX90A-NEXT:    v_cmp_u_f32_e32 vcc, v0, v04989; GFX90A-NEXT:    v_cndmask_b32_e32 v0, v4, v5, vcc4990; GFX90A-NEXT:    v_lshlrev_b32_sdwa v0, s6, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_14991; GFX90A-NEXT:    v_and_or_b32 v0, v1, s7, v04992; GFX90A-NEXT:    v_pk_mov_b32 v[4:5], v[0:1], v[0:1] op_sel:[0,1]4993; GFX90A-NEXT:    buffer_atomic_cmpswap v[4:5], v2, s[16:19], 0 offen glc4994; GFX90A-NEXT:    s_waitcnt vmcnt(0)4995; GFX90A-NEXT:    buffer_wbinvl14996; GFX90A-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v14997; GFX90A-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]4998; GFX90A-NEXT:    v_mov_b32_e32 v1, v44999; GFX90A-NEXT:    s_andn2_b64 exec, exec, s[4:5]5000; GFX90A-NEXT:    s_cbranch_execnz .LBB14_15001; GFX90A-NEXT:  ; %bb.2: ; %atomicrmw.end5002; GFX90A-NEXT:    s_or_b64 exec, exec, s[4:5]5003; GFX90A-NEXT:    s_setpc_b64 s[30:31]5004;5005; GFX908-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_bf16__offset__amdgpu_no_fine_grained_memory:5006; GFX908:       ; %bb.0:5007; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5008; GFX908-NEXT:    s_addk_i32 s20, 0x2005009; GFX908-NEXT:    s_and_b32 s4, s20, -45010; GFX908-NEXT:    v_mov_b32_e32 v2, s45011; GFX908-NEXT:    buffer_load_dword v1, v2, s[16:19], 0 offen5012; GFX908-NEXT:    s_and_b32 s4, s20, 35013; GFX908-NEXT:    s_lshl_b32 s6, s4, 35014; GFX908-NEXT:    s_lshl_b32 s4, 0xffff, s65015; GFX908-NEXT:    s_not_b32 s7, s45016; GFX908-NEXT:    s_mov_b64 s[4:5], 05017; GFX908-NEXT:    v_lshlrev_b32_e32 v3, 16, v05018; GFX908-NEXT:    s_movk_i32 s8, 0x7fff5019; GFX908-NEXT:  .LBB14_1: ; %atomicrmw.start5020; GFX908-NEXT:    ; =>This Inner Loop Header: Depth=15021; GFX908-NEXT:    s_waitcnt vmcnt(0)5022; GFX908-NEXT:    v_lshrrev_b32_sdwa v0, s6, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5023; GFX908-NEXT:    v_min_f32_e32 v0, v0, v35024; GFX908-NEXT:    v_bfe_u32 v4, v0, 16, 15025; GFX908-NEXT:    v_or_b32_e32 v5, 0x400000, v05026; GFX908-NEXT:    v_add3_u32 v4, v4, v0, s85027; GFX908-NEXT:    v_cmp_u_f32_e32 vcc, v0, v05028; GFX908-NEXT:    v_cndmask_b32_e32 v0, v4, v5, vcc5029; GFX908-NEXT:    v_lshlrev_b32_sdwa v0, s6, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_15030; GFX908-NEXT:    v_and_or_b32 v0, v1, s7, v05031; GFX908-NEXT:    v_mov_b32_e32 v5, v15032; GFX908-NEXT:    v_mov_b32_e32 v4, v05033; GFX908-NEXT:    buffer_atomic_cmpswap v[4:5], v2, s[16:19], 0 offen glc5034; GFX908-NEXT:    s_waitcnt vmcnt(0)5035; GFX908-NEXT:    buffer_wbinvl15036; GFX908-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v15037; GFX908-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]5038; GFX908-NEXT:    v_mov_b32_e32 v1, v45039; GFX908-NEXT:    s_andn2_b64 exec, exec, s[4:5]5040; GFX908-NEXT:    s_cbranch_execnz .LBB14_15041; GFX908-NEXT:  ; %bb.2: ; %atomicrmw.end5042; GFX908-NEXT:    s_or_b64 exec, exec, s[4:5]5043; GFX908-NEXT:    s_setpc_b64 s[30:31]5044;5045; GFX8-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_bf16__offset__amdgpu_no_fine_grained_memory:5046; GFX8:       ; %bb.0:5047; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5048; GFX8-NEXT:    s_addk_i32 s20, 0x2005049; GFX8-NEXT:    s_and_b32 s4, s20, -45050; GFX8-NEXT:    v_mov_b32_e32 v2, s45051; GFX8-NEXT:    buffer_load_dword v1, v2, s[16:19], 0 offen5052; GFX8-NEXT:    s_and_b32 s4, s20, 35053; GFX8-NEXT:    s_lshl_b32 s6, s4, 35054; GFX8-NEXT:    s_lshl_b32 s4, 0xffff, s65055; GFX8-NEXT:    s_not_b32 s7, s45056; GFX8-NEXT:    s_mov_b64 s[4:5], 05057; GFX8-NEXT:    v_lshlrev_b32_e32 v3, 16, v05058; GFX8-NEXT:  .LBB14_1: ; %atomicrmw.start5059; GFX8-NEXT:    ; =>This Inner Loop Header: Depth=15060; GFX8-NEXT:    v_mov_b32_e32 v0, s65061; GFX8-NEXT:    s_waitcnt vmcnt(0)5062; GFX8-NEXT:    v_lshrrev_b32_sdwa v5, v0, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5063; GFX8-NEXT:    v_min_f32_e32 v5, v5, v35064; GFX8-NEXT:    v_bfe_u32 v6, v5, 16, 15065; GFX8-NEXT:    v_add_u32_e32 v6, vcc, v6, v55066; GFX8-NEXT:    v_add_u32_e32 v6, vcc, 0x7fff, v65067; GFX8-NEXT:    v_or_b32_e32 v7, 0x400000, v55068; GFX8-NEXT:    v_cmp_u_f32_e32 vcc, v5, v55069; GFX8-NEXT:    v_cndmask_b32_e32 v5, v6, v7, vcc5070; GFX8-NEXT:    v_and_b32_e32 v4, s7, v15071; GFX8-NEXT:    v_lshlrev_b32_sdwa v0, v0, v5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_15072; GFX8-NEXT:    v_or_b32_e32 v0, v4, v05073; GFX8-NEXT:    v_mov_b32_e32 v5, v15074; GFX8-NEXT:    v_mov_b32_e32 v4, v05075; GFX8-NEXT:    buffer_atomic_cmpswap v[4:5], v2, s[16:19], 0 offen glc5076; GFX8-NEXT:    s_waitcnt vmcnt(0)5077; GFX8-NEXT:    buffer_wbinvl15078; GFX8-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v15079; GFX8-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]5080; GFX8-NEXT:    v_mov_b32_e32 v1, v45081; GFX8-NEXT:    s_andn2_b64 exec, exec, s[4:5]5082; GFX8-NEXT:    s_cbranch_execnz .LBB14_15083; GFX8-NEXT:  ; %bb.2: ; %atomicrmw.end5084; GFX8-NEXT:    s_or_b64 exec, exec, s[4:5]5085; GFX8-NEXT:    s_setpc_b64 s[30:31]5086;5087; GFX7-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_bf16__offset__amdgpu_no_fine_grained_memory:5088; GFX7:       ; %bb.0:5089; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5090; GFX7-NEXT:    s_addk_i32 s20, 0x2005091; GFX7-NEXT:    s_and_b32 s4, s20, -45092; GFX7-NEXT:    v_mov_b32_e32 v2, s45093; GFX7-NEXT:    buffer_load_dword v1, v2, s[16:19], 0 offen5094; GFX7-NEXT:    s_and_b32 s4, s20, 35095; GFX7-NEXT:    s_lshl_b32 s6, s4, 35096; GFX7-NEXT:    s_lshl_b32 s4, 0xffff, s65097; GFX7-NEXT:    v_mul_f32_e32 v0, 1.0, v05098; GFX7-NEXT:    s_not_b32 s7, s45099; GFX7-NEXT:    s_mov_b64 s[4:5], 05100; GFX7-NEXT:    v_and_b32_e32 v3, 0xffff0000, v05101; GFX7-NEXT:  .LBB14_1: ; %atomicrmw.start5102; GFX7-NEXT:    ; =>This Inner Loop Header: Depth=15103; GFX7-NEXT:    s_waitcnt vmcnt(0)5104; GFX7-NEXT:    v_lshrrev_b32_e32 v0, s6, v15105; GFX7-NEXT:    v_lshlrev_b32_e32 v0, 16, v05106; GFX7-NEXT:    v_mul_f32_e32 v0, 1.0, v05107; GFX7-NEXT:    v_min_f32_e32 v0, v0, v35108; GFX7-NEXT:    v_lshrrev_b32_e32 v0, 16, v05109; GFX7-NEXT:    v_and_b32_e32 v4, s7, v15110; GFX7-NEXT:    v_lshlrev_b32_e32 v0, s6, v05111; GFX7-NEXT:    v_or_b32_e32 v0, v4, v05112; GFX7-NEXT:    v_mov_b32_e32 v5, v15113; GFX7-NEXT:    v_mov_b32_e32 v4, v05114; GFX7-NEXT:    buffer_atomic_cmpswap v[4:5], v2, s[16:19], 0 offen glc5115; GFX7-NEXT:    s_waitcnt vmcnt(0)5116; GFX7-NEXT:    buffer_wbinvl15117; GFX7-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v15118; GFX7-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]5119; GFX7-NEXT:    v_mov_b32_e32 v1, v45120; GFX7-NEXT:    s_andn2_b64 exec, exec, s[4:5]5121; GFX7-NEXT:    s_cbranch_execnz .LBB14_15122; GFX7-NEXT:  ; %bb.2: ; %atomicrmw.end5123; GFX7-NEXT:    s_or_b64 exec, exec, s[4:5]5124; GFX7-NEXT:    s_setpc_b64 s[30:31]5125;5126; GFX6-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_bf16__offset__amdgpu_no_fine_grained_memory:5127; GFX6:       ; %bb.0:5128; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5129; GFX6-NEXT:    s_addk_i32 s20, 0x2005130; GFX6-NEXT:    s_and_b32 s4, s20, -45131; GFX6-NEXT:    v_mov_b32_e32 v2, s45132; GFX6-NEXT:    buffer_load_dword v1, v2, s[16:19], 0 offen5133; GFX6-NEXT:    s_and_b32 s4, s20, 35134; GFX6-NEXT:    s_lshl_b32 s6, s4, 35135; GFX6-NEXT:    s_lshl_b32 s4, 0xffff, s65136; GFX6-NEXT:    v_mul_f32_e32 v0, 1.0, v05137; GFX6-NEXT:    s_not_b32 s7, s45138; GFX6-NEXT:    s_mov_b64 s[4:5], 05139; GFX6-NEXT:    v_and_b32_e32 v3, 0xffff0000, v05140; GFX6-NEXT:  .LBB14_1: ; %atomicrmw.start5141; GFX6-NEXT:    ; =>This Inner Loop Header: Depth=15142; GFX6-NEXT:    s_waitcnt vmcnt(0)5143; GFX6-NEXT:    v_lshrrev_b32_e32 v0, s6, v15144; GFX6-NEXT:    v_lshlrev_b32_e32 v0, 16, v05145; GFX6-NEXT:    v_mul_f32_e32 v0, 1.0, v05146; GFX6-NEXT:    v_min_f32_e32 v0, v0, v35147; GFX6-NEXT:    v_lshrrev_b32_e32 v0, 16, v05148; GFX6-NEXT:    s_waitcnt expcnt(0)5149; GFX6-NEXT:    v_and_b32_e32 v4, s7, v15150; GFX6-NEXT:    v_lshlrev_b32_e32 v0, s6, v05151; GFX6-NEXT:    v_or_b32_e32 v0, v4, v05152; GFX6-NEXT:    v_mov_b32_e32 v5, v15153; GFX6-NEXT:    v_mov_b32_e32 v4, v05154; GFX6-NEXT:    buffer_atomic_cmpswap v[4:5], v2, s[16:19], 0 offen glc5155; GFX6-NEXT:    s_waitcnt vmcnt(0)5156; GFX6-NEXT:    buffer_wbinvl15157; GFX6-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v15158; GFX6-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]5159; GFX6-NEXT:    v_mov_b32_e32 v1, v45160; GFX6-NEXT:    s_andn2_b64 exec, exec, s[4:5]5161; GFX6-NEXT:    s_cbranch_execnz .LBB14_15162; GFX6-NEXT:  ; %bb.2: ; %atomicrmw.end5163; GFX6-NEXT:    s_or_b64 exec, exec, s[4:5]5164; GFX6-NEXT:    s_waitcnt expcnt(0)5165; GFX6-NEXT:    s_setpc_b64 s[30:31]5166  %gep = getelementptr bfloat, ptr addrspace(7) %ptr, i32 2565167  %unused = atomicrmw fmin ptr addrspace(7) %gep, bfloat %val syncscope("agent") seq_cst, !amdgpu.no.fine.grained.memory !05168  ret void5169}5170 5171define bfloat @buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__waterfall__amdgpu_no_fine_grained_memory(ptr addrspace(7) %ptr, bfloat %val) #0 {5172; GFX12-TRUE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__waterfall__amdgpu_no_fine_grained_memory:5173; GFX12-TRUE16:       ; %bb.0:5174; GFX12-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x05175; GFX12-TRUE16-NEXT:    s_wait_expcnt 0x05176; GFX12-TRUE16-NEXT:    s_wait_samplecnt 0x05177; GFX12-TRUE16-NEXT:    s_wait_bvhcnt 0x05178; GFX12-TRUE16-NEXT:    s_wait_kmcnt 0x05179; GFX12-TRUE16-NEXT:    v_add_nc_u32_e32 v6, 0x200, v45180; GFX12-TRUE16-NEXT:    s_mov_b32 s1, exec_lo5181; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)5182; GFX12-TRUE16-NEXT:    v_and_b32_e32 v4, 3, v65183; GFX12-TRUE16-NEXT:    v_and_b32_e32 v10, -4, v65184; GFX12-TRUE16-NEXT:    v_lshlrev_b32_e32 v4, 3, v45185; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5186; GFX12-TRUE16-NEXT:    v_lshlrev_b32_e64 v7, v4, 0xffff5187; GFX12-TRUE16-NEXT:    v_not_b32_e32 v11, v75188; GFX12-TRUE16-NEXT:  .LBB15_1: ; =>This Inner Loop Header: Depth=15189; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s4, v05190; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s5, v15191; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s6, v25192; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s7, v35193; GFX12-TRUE16-NEXT:    s_wait_alu depctr_va_sdst(0)5194; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)5195; GFX12-TRUE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]5196; GFX12-TRUE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]5197; GFX12-TRUE16-NEXT:    s_and_b32 s0, vcc_lo, s05198; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)5199; GFX12-TRUE16-NEXT:    s_and_saveexec_b32 s0, s05200; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x05201; GFX12-TRUE16-NEXT:    buffer_load_b32 v7, v10, s[4:7], null offen5202; GFX12-TRUE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s05203; GFX12-TRUE16-NEXT:    s_cbranch_execnz .LBB15_15204; GFX12-TRUE16-NEXT:  ; %bb.2:5205; GFX12-TRUE16-NEXT:    s_mov_b32 exec_lo, s15206; GFX12-TRUE16-NEXT:    s_mov_b32 s1, 05207; GFX12-TRUE16-NEXT:  .LBB15_3: ; %atomicrmw.start5208; GFX12-TRUE16-NEXT:    ; =>This Loop Header: Depth=15209; GFX12-TRUE16-NEXT:    ; Child Loop BB15_4 Depth 25210; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x05211; GFX12-TRUE16-NEXT:    v_lshrrev_b32_e32 v6, v4, v75212; GFX12-TRUE16-NEXT:    v_mov_b16_e32 v8.l, 05213; GFX12-TRUE16-NEXT:    v_mov_b16_e32 v8.h, v5.l5214; GFX12-TRUE16-NEXT:    s_mov_b32 s2, exec_lo5215; GFX12-TRUE16-NEXT:    s_wait_storecnt 0x05216; GFX12-TRUE16-NEXT:    v_lshlrev_b32_e32 v6, 16, v65217; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5218; GFX12-TRUE16-NEXT:    v_min_num_f32_e32 v6, v6, v85219; GFX12-TRUE16-NEXT:    v_bfe_u32 v9, v6, 16, 15220; GFX12-TRUE16-NEXT:    v_or_b32_e32 v12, 0x400000, v65221; GFX12-TRUE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v6, v65222; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(SKIP_1) | instid1(VALU_DEP_1)5223; GFX12-TRUE16-NEXT:    v_add3_u32 v9, v9, v6, 0x7fff5224; GFX12-TRUE16-NEXT:    s_wait_alu depctr_va_vcc(0)5225; GFX12-TRUE16-NEXT:    v_cndmask_b32_e32 v6, v9, v12, vcc_lo5226; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_1)5227; GFX12-TRUE16-NEXT:    v_mov_b16_e32 v6.l, v6.h5228; GFX12-TRUE16-NEXT:    v_mov_b16_e32 v6.h, v8.l5229; GFX12-TRUE16-NEXT:    v_lshlrev_b32_e32 v6, v4, v65230; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5231; GFX12-TRUE16-NEXT:    v_and_or_b32 v6, v7, v11, v65232; GFX12-TRUE16-NEXT:    v_dual_mov_b32 v9, v7 :: v_dual_mov_b32 v8, v65233; GFX12-TRUE16-NEXT:  .LBB15_4: ; Parent Loop BB15_3 Depth=15234; GFX12-TRUE16-NEXT:    ; => This Inner Loop Header: Depth=25235; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s4, v05236; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s5, v15237; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s6, v25238; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s7, v35239; GFX12-TRUE16-NEXT:    s_wait_alu depctr_va_sdst(0)5240; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)5241; GFX12-TRUE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]5242; GFX12-TRUE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]5243; GFX12-TRUE16-NEXT:    s_and_b32 s0, vcc_lo, s05244; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)5245; GFX12-TRUE16-NEXT:    s_and_saveexec_b32 s0, s05246; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x05247; GFX12-TRUE16-NEXT:    buffer_atomic_cmpswap_b32 v[8:9], v10, s[4:7], null offen th:TH_ATOMIC_RETURN5248; GFX12-TRUE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s05249; GFX12-TRUE16-NEXT:    s_cbranch_execnz .LBB15_45250; GFX12-TRUE16-NEXT:  ; %bb.5: ; in Loop: Header=BB15_3 Depth=15251; GFX12-TRUE16-NEXT:    s_mov_b32 exec_lo, s25252; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x05253; GFX12-TRUE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v8, v75254; GFX12-TRUE16-NEXT:    v_mov_b32_e32 v7, v85255; GFX12-TRUE16-NEXT:    global_inv scope:SCOPE_DEV5256; GFX12-TRUE16-NEXT:    s_or_b32 s1, vcc_lo, s15257; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)5258; GFX12-TRUE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s15259; GFX12-TRUE16-NEXT:    s_cbranch_execnz .LBB15_35260; GFX12-TRUE16-NEXT:  ; %bb.6: ; %atomicrmw.end5261; GFX12-TRUE16-NEXT:    s_or_b32 exec_lo, exec_lo, s15262; GFX12-TRUE16-NEXT:    v_lshrrev_b32_e32 v0, v4, v85263; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x05264; GFX12-TRUE16-NEXT:    s_setpc_b64 s[30:31]5265;5266; GFX12-FAKE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__waterfall__amdgpu_no_fine_grained_memory:5267; GFX12-FAKE16:       ; %bb.0:5268; GFX12-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x05269; GFX12-FAKE16-NEXT:    s_wait_expcnt 0x05270; GFX12-FAKE16-NEXT:    s_wait_samplecnt 0x05271; GFX12-FAKE16-NEXT:    s_wait_bvhcnt 0x05272; GFX12-FAKE16-NEXT:    s_wait_kmcnt 0x05273; GFX12-FAKE16-NEXT:    v_add_nc_u32_e32 v4, 0x200, v45274; GFX12-FAKE16-NEXT:    s_mov_b32 s1, exec_lo5275; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)5276; GFX12-FAKE16-NEXT:    v_and_b32_e32 v6, 3, v45277; GFX12-FAKE16-NEXT:    v_and_b32_e32 v8, -4, v45278; GFX12-FAKE16-NEXT:    v_lshlrev_b32_e32 v7, 3, v65279; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5280; GFX12-FAKE16-NEXT:    v_lshlrev_b32_e64 v6, v7, 0xffff5281; GFX12-FAKE16-NEXT:    v_not_b32_e32 v9, v65282; GFX12-FAKE16-NEXT:  .LBB15_1: ; =>This Inner Loop Header: Depth=15283; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s4, v05284; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s5, v15285; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s6, v25286; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s7, v35287; GFX12-FAKE16-NEXT:    s_wait_alu depctr_va_sdst(0)5288; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)5289; GFX12-FAKE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]5290; GFX12-FAKE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]5291; GFX12-FAKE16-NEXT:    s_and_b32 s0, vcc_lo, s05292; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)5293; GFX12-FAKE16-NEXT:    s_and_saveexec_b32 s0, s05294; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x05295; GFX12-FAKE16-NEXT:    buffer_load_b32 v6, v8, s[4:7], null offen5296; GFX12-FAKE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s05297; GFX12-FAKE16-NEXT:    s_cbranch_execnz .LBB15_15298; GFX12-FAKE16-NEXT:  ; %bb.2:5299; GFX12-FAKE16-NEXT:    s_mov_b32 exec_lo, s15300; GFX12-FAKE16-NEXT:    v_lshlrev_b32_e32 v10, 16, v55301; GFX12-FAKE16-NEXT:    s_mov_b32 s1, 05302; GFX12-FAKE16-NEXT:  .LBB15_3: ; %atomicrmw.start5303; GFX12-FAKE16-NEXT:    ; =>This Loop Header: Depth=15304; GFX12-FAKE16-NEXT:    ; Child Loop BB15_4 Depth 25305; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x05306; GFX12-FAKE16-NEXT:    v_lshrrev_b32_e32 v4, v7, v65307; GFX12-FAKE16-NEXT:    s_mov_b32 s2, exec_lo5308; GFX12-FAKE16-NEXT:    s_wait_storecnt 0x05309; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5310; GFX12-FAKE16-NEXT:    v_lshlrev_b32_e32 v4, 16, v45311; GFX12-FAKE16-NEXT:    v_min_num_f32_e32 v4, v4, v105312; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_3)5313; GFX12-FAKE16-NEXT:    v_bfe_u32 v5, v4, 16, 15314; GFX12-FAKE16-NEXT:    v_or_b32_e32 v11, 0x400000, v45315; GFX12-FAKE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v4, v45316; GFX12-FAKE16-NEXT:    v_add3_u32 v5, v5, v4, 0x7fff5317; GFX12-FAKE16-NEXT:    s_wait_alu depctr_va_vcc(0)5318; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5319; GFX12-FAKE16-NEXT:    v_cndmask_b32_e32 v4, v5, v11, vcc_lo5320; GFX12-FAKE16-NEXT:    v_lshrrev_b32_e32 v4, 16, v45321; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5322; GFX12-FAKE16-NEXT:    v_lshlrev_b32_e32 v4, v7, v45323; GFX12-FAKE16-NEXT:    v_and_or_b32 v5, v6, v9, v45324; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)5325; GFX12-FAKE16-NEXT:    v_mov_b32_e32 v4, v55326; GFX12-FAKE16-NEXT:    v_mov_b32_e32 v5, v65327; GFX12-FAKE16-NEXT:  .LBB15_4: ; Parent Loop BB15_3 Depth=15328; GFX12-FAKE16-NEXT:    ; => This Inner Loop Header: Depth=25329; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s4, v05330; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s5, v15331; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s6, v25332; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s7, v35333; GFX12-FAKE16-NEXT:    s_wait_alu depctr_va_sdst(0)5334; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)5335; GFX12-FAKE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]5336; GFX12-FAKE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]5337; GFX12-FAKE16-NEXT:    s_and_b32 s0, vcc_lo, s05338; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)5339; GFX12-FAKE16-NEXT:    s_and_saveexec_b32 s0, s05340; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x05341; GFX12-FAKE16-NEXT:    buffer_atomic_cmpswap_b32 v[4:5], v8, s[4:7], null offen th:TH_ATOMIC_RETURN5342; GFX12-FAKE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s05343; GFX12-FAKE16-NEXT:    s_cbranch_execnz .LBB15_45344; GFX12-FAKE16-NEXT:  ; %bb.5: ; in Loop: Header=BB15_3 Depth=15345; GFX12-FAKE16-NEXT:    s_mov_b32 exec_lo, s25346; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x05347; GFX12-FAKE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v4, v65348; GFX12-FAKE16-NEXT:    v_mov_b32_e32 v6, v45349; GFX12-FAKE16-NEXT:    global_inv scope:SCOPE_DEV5350; GFX12-FAKE16-NEXT:    s_or_b32 s1, vcc_lo, s15351; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)5352; GFX12-FAKE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s15353; GFX12-FAKE16-NEXT:    s_cbranch_execnz .LBB15_35354; GFX12-FAKE16-NEXT:  ; %bb.6: ; %atomicrmw.end5355; GFX12-FAKE16-NEXT:    s_or_b32 exec_lo, exec_lo, s15356; GFX12-FAKE16-NEXT:    v_lshrrev_b32_e32 v0, v7, v45357; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x05358; GFX12-FAKE16-NEXT:    s_setpc_b64 s[30:31]5359;5360; GFX942-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__waterfall__amdgpu_no_fine_grained_memory:5361; GFX942:       ; %bb.0:5362; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5363; GFX942-NEXT:    v_add_u32_e32 v4, 0x200, v45364; GFX942-NEXT:    v_and_b32_e32 v9, -4, v45365; GFX942-NEXT:    v_and_b32_e32 v4, 3, v45366; GFX942-NEXT:    v_lshlrev_b32_e32 v8, 3, v45367; GFX942-NEXT:    s_mov_b32 s0, 0xffff5368; GFX942-NEXT:    v_lshlrev_b32_e64 v4, v8, s05369; GFX942-NEXT:    v_not_b32_e32 v10, v45370; GFX942-NEXT:    s_mov_b64 s[2:3], exec5371; GFX942-NEXT:  .LBB15_1: ; =>This Inner Loop Header: Depth=15372; GFX942-NEXT:    v_readfirstlane_b32 s4, v05373; GFX942-NEXT:    v_readfirstlane_b32 s5, v15374; GFX942-NEXT:    v_readfirstlane_b32 s6, v25375; GFX942-NEXT:    v_readfirstlane_b32 s7, v35376; GFX942-NEXT:    v_cmp_eq_u64_e32 vcc, s[4:5], v[0:1]5377; GFX942-NEXT:    s_nop 05378; GFX942-NEXT:    v_cmp_eq_u64_e64 s[0:1], s[6:7], v[2:3]5379; GFX942-NEXT:    s_and_b64 s[0:1], vcc, s[0:1]5380; GFX942-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]5381; GFX942-NEXT:    buffer_load_dword v7, v9, s[4:7], 0 offen5382; GFX942-NEXT:    s_xor_b64 exec, exec, s[0:1]5383; GFX942-NEXT:    s_cbranch_execnz .LBB15_15384; GFX942-NEXT:  ; %bb.2:5385; GFX942-NEXT:    s_mov_b64 exec, s[2:3]5386; GFX942-NEXT:    s_mov_b64 s[2:3], 05387; GFX942-NEXT:    v_lshlrev_b32_e32 v11, 16, v55388; GFX942-NEXT:    s_movk_i32 s10, 0x7fff5389; GFX942-NEXT:  .LBB15_3: ; %atomicrmw.start5390; GFX942-NEXT:    ; =>This Loop Header: Depth=15391; GFX942-NEXT:    ; Child Loop BB15_4 Depth 25392; GFX942-NEXT:    s_waitcnt vmcnt(0)5393; GFX942-NEXT:    v_lshrrev_b32_sdwa v4, v8, v7 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5394; GFX942-NEXT:    s_mov_b64 s[8:9], exec5395; GFX942-NEXT:    v_min_f32_e32 v4, v4, v115396; GFX942-NEXT:    v_bfe_u32 v5, v4, 16, 15397; GFX942-NEXT:    v_add3_u32 v5, v5, v4, s105398; GFX942-NEXT:    v_or_b32_e32 v6, 0x400000, v45399; GFX942-NEXT:    v_cmp_u_f32_e32 vcc, v4, v45400; GFX942-NEXT:    buffer_wbl2 sc15401; GFX942-NEXT:    s_nop 05402; GFX942-NEXT:    v_cndmask_b32_e32 v4, v5, v6, vcc5403; GFX942-NEXT:    v_lshlrev_b32_sdwa v4, v8, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_15404; GFX942-NEXT:    v_and_or_b32 v6, v7, v10, v45405; GFX942-NEXT:    v_mov_b64_e32 v[4:5], v[6:7]5406; GFX942-NEXT:  .LBB15_4: ; Parent Loop BB15_3 Depth=15407; GFX942-NEXT:    ; => This Inner Loop Header: Depth=25408; GFX942-NEXT:    v_readfirstlane_b32 s4, v05409; GFX942-NEXT:    v_readfirstlane_b32 s5, v15410; GFX942-NEXT:    v_readfirstlane_b32 s6, v25411; GFX942-NEXT:    v_readfirstlane_b32 s7, v35412; GFX942-NEXT:    v_cmp_eq_u64_e32 vcc, s[4:5], v[0:1]5413; GFX942-NEXT:    s_nop 05414; GFX942-NEXT:    v_cmp_eq_u64_e64 s[0:1], s[6:7], v[2:3]5415; GFX942-NEXT:    s_and_b64 s[0:1], vcc, s[0:1]5416; GFX942-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]5417; GFX942-NEXT:    s_waitcnt vmcnt(0)5418; GFX942-NEXT:    buffer_atomic_cmpswap v[4:5], v9, s[4:7], 0 offen sc05419; GFX942-NEXT:    s_xor_b64 exec, exec, s[0:1]5420; GFX942-NEXT:    s_cbranch_execnz .LBB15_45421; GFX942-NEXT:  ; %bb.5: ; in Loop: Header=BB15_3 Depth=15422; GFX942-NEXT:    s_mov_b64 exec, s[8:9]5423; GFX942-NEXT:    s_waitcnt vmcnt(0)5424; GFX942-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v75425; GFX942-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]5426; GFX942-NEXT:    v_mov_b32_e32 v7, v45427; GFX942-NEXT:    buffer_inv sc15428; GFX942-NEXT:    s_andn2_b64 exec, exec, s[2:3]5429; GFX942-NEXT:    s_cbranch_execnz .LBB15_35430; GFX942-NEXT:  ; %bb.6: ; %atomicrmw.end5431; GFX942-NEXT:    s_or_b64 exec, exec, s[2:3]5432; GFX942-NEXT:    v_lshrrev_b32_e32 v0, v8, v45433; GFX942-NEXT:    s_setpc_b64 s[30:31]5434;5435; GFX11-TRUE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__waterfall__amdgpu_no_fine_grained_memory:5436; GFX11-TRUE16:       ; %bb.0:5437; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5438; GFX11-TRUE16-NEXT:    v_add_nc_u32_e32 v6, 0x200, v45439; GFX11-TRUE16-NEXT:    s_mov_b32 s1, 05440; GFX11-TRUE16-NEXT:    s_mov_b32 s2, exec_lo5441; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)5442; GFX11-TRUE16-NEXT:    v_and_b32_e32 v4, 3, v65443; GFX11-TRUE16-NEXT:    v_and_b32_e32 v10, -4, v65444; GFX11-TRUE16-NEXT:    v_lshlrev_b32_e32 v4, 3, v45445; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5446; GFX11-TRUE16-NEXT:    v_lshlrev_b32_e64 v7, v4, 0xffff5447; GFX11-TRUE16-NEXT:    v_not_b32_e32 v11, v75448; GFX11-TRUE16-NEXT:  .LBB15_1: ; =>This Inner Loop Header: Depth=15449; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s4, v05450; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s5, v15451; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s6, v25452; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s7, v35453; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)5454; GFX11-TRUE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]5455; GFX11-TRUE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]5456; GFX11-TRUE16-NEXT:    s_and_b32 s0, vcc_lo, s05457; GFX11-TRUE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)5458; GFX11-TRUE16-NEXT:    s_and_saveexec_b32 s0, s05459; GFX11-TRUE16-NEXT:    buffer_load_b32 v7, v10, s[4:7], 0 offen5460; GFX11-TRUE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s05461; GFX11-TRUE16-NEXT:    s_cbranch_execnz .LBB15_15462; GFX11-TRUE16-NEXT:  ; %bb.2:5463; GFX11-TRUE16-NEXT:    s_mov_b32 exec_lo, s25464; GFX11-TRUE16-NEXT:    s_set_inst_prefetch_distance 0x15465; GFX11-TRUE16-NEXT:    .p2align 65466; GFX11-TRUE16-NEXT:  .LBB15_3: ; %atomicrmw.start5467; GFX11-TRUE16-NEXT:    ; =>This Loop Header: Depth=15468; GFX11-TRUE16-NEXT:    ; Child Loop BB15_4 Depth 25469; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0)5470; GFX11-TRUE16-NEXT:    v_lshrrev_b32_e32 v6, v4, v75471; GFX11-TRUE16-NEXT:    v_mov_b16_e32 v8.l, 05472; GFX11-TRUE16-NEXT:    v_mov_b16_e32 v8.h, v5.l5473; GFX11-TRUE16-NEXT:    s_mov_b32 s2, exec_lo5474; GFX11-TRUE16-NEXT:    s_waitcnt_vscnt null, 0x05475; GFX11-TRUE16-NEXT:    v_lshlrev_b32_e32 v6, 16, v65476; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5477; GFX11-TRUE16-NEXT:    v_min_f32_e32 v6, v6, v85478; GFX11-TRUE16-NEXT:    v_bfe_u32 v9, v6, 16, 15479; GFX11-TRUE16-NEXT:    v_or_b32_e32 v12, 0x400000, v65480; GFX11-TRUE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v6, v65481; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)5482; GFX11-TRUE16-NEXT:    v_add3_u32 v9, v9, v6, 0x7fff5483; GFX11-TRUE16-NEXT:    v_cndmask_b32_e32 v6, v9, v12, vcc_lo5484; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_1)5485; GFX11-TRUE16-NEXT:    v_mov_b16_e32 v6.l, v6.h5486; GFX11-TRUE16-NEXT:    v_mov_b16_e32 v6.h, v8.l5487; GFX11-TRUE16-NEXT:    v_lshlrev_b32_e32 v6, v4, v65488; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5489; GFX11-TRUE16-NEXT:    v_and_or_b32 v6, v7, v11, v65490; GFX11-TRUE16-NEXT:    v_dual_mov_b32 v9, v7 :: v_dual_mov_b32 v8, v65491; GFX11-TRUE16-NEXT:  .LBB15_4: ; Parent Loop BB15_3 Depth=15492; GFX11-TRUE16-NEXT:    ; => This Inner Loop Header: Depth=25493; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s4, v05494; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s5, v15495; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s6, v25496; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s7, v35497; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)5498; GFX11-TRUE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]5499; GFX11-TRUE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]5500; GFX11-TRUE16-NEXT:    s_and_b32 s0, vcc_lo, s05501; GFX11-TRUE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)5502; GFX11-TRUE16-NEXT:    s_and_saveexec_b32 s0, s05503; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0)5504; GFX11-TRUE16-NEXT:    buffer_atomic_cmpswap_b32 v[8:9], v10, s[4:7], 0 offen glc5505; GFX11-TRUE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s05506; GFX11-TRUE16-NEXT:    s_cbranch_execnz .LBB15_45507; GFX11-TRUE16-NEXT:  ; %bb.5: ; in Loop: Header=BB15_3 Depth=15508; GFX11-TRUE16-NEXT:    s_mov_b32 exec_lo, s25509; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0)5510; GFX11-TRUE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v8, v75511; GFX11-TRUE16-NEXT:    v_mov_b32_e32 v7, v85512; GFX11-TRUE16-NEXT:    buffer_gl1_inv5513; GFX11-TRUE16-NEXT:    buffer_gl0_inv5514; GFX11-TRUE16-NEXT:    s_or_b32 s1, vcc_lo, s15515; GFX11-TRUE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)5516; GFX11-TRUE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s15517; GFX11-TRUE16-NEXT:    s_cbranch_execnz .LBB15_35518; GFX11-TRUE16-NEXT:  ; %bb.6: ; %atomicrmw.end5519; GFX11-TRUE16-NEXT:    s_set_inst_prefetch_distance 0x25520; GFX11-TRUE16-NEXT:    s_or_b32 exec_lo, exec_lo, s15521; GFX11-TRUE16-NEXT:    v_lshrrev_b32_e32 v0, v4, v85522; GFX11-TRUE16-NEXT:    s_setpc_b64 s[30:31]5523;5524; GFX11-FAKE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__waterfall__amdgpu_no_fine_grained_memory:5525; GFX11-FAKE16:       ; %bb.0:5526; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5527; GFX11-FAKE16-NEXT:    v_add_nc_u32_e32 v4, 0x200, v45528; GFX11-FAKE16-NEXT:    s_mov_b32 s1, 05529; GFX11-FAKE16-NEXT:    s_mov_b32 s2, exec_lo5530; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)5531; GFX11-FAKE16-NEXT:    v_and_b32_e32 v6, 3, v45532; GFX11-FAKE16-NEXT:    v_and_b32_e32 v8, -4, v45533; GFX11-FAKE16-NEXT:    v_lshlrev_b32_e32 v7, 3, v65534; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5535; GFX11-FAKE16-NEXT:    v_lshlrev_b32_e64 v6, v7, 0xffff5536; GFX11-FAKE16-NEXT:    v_not_b32_e32 v9, v65537; GFX11-FAKE16-NEXT:  .LBB15_1: ; =>This Inner Loop Header: Depth=15538; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s4, v05539; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s5, v15540; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s6, v25541; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s7, v35542; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)5543; GFX11-FAKE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]5544; GFX11-FAKE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]5545; GFX11-FAKE16-NEXT:    s_and_b32 s0, vcc_lo, s05546; GFX11-FAKE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)5547; GFX11-FAKE16-NEXT:    s_and_saveexec_b32 s0, s05548; GFX11-FAKE16-NEXT:    buffer_load_b32 v6, v8, s[4:7], 0 offen5549; GFX11-FAKE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s05550; GFX11-FAKE16-NEXT:    s_cbranch_execnz .LBB15_15551; GFX11-FAKE16-NEXT:  ; %bb.2:5552; GFX11-FAKE16-NEXT:    s_mov_b32 exec_lo, s25553; GFX11-FAKE16-NEXT:    v_lshlrev_b32_e32 v10, 16, v55554; GFX11-FAKE16-NEXT:    s_set_inst_prefetch_distance 0x15555; GFX11-FAKE16-NEXT:    .p2align 65556; GFX11-FAKE16-NEXT:  .LBB15_3: ; %atomicrmw.start5557; GFX11-FAKE16-NEXT:    ; =>This Loop Header: Depth=15558; GFX11-FAKE16-NEXT:    ; Child Loop BB15_4 Depth 25559; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0)5560; GFX11-FAKE16-NEXT:    v_lshrrev_b32_e32 v4, v7, v65561; GFX11-FAKE16-NEXT:    s_mov_b32 s2, exec_lo5562; GFX11-FAKE16-NEXT:    s_waitcnt_vscnt null, 0x05563; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5564; GFX11-FAKE16-NEXT:    v_lshlrev_b32_e32 v4, 16, v45565; GFX11-FAKE16-NEXT:    v_min_f32_e32 v4, v4, v105566; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_3)5567; GFX11-FAKE16-NEXT:    v_bfe_u32 v5, v4, 16, 15568; GFX11-FAKE16-NEXT:    v_or_b32_e32 v11, 0x400000, v45569; GFX11-FAKE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v4, v45570; GFX11-FAKE16-NEXT:    v_add3_u32 v5, v5, v4, 0x7fff5571; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5572; GFX11-FAKE16-NEXT:    v_cndmask_b32_e32 v4, v5, v11, vcc_lo5573; GFX11-FAKE16-NEXT:    v_lshrrev_b32_e32 v4, 16, v45574; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)5575; GFX11-FAKE16-NEXT:    v_lshlrev_b32_e32 v4, v7, v45576; GFX11-FAKE16-NEXT:    v_and_or_b32 v5, v6, v9, v45577; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)5578; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v4, v55579; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v5, v65580; GFX11-FAKE16-NEXT:  .LBB15_4: ; Parent Loop BB15_3 Depth=15581; GFX11-FAKE16-NEXT:    ; => This Inner Loop Header: Depth=25582; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s4, v05583; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s5, v15584; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s6, v25585; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s7, v35586; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)5587; GFX11-FAKE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]5588; GFX11-FAKE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]5589; GFX11-FAKE16-NEXT:    s_and_b32 s0, vcc_lo, s05590; GFX11-FAKE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)5591; GFX11-FAKE16-NEXT:    s_and_saveexec_b32 s0, s05592; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0)5593; GFX11-FAKE16-NEXT:    buffer_atomic_cmpswap_b32 v[4:5], v8, s[4:7], 0 offen glc5594; GFX11-FAKE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s05595; GFX11-FAKE16-NEXT:    s_cbranch_execnz .LBB15_45596; GFX11-FAKE16-NEXT:  ; %bb.5: ; in Loop: Header=BB15_3 Depth=15597; GFX11-FAKE16-NEXT:    s_mov_b32 exec_lo, s25598; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0)5599; GFX11-FAKE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v4, v65600; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v6, v45601; GFX11-FAKE16-NEXT:    buffer_gl1_inv5602; GFX11-FAKE16-NEXT:    buffer_gl0_inv5603; GFX11-FAKE16-NEXT:    s_or_b32 s1, vcc_lo, s15604; GFX11-FAKE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)5605; GFX11-FAKE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s15606; GFX11-FAKE16-NEXT:    s_cbranch_execnz .LBB15_35607; GFX11-FAKE16-NEXT:  ; %bb.6: ; %atomicrmw.end5608; GFX11-FAKE16-NEXT:    s_set_inst_prefetch_distance 0x25609; GFX11-FAKE16-NEXT:    s_or_b32 exec_lo, exec_lo, s15610; GFX11-FAKE16-NEXT:    v_lshrrev_b32_e32 v0, v7, v45611; GFX11-FAKE16-NEXT:    s_setpc_b64 s[30:31]5612;5613; GFX10-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__waterfall__amdgpu_no_fine_grained_memory:5614; GFX10:       ; %bb.0:5615; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5616; GFX10-NEXT:    v_add_nc_u32_e32 v4, 0x200, v45617; GFX10-NEXT:    s_mov_b32 s5, 05618; GFX10-NEXT:    s_mov_b32 s6, exec_lo5619; GFX10-NEXT:    v_and_b32_e32 v6, 3, v45620; GFX10-NEXT:    v_and_b32_e32 v8, -4, v45621; GFX10-NEXT:    v_lshlrev_b32_e32 v7, 3, v65622; GFX10-NEXT:    v_lshlrev_b32_e64 v6, v7, 0xffff5623; GFX10-NEXT:    v_not_b32_e32 v9, v65624; GFX10-NEXT:  .LBB15_1: ; =>This Inner Loop Header: Depth=15625; GFX10-NEXT:    v_readfirstlane_b32 s8, v05626; GFX10-NEXT:    v_readfirstlane_b32 s9, v15627; GFX10-NEXT:    v_readfirstlane_b32 s10, v25628; GFX10-NEXT:    v_readfirstlane_b32 s11, v35629; GFX10-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[8:9], v[0:1]5630; GFX10-NEXT:    v_cmp_eq_u64_e64 s4, s[10:11], v[2:3]5631; GFX10-NEXT:    s_and_b32 s4, vcc_lo, s45632; GFX10-NEXT:    s_and_saveexec_b32 s4, s45633; GFX10-NEXT:    buffer_load_dword v6, v8, s[8:11], 0 offen5634; GFX10-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)5635; GFX10-NEXT:    s_xor_b32 exec_lo, exec_lo, s45636; GFX10-NEXT:    s_cbranch_execnz .LBB15_15637; GFX10-NEXT:  ; %bb.2:5638; GFX10-NEXT:    s_mov_b32 exec_lo, s65639; GFX10-NEXT:    v_lshlrev_b32_e32 v10, 16, v55640; GFX10-NEXT:  .LBB15_3: ; %atomicrmw.start5641; GFX10-NEXT:    ; =>This Loop Header: Depth=15642; GFX10-NEXT:    ; Child Loop BB15_4 Depth 25643; GFX10-NEXT:    s_waitcnt vmcnt(0)5644; GFX10-NEXT:    v_lshrrev_b32_sdwa v4, v7, v6 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5645; GFX10-NEXT:    s_mov_b32 s6, exec_lo5646; GFX10-NEXT:    s_waitcnt_vscnt null, 0x05647; GFX10-NEXT:    v_min_f32_e32 v4, v4, v105648; GFX10-NEXT:    v_bfe_u32 v5, v4, 16, 15649; GFX10-NEXT:    v_or_b32_e32 v11, 0x400000, v45650; GFX10-NEXT:    v_cmp_u_f32_e32 vcc_lo, v4, v45651; GFX10-NEXT:    v_add3_u32 v5, v5, v4, 0x7fff5652; GFX10-NEXT:    v_cndmask_b32_e32 v4, v5, v11, vcc_lo5653; GFX10-NEXT:    v_lshlrev_b32_sdwa v4, v7, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_15654; GFX10-NEXT:    v_and_or_b32 v5, v6, v9, v45655; GFX10-NEXT:    v_mov_b32_e32 v4, v55656; GFX10-NEXT:    v_mov_b32_e32 v5, v65657; GFX10-NEXT:  .LBB15_4: ; Parent Loop BB15_3 Depth=15658; GFX10-NEXT:    ; => This Inner Loop Header: Depth=25659; GFX10-NEXT:    v_readfirstlane_b32 s8, v05660; GFX10-NEXT:    v_readfirstlane_b32 s9, v15661; GFX10-NEXT:    v_readfirstlane_b32 s10, v25662; GFX10-NEXT:    v_readfirstlane_b32 s11, v35663; GFX10-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[8:9], v[0:1]5664; GFX10-NEXT:    v_cmp_eq_u64_e64 s4, s[10:11], v[2:3]5665; GFX10-NEXT:    s_and_b32 s4, vcc_lo, s45666; GFX10-NEXT:    s_and_saveexec_b32 s4, s45667; GFX10-NEXT:    s_waitcnt vmcnt(0)5668; GFX10-NEXT:    buffer_atomic_cmpswap v[4:5], v8, s[8:11], 0 offen glc5669; GFX10-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)5670; GFX10-NEXT:    s_xor_b32 exec_lo, exec_lo, s45671; GFX10-NEXT:    s_cbranch_execnz .LBB15_45672; GFX10-NEXT:  ; %bb.5: ; in Loop: Header=BB15_3 Depth=15673; GFX10-NEXT:    s_mov_b32 exec_lo, s65674; GFX10-NEXT:    s_waitcnt vmcnt(0)5675; GFX10-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v4, v65676; GFX10-NEXT:    v_mov_b32_e32 v6, v45677; GFX10-NEXT:    buffer_gl1_inv5678; GFX10-NEXT:    buffer_gl0_inv5679; GFX10-NEXT:    s_or_b32 s5, vcc_lo, s55680; GFX10-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)5681; GFX10-NEXT:    s_andn2_b32 exec_lo, exec_lo, s55682; GFX10-NEXT:    s_cbranch_execnz .LBB15_35683; GFX10-NEXT:  ; %bb.6: ; %atomicrmw.end5684; GFX10-NEXT:    s_or_b32 exec_lo, exec_lo, s55685; GFX10-NEXT:    v_lshrrev_b32_e32 v0, v7, v45686; GFX10-NEXT:    s_setpc_b64 s[30:31]5687;5688; GFX90A-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__waterfall__amdgpu_no_fine_grained_memory:5689; GFX90A:       ; %bb.0:5690; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5691; GFX90A-NEXT:    v_add_u32_e32 v4, 0x200, v45692; GFX90A-NEXT:    v_and_b32_e32 v9, -4, v45693; GFX90A-NEXT:    v_and_b32_e32 v4, 3, v45694; GFX90A-NEXT:    v_lshlrev_b32_e32 v8, 3, v45695; GFX90A-NEXT:    s_mov_b32 s4, 0xffff5696; GFX90A-NEXT:    v_lshlrev_b32_e64 v4, v8, s45697; GFX90A-NEXT:    v_not_b32_e32 v10, v45698; GFX90A-NEXT:    s_mov_b64 s[6:7], exec5699; GFX90A-NEXT:  .LBB15_1: ; =>This Inner Loop Header: Depth=15700; GFX90A-NEXT:    v_readfirstlane_b32 s8, v05701; GFX90A-NEXT:    v_readfirstlane_b32 s9, v15702; GFX90A-NEXT:    v_readfirstlane_b32 s10, v25703; GFX90A-NEXT:    v_readfirstlane_b32 s11, v35704; GFX90A-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]5705; GFX90A-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]5706; GFX90A-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]5707; GFX90A-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]5708; GFX90A-NEXT:    s_nop 05709; GFX90A-NEXT:    buffer_load_dword v7, v9, s[8:11], 0 offen5710; GFX90A-NEXT:    s_xor_b64 exec, exec, s[4:5]5711; GFX90A-NEXT:    s_cbranch_execnz .LBB15_15712; GFX90A-NEXT:  ; %bb.2:5713; GFX90A-NEXT:    s_mov_b64 exec, s[6:7]5714; GFX90A-NEXT:    s_mov_b64 s[6:7], 05715; GFX90A-NEXT:    v_lshlrev_b32_e32 v11, 16, v55716; GFX90A-NEXT:    s_movk_i32 s14, 0x7fff5717; GFX90A-NEXT:  .LBB15_3: ; %atomicrmw.start5718; GFX90A-NEXT:    ; =>This Loop Header: Depth=15719; GFX90A-NEXT:    ; Child Loop BB15_4 Depth 25720; GFX90A-NEXT:    s_waitcnt vmcnt(0)5721; GFX90A-NEXT:    v_lshrrev_b32_sdwa v4, v8, v7 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5722; GFX90A-NEXT:    v_min_f32_e32 v4, v4, v115723; GFX90A-NEXT:    v_bfe_u32 v5, v4, 16, 15724; GFX90A-NEXT:    v_add3_u32 v5, v5, v4, s145725; GFX90A-NEXT:    v_or_b32_e32 v6, 0x400000, v45726; GFX90A-NEXT:    v_cmp_u_f32_e32 vcc, v4, v45727; GFX90A-NEXT:    v_cndmask_b32_e32 v4, v5, v6, vcc5728; GFX90A-NEXT:    v_lshlrev_b32_sdwa v4, v8, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_15729; GFX90A-NEXT:    v_and_or_b32 v6, v7, v10, v45730; GFX90A-NEXT:    s_mov_b64 s[12:13], exec5731; GFX90A-NEXT:    v_pk_mov_b32 v[4:5], v[6:7], v[6:7] op_sel:[0,1]5732; GFX90A-NEXT:  .LBB15_4: ; Parent Loop BB15_3 Depth=15733; GFX90A-NEXT:    ; => This Inner Loop Header: Depth=25734; GFX90A-NEXT:    v_readfirstlane_b32 s8, v05735; GFX90A-NEXT:    v_readfirstlane_b32 s9, v15736; GFX90A-NEXT:    v_readfirstlane_b32 s10, v25737; GFX90A-NEXT:    v_readfirstlane_b32 s11, v35738; GFX90A-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]5739; GFX90A-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]5740; GFX90A-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]5741; GFX90A-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]5742; GFX90A-NEXT:    s_waitcnt vmcnt(0)5743; GFX90A-NEXT:    buffer_atomic_cmpswap v[4:5], v9, s[8:11], 0 offen glc5744; GFX90A-NEXT:    s_xor_b64 exec, exec, s[4:5]5745; GFX90A-NEXT:    s_cbranch_execnz .LBB15_45746; GFX90A-NEXT:  ; %bb.5: ; in Loop: Header=BB15_3 Depth=15747; GFX90A-NEXT:    s_mov_b64 exec, s[12:13]5748; GFX90A-NEXT:    s_waitcnt vmcnt(0)5749; GFX90A-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v75750; GFX90A-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]5751; GFX90A-NEXT:    v_mov_b32_e32 v7, v45752; GFX90A-NEXT:    buffer_wbinvl15753; GFX90A-NEXT:    s_andn2_b64 exec, exec, s[6:7]5754; GFX90A-NEXT:    s_cbranch_execnz .LBB15_35755; GFX90A-NEXT:  ; %bb.6: ; %atomicrmw.end5756; GFX90A-NEXT:    s_or_b64 exec, exec, s[6:7]5757; GFX90A-NEXT:    v_lshrrev_b32_e32 v0, v8, v45758; GFX90A-NEXT:    s_setpc_b64 s[30:31]5759;5760; GFX908-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__waterfall__amdgpu_no_fine_grained_memory:5761; GFX908:       ; %bb.0:5762; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5763; GFX908-NEXT:    v_add_u32_e32 v4, 0x200, v45764; GFX908-NEXT:    v_and_b32_e32 v8, -4, v45765; GFX908-NEXT:    v_and_b32_e32 v4, 3, v45766; GFX908-NEXT:    v_lshlrev_b32_e32 v7, 3, v45767; GFX908-NEXT:    s_mov_b32 s4, 0xffff5768; GFX908-NEXT:    v_lshlrev_b32_e64 v4, v7, s45769; GFX908-NEXT:    v_not_b32_e32 v9, v45770; GFX908-NEXT:    s_mov_b64 s[6:7], exec5771; GFX908-NEXT:  .LBB15_1: ; =>This Inner Loop Header: Depth=15772; GFX908-NEXT:    v_readfirstlane_b32 s8, v05773; GFX908-NEXT:    v_readfirstlane_b32 s9, v15774; GFX908-NEXT:    v_readfirstlane_b32 s10, v25775; GFX908-NEXT:    v_readfirstlane_b32 s11, v35776; GFX908-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]5777; GFX908-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]5778; GFX908-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]5779; GFX908-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]5780; GFX908-NEXT:    s_nop 05781; GFX908-NEXT:    buffer_load_dword v6, v8, s[8:11], 0 offen5782; GFX908-NEXT:    s_xor_b64 exec, exec, s[4:5]5783; GFX908-NEXT:    s_cbranch_execnz .LBB15_15784; GFX908-NEXT:  ; %bb.2:5785; GFX908-NEXT:    s_mov_b64 exec, s[6:7]5786; GFX908-NEXT:    s_mov_b64 s[6:7], 05787; GFX908-NEXT:    v_lshlrev_b32_e32 v10, 16, v55788; GFX908-NEXT:    s_movk_i32 s14, 0x7fff5789; GFX908-NEXT:  .LBB15_3: ; %atomicrmw.start5790; GFX908-NEXT:    ; =>This Loop Header: Depth=15791; GFX908-NEXT:    ; Child Loop BB15_4 Depth 25792; GFX908-NEXT:    s_waitcnt vmcnt(0)5793; GFX908-NEXT:    v_lshrrev_b32_sdwa v4, v7, v6 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5794; GFX908-NEXT:    v_min_f32_e32 v4, v4, v105795; GFX908-NEXT:    v_bfe_u32 v5, v4, 16, 15796; GFX908-NEXT:    v_add3_u32 v5, v5, v4, s145797; GFX908-NEXT:    v_or_b32_e32 v11, 0x400000, v45798; GFX908-NEXT:    v_cmp_u_f32_e32 vcc, v4, v45799; GFX908-NEXT:    v_cndmask_b32_e32 v4, v5, v11, vcc5800; GFX908-NEXT:    v_lshlrev_b32_sdwa v4, v7, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_15801; GFX908-NEXT:    v_and_or_b32 v5, v6, v9, v45802; GFX908-NEXT:    v_mov_b32_e32 v4, v55803; GFX908-NEXT:    s_mov_b64 s[12:13], exec5804; GFX908-NEXT:    v_mov_b32_e32 v5, v65805; GFX908-NEXT:  .LBB15_4: ; Parent Loop BB15_3 Depth=15806; GFX908-NEXT:    ; => This Inner Loop Header: Depth=25807; GFX908-NEXT:    v_readfirstlane_b32 s8, v05808; GFX908-NEXT:    v_readfirstlane_b32 s9, v15809; GFX908-NEXT:    v_readfirstlane_b32 s10, v25810; GFX908-NEXT:    v_readfirstlane_b32 s11, v35811; GFX908-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]5812; GFX908-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]5813; GFX908-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]5814; GFX908-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]5815; GFX908-NEXT:    s_waitcnt vmcnt(0)5816; GFX908-NEXT:    buffer_atomic_cmpswap v[4:5], v8, s[8:11], 0 offen glc5817; GFX908-NEXT:    s_xor_b64 exec, exec, s[4:5]5818; GFX908-NEXT:    s_cbranch_execnz .LBB15_45819; GFX908-NEXT:  ; %bb.5: ; in Loop: Header=BB15_3 Depth=15820; GFX908-NEXT:    s_mov_b64 exec, s[12:13]5821; GFX908-NEXT:    s_waitcnt vmcnt(0)5822; GFX908-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v65823; GFX908-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]5824; GFX908-NEXT:    v_mov_b32_e32 v6, v45825; GFX908-NEXT:    buffer_wbinvl15826; GFX908-NEXT:    s_andn2_b64 exec, exec, s[6:7]5827; GFX908-NEXT:    s_cbranch_execnz .LBB15_35828; GFX908-NEXT:  ; %bb.6: ; %atomicrmw.end5829; GFX908-NEXT:    s_or_b64 exec, exec, s[6:7]5830; GFX908-NEXT:    v_lshrrev_b32_e32 v0, v7, v45831; GFX908-NEXT:    s_setpc_b64 s[30:31]5832;5833; GFX8-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__waterfall__amdgpu_no_fine_grained_memory:5834; GFX8:       ; %bb.0:5835; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5836; GFX8-NEXT:    v_add_u32_e32 v4, vcc, 0x200, v45837; GFX8-NEXT:    v_and_b32_e32 v8, -4, v45838; GFX8-NEXT:    v_and_b32_e32 v4, 3, v45839; GFX8-NEXT:    v_lshlrev_b32_e32 v7, 3, v45840; GFX8-NEXT:    s_mov_b32 s4, 0xffff5841; GFX8-NEXT:    v_lshlrev_b32_e64 v4, v7, s45842; GFX8-NEXT:    v_not_b32_e32 v9, v45843; GFX8-NEXT:    s_mov_b64 s[6:7], exec5844; GFX8-NEXT:  .LBB15_1: ; =>This Inner Loop Header: Depth=15845; GFX8-NEXT:    v_readfirstlane_b32 s8, v05846; GFX8-NEXT:    v_readfirstlane_b32 s9, v15847; GFX8-NEXT:    v_readfirstlane_b32 s10, v25848; GFX8-NEXT:    v_readfirstlane_b32 s11, v35849; GFX8-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]5850; GFX8-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]5851; GFX8-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]5852; GFX8-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]5853; GFX8-NEXT:    s_nop 05854; GFX8-NEXT:    buffer_load_dword v6, v8, s[8:11], 0 offen5855; GFX8-NEXT:    s_xor_b64 exec, exec, s[4:5]5856; GFX8-NEXT:    s_cbranch_execnz .LBB15_15857; GFX8-NEXT:  ; %bb.2:5858; GFX8-NEXT:    s_mov_b64 exec, s[6:7]5859; GFX8-NEXT:    s_mov_b64 s[6:7], 05860; GFX8-NEXT:    v_lshlrev_b32_e32 v10, 16, v55861; GFX8-NEXT:  .LBB15_3: ; %atomicrmw.start5862; GFX8-NEXT:    ; =>This Loop Header: Depth=15863; GFX8-NEXT:    ; Child Loop BB15_4 Depth 25864; GFX8-NEXT:    s_waitcnt vmcnt(0)5865; GFX8-NEXT:    v_lshrrev_b32_sdwa v4, v7, v6 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD5866; GFX8-NEXT:    v_min_f32_e32 v4, v4, v105867; GFX8-NEXT:    v_bfe_u32 v5, v4, 16, 15868; GFX8-NEXT:    v_add_u32_e32 v5, vcc, v5, v45869; GFX8-NEXT:    v_add_u32_e32 v5, vcc, 0x7fff, v55870; GFX8-NEXT:    v_or_b32_e32 v11, 0x400000, v45871; GFX8-NEXT:    v_cmp_u_f32_e32 vcc, v4, v45872; GFX8-NEXT:    v_cndmask_b32_e32 v4, v5, v11, vcc5873; GFX8-NEXT:    v_lshlrev_b32_sdwa v4, v7, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_15874; GFX8-NEXT:    v_and_b32_e32 v5, v6, v95875; GFX8-NEXT:    v_or_b32_e32 v5, v5, v45876; GFX8-NEXT:    v_mov_b32_e32 v4, v55877; GFX8-NEXT:    s_mov_b64 s[12:13], exec5878; GFX8-NEXT:    v_mov_b32_e32 v5, v65879; GFX8-NEXT:  .LBB15_4: ; Parent Loop BB15_3 Depth=15880; GFX8-NEXT:    ; => This Inner Loop Header: Depth=25881; GFX8-NEXT:    v_readfirstlane_b32 s8, v05882; GFX8-NEXT:    v_readfirstlane_b32 s9, v15883; GFX8-NEXT:    v_readfirstlane_b32 s10, v25884; GFX8-NEXT:    v_readfirstlane_b32 s11, v35885; GFX8-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]5886; GFX8-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]5887; GFX8-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]5888; GFX8-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]5889; GFX8-NEXT:    s_waitcnt vmcnt(0)5890; GFX8-NEXT:    buffer_atomic_cmpswap v[4:5], v8, s[8:11], 0 offen glc5891; GFX8-NEXT:    s_xor_b64 exec, exec, s[4:5]5892; GFX8-NEXT:    s_cbranch_execnz .LBB15_45893; GFX8-NEXT:  ; %bb.5: ; in Loop: Header=BB15_3 Depth=15894; GFX8-NEXT:    s_mov_b64 exec, s[12:13]5895; GFX8-NEXT:    s_waitcnt vmcnt(0)5896; GFX8-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v65897; GFX8-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]5898; GFX8-NEXT:    v_mov_b32_e32 v6, v45899; GFX8-NEXT:    buffer_wbinvl15900; GFX8-NEXT:    s_andn2_b64 exec, exec, s[6:7]5901; GFX8-NEXT:    s_cbranch_execnz .LBB15_35902; GFX8-NEXT:  ; %bb.6: ; %atomicrmw.end5903; GFX8-NEXT:    s_or_b64 exec, exec, s[6:7]5904; GFX8-NEXT:    v_lshrrev_b32_e32 v0, v7, v45905; GFX8-NEXT:    s_setpc_b64 s[30:31]5906;5907; GFX7-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__waterfall__amdgpu_no_fine_grained_memory:5908; GFX7:       ; %bb.0:5909; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5910; GFX7-NEXT:    v_add_i32_e32 v4, vcc, 0x200, v45911; GFX7-NEXT:    v_and_b32_e32 v8, -4, v45912; GFX7-NEXT:    v_and_b32_e32 v4, 3, v45913; GFX7-NEXT:    v_lshlrev_b32_e32 v7, 3, v45914; GFX7-NEXT:    v_lshl_b32_e32 v4, 0xffff, v75915; GFX7-NEXT:    v_not_b32_e32 v9, v45916; GFX7-NEXT:    s_mov_b64 s[6:7], exec5917; GFX7-NEXT:  .LBB15_1: ; =>This Inner Loop Header: Depth=15918; GFX7-NEXT:    v_readfirstlane_b32 s8, v05919; GFX7-NEXT:    v_readfirstlane_b32 s9, v15920; GFX7-NEXT:    v_readfirstlane_b32 s10, v25921; GFX7-NEXT:    v_readfirstlane_b32 s11, v35922; GFX7-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]5923; GFX7-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]5924; GFX7-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]5925; GFX7-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]5926; GFX7-NEXT:    buffer_load_dword v6, v8, s[8:11], 0 offen5927; GFX7-NEXT:    s_xor_b64 exec, exec, s[4:5]5928; GFX7-NEXT:    s_cbranch_execnz .LBB15_15929; GFX7-NEXT:  ; %bb.2:5930; GFX7-NEXT:    s_mov_b64 exec, s[6:7]5931; GFX7-NEXT:    v_mul_f32_e32 v4, 1.0, v55932; GFX7-NEXT:    s_mov_b64 s[6:7], 05933; GFX7-NEXT:    v_and_b32_e32 v10, 0xffff0000, v45934; GFX7-NEXT:  .LBB15_3: ; %atomicrmw.start5935; GFX7-NEXT:    ; =>This Loop Header: Depth=15936; GFX7-NEXT:    ; Child Loop BB15_4 Depth 25937; GFX7-NEXT:    s_waitcnt vmcnt(0)5938; GFX7-NEXT:    v_lshrrev_b32_e32 v4, v7, v65939; GFX7-NEXT:    v_lshlrev_b32_e32 v4, 16, v45940; GFX7-NEXT:    v_mul_f32_e32 v4, 1.0, v45941; GFX7-NEXT:    v_min_f32_e32 v4, v4, v105942; GFX7-NEXT:    v_lshrrev_b32_e32 v4, 16, v45943; GFX7-NEXT:    v_lshlrev_b32_e32 v4, v7, v45944; GFX7-NEXT:    v_and_b32_e32 v5, v6, v95945; GFX7-NEXT:    v_or_b32_e32 v5, v5, v45946; GFX7-NEXT:    v_mov_b32_e32 v4, v55947; GFX7-NEXT:    s_mov_b64 s[12:13], exec5948; GFX7-NEXT:    v_mov_b32_e32 v5, v65949; GFX7-NEXT:  .LBB15_4: ; Parent Loop BB15_3 Depth=15950; GFX7-NEXT:    ; => This Inner Loop Header: Depth=25951; GFX7-NEXT:    v_readfirstlane_b32 s8, v05952; GFX7-NEXT:    v_readfirstlane_b32 s9, v15953; GFX7-NEXT:    v_readfirstlane_b32 s10, v25954; GFX7-NEXT:    v_readfirstlane_b32 s11, v35955; GFX7-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]5956; GFX7-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]5957; GFX7-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]5958; GFX7-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]5959; GFX7-NEXT:    s_waitcnt vmcnt(0)5960; GFX7-NEXT:    buffer_atomic_cmpswap v[4:5], v8, s[8:11], 0 offen glc5961; GFX7-NEXT:    s_xor_b64 exec, exec, s[4:5]5962; GFX7-NEXT:    s_cbranch_execnz .LBB15_45963; GFX7-NEXT:  ; %bb.5: ; in Loop: Header=BB15_3 Depth=15964; GFX7-NEXT:    s_mov_b64 exec, s[12:13]5965; GFX7-NEXT:    s_waitcnt vmcnt(0)5966; GFX7-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v65967; GFX7-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]5968; GFX7-NEXT:    v_mov_b32_e32 v6, v45969; GFX7-NEXT:    buffer_wbinvl15970; GFX7-NEXT:    s_andn2_b64 exec, exec, s[6:7]5971; GFX7-NEXT:    s_cbranch_execnz .LBB15_35972; GFX7-NEXT:  ; %bb.6: ; %atomicrmw.end5973; GFX7-NEXT:    s_or_b64 exec, exec, s[6:7]5974; GFX7-NEXT:    v_lshrrev_b32_e32 v0, v7, v45975; GFX7-NEXT:    v_lshlrev_b32_e32 v0, 16, v05976; GFX7-NEXT:    s_setpc_b64 s[30:31]5977;5978; GFX6-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_bf16__offset__waterfall__amdgpu_no_fine_grained_memory:5979; GFX6:       ; %bb.0:5980; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5981; GFX6-NEXT:    v_add_i32_e32 v4, vcc, 0x200, v45982; GFX6-NEXT:    v_and_b32_e32 v8, -4, v45983; GFX6-NEXT:    v_and_b32_e32 v4, 3, v45984; GFX6-NEXT:    v_lshlrev_b32_e32 v7, 3, v45985; GFX6-NEXT:    v_lshl_b32_e32 v4, 0xffff, v75986; GFX6-NEXT:    v_not_b32_e32 v9, v45987; GFX6-NEXT:    s_mov_b64 s[6:7], exec5988; GFX6-NEXT:  .LBB15_1: ; =>This Inner Loop Header: Depth=15989; GFX6-NEXT:    v_readfirstlane_b32 s8, v05990; GFX6-NEXT:    v_readfirstlane_b32 s9, v15991; GFX6-NEXT:    v_readfirstlane_b32 s10, v25992; GFX6-NEXT:    v_readfirstlane_b32 s11, v35993; GFX6-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]5994; GFX6-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]5995; GFX6-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]5996; GFX6-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]5997; GFX6-NEXT:    buffer_load_dword v6, v8, s[8:11], 0 offen5998; GFX6-NEXT:    s_xor_b64 exec, exec, s[4:5]5999; GFX6-NEXT:    s_cbranch_execnz .LBB15_16000; GFX6-NEXT:  ; %bb.2:6001; GFX6-NEXT:    s_mov_b64 exec, s[6:7]6002; GFX6-NEXT:    v_mul_f32_e32 v4, 1.0, v56003; GFX6-NEXT:    s_mov_b64 s[6:7], 06004; GFX6-NEXT:    v_and_b32_e32 v10, 0xffff0000, v46005; GFX6-NEXT:  .LBB15_3: ; %atomicrmw.start6006; GFX6-NEXT:    ; =>This Loop Header: Depth=16007; GFX6-NEXT:    ; Child Loop BB15_4 Depth 26008; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0)6009; GFX6-NEXT:    v_lshrrev_b32_e32 v4, v7, v66010; GFX6-NEXT:    v_lshlrev_b32_e32 v4, 16, v46011; GFX6-NEXT:    v_mul_f32_e32 v4, 1.0, v46012; GFX6-NEXT:    v_min_f32_e32 v4, v4, v106013; GFX6-NEXT:    v_lshrrev_b32_e32 v4, 16, v46014; GFX6-NEXT:    v_lshlrev_b32_e32 v4, v7, v46015; GFX6-NEXT:    v_and_b32_e32 v5, v6, v96016; GFX6-NEXT:    v_or_b32_e32 v5, v5, v46017; GFX6-NEXT:    v_mov_b32_e32 v4, v56018; GFX6-NEXT:    s_mov_b64 s[12:13], exec6019; GFX6-NEXT:    v_mov_b32_e32 v5, v66020; GFX6-NEXT:  .LBB15_4: ; Parent Loop BB15_3 Depth=16021; GFX6-NEXT:    ; => This Inner Loop Header: Depth=26022; GFX6-NEXT:    v_readfirstlane_b32 s8, v06023; GFX6-NEXT:    v_readfirstlane_b32 s9, v16024; GFX6-NEXT:    v_readfirstlane_b32 s10, v26025; GFX6-NEXT:    v_readfirstlane_b32 s11, v36026; GFX6-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]6027; GFX6-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]6028; GFX6-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]6029; GFX6-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]6030; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0)6031; GFX6-NEXT:    buffer_atomic_cmpswap v[4:5], v8, s[8:11], 0 offen glc6032; GFX6-NEXT:    s_xor_b64 exec, exec, s[4:5]6033; GFX6-NEXT:    s_cbranch_execnz .LBB15_46034; GFX6-NEXT:  ; %bb.5: ; in Loop: Header=BB15_3 Depth=16035; GFX6-NEXT:    s_mov_b64 exec, s[12:13]6036; GFX6-NEXT:    s_waitcnt vmcnt(0)6037; GFX6-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v66038; GFX6-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]6039; GFX6-NEXT:    v_mov_b32_e32 v6, v46040; GFX6-NEXT:    buffer_wbinvl16041; GFX6-NEXT:    s_andn2_b64 exec, exec, s[6:7]6042; GFX6-NEXT:    s_cbranch_execnz .LBB15_36043; GFX6-NEXT:  ; %bb.6: ; %atomicrmw.end6044; GFX6-NEXT:    s_or_b64 exec, exec, s[6:7]6045; GFX6-NEXT:    v_lshrrev_b32_e32 v0, v7, v46046; GFX6-NEXT:    v_lshlrev_b32_e32 v0, 16, v06047; GFX6-NEXT:    s_waitcnt expcnt(0)6048; GFX6-NEXT:    s_setpc_b64 s[30:31]6049  %gep = getelementptr bfloat, ptr addrspace(7) %ptr, i32 2566050  %result = atomicrmw fmin ptr addrspace(7) %gep, bfloat %val syncscope("agent") seq_cst, !amdgpu.no.fine.grained.memory !06051  ret bfloat %result6052}6053 6054; --------------------------------------------------------------------6055; <2 x half>6056; --------------------------------------------------------------------6057 6058define <2 x half> @buffer_fat_ptr_agent_atomic_fmin_ret_v2f16__offset__amdgpu_no_fine_grained_memory(ptr addrspace(7) inreg %ptr, <2 x half> %val) #0 {6059; GFX12-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2f16__offset__amdgpu_no_fine_grained_memory:6060; GFX12:       ; %bb.0:6061; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x06062; GFX12-NEXT:    s_wait_expcnt 0x06063; GFX12-NEXT:    s_wait_samplecnt 0x06064; GFX12-NEXT:    s_wait_bvhcnt 0x06065; GFX12-NEXT:    s_wait_kmcnt 0x06066; GFX12-NEXT:    v_dual_mov_b32 v1, v0 :: v_dual_mov_b32 v0, s166067; GFX12-NEXT:    v_mov_b32_e32 v3, s166068; GFX12-NEXT:    s_mov_b32 s4, 06069; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_2)6070; GFX12-NEXT:    v_pk_max_num_f16 v2, v1, v16071; GFX12-NEXT:    buffer_load_b32 v0, v0, s[0:3], null offen offset:10246072; GFX12-NEXT:  .LBB16_1: ; %atomicrmw.start6073; GFX12-NEXT:    ; =>This Inner Loop Header: Depth=16074; GFX12-NEXT:    s_wait_loadcnt 0x06075; GFX12-NEXT:    v_mov_b32_e32 v5, v06076; GFX12-NEXT:    s_wait_storecnt 0x06077; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)6078; GFX12-NEXT:    v_pk_max_num_f16 v0, v5, v56079; GFX12-NEXT:    v_pk_min_num_f16 v4, v0, v26080; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1)6081; GFX12-NEXT:    v_dual_mov_b32 v0, v4 :: v_dual_mov_b32 v1, v56082; GFX12-NEXT:    buffer_atomic_cmpswap_b32 v[0:1], v3, s[0:3], null offen offset:1024 th:TH_ATOMIC_RETURN6083; GFX12-NEXT:    s_wait_loadcnt 0x06084; GFX12-NEXT:    global_inv scope:SCOPE_DEV6085; GFX12-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v0, v56086; GFX12-NEXT:    s_or_b32 s4, vcc_lo, s46087; GFX12-NEXT:    s_wait_alu depctr_sa_sdst(0)6088; GFX12-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s46089; GFX12-NEXT:    s_cbranch_execnz .LBB16_16090; GFX12-NEXT:  ; %bb.2: ; %atomicrmw.end6091; GFX12-NEXT:    s_or_b32 exec_lo, exec_lo, s46092; GFX12-NEXT:    s_wait_loadcnt 0x06093; GFX12-NEXT:    s_setpc_b64 s[30:31]6094;6095; GFX942-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2f16__offset__amdgpu_no_fine_grained_memory:6096; GFX942:       ; %bb.0:6097; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6098; GFX942-NEXT:    v_mov_b32_e32 v1, v06099; GFX942-NEXT:    v_mov_b32_e32 v0, s166100; GFX942-NEXT:    buffer_load_dword v0, v0, s[0:3], 0 offen offset:10246101; GFX942-NEXT:    s_mov_b64 s[4:5], 06102; GFX942-NEXT:    v_pk_max_f16 v2, v1, v16103; GFX942-NEXT:    v_mov_b32_e32 v3, s166104; GFX942-NEXT:  .LBB16_1: ; %atomicrmw.start6105; GFX942-NEXT:    ; =>This Inner Loop Header: Depth=16106; GFX942-NEXT:    s_waitcnt vmcnt(0)6107; GFX942-NEXT:    v_mov_b32_e32 v5, v06108; GFX942-NEXT:    v_pk_max_f16 v0, v5, v56109; GFX942-NEXT:    buffer_wbl2 sc16110; GFX942-NEXT:    v_pk_min_f16 v4, v0, v26111; GFX942-NEXT:    s_nop 06112; GFX942-NEXT:    v_mov_b64_e32 v[0:1], v[4:5]6113; GFX942-NEXT:    buffer_atomic_cmpswap v[0:1], v3, s[0:3], 0 offen offset:1024 sc06114; GFX942-NEXT:    s_waitcnt vmcnt(0)6115; GFX942-NEXT:    buffer_inv sc16116; GFX942-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v56117; GFX942-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]6118; GFX942-NEXT:    s_andn2_b64 exec, exec, s[4:5]6119; GFX942-NEXT:    s_cbranch_execnz .LBB16_16120; GFX942-NEXT:  ; %bb.2: ; %atomicrmw.end6121; GFX942-NEXT:    s_or_b64 exec, exec, s[4:5]6122; GFX942-NEXT:    s_setpc_b64 s[30:31]6123;6124; GFX11-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2f16__offset__amdgpu_no_fine_grained_memory:6125; GFX11:       ; %bb.0:6126; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6127; GFX11-NEXT:    v_dual_mov_b32 v1, v0 :: v_dual_mov_b32 v0, s166128; GFX11-NEXT:    v_mov_b32_e32 v3, s166129; GFX11-NEXT:    s_mov_b32 s4, 06130; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_2)6131; GFX11-NEXT:    v_pk_max_f16 v2, v1, v16132; GFX11-NEXT:    buffer_load_b32 v0, v0, s[0:3], 0 offen offset:10246133; GFX11-NEXT:  .LBB16_1: ; %atomicrmw.start6134; GFX11-NEXT:    ; =>This Inner Loop Header: Depth=16135; GFX11-NEXT:    s_waitcnt vmcnt(0)6136; GFX11-NEXT:    v_mov_b32_e32 v5, v06137; GFX11-NEXT:    s_waitcnt_vscnt null, 0x06138; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)6139; GFX11-NEXT:    v_pk_max_f16 v0, v5, v56140; GFX11-NEXT:    v_pk_min_f16 v4, v0, v26141; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1)6142; GFX11-NEXT:    v_dual_mov_b32 v0, v4 :: v_dual_mov_b32 v1, v56143; GFX11-NEXT:    buffer_atomic_cmpswap_b32 v[0:1], v3, s[0:3], 0 offen offset:1024 glc6144; GFX11-NEXT:    s_waitcnt vmcnt(0)6145; GFX11-NEXT:    buffer_gl1_inv6146; GFX11-NEXT:    buffer_gl0_inv6147; GFX11-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v0, v56148; GFX11-NEXT:    s_or_b32 s4, vcc_lo, s46149; GFX11-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)6150; GFX11-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s46151; GFX11-NEXT:    s_cbranch_execnz .LBB16_16152; GFX11-NEXT:  ; %bb.2: ; %atomicrmw.end6153; GFX11-NEXT:    s_or_b32 exec_lo, exec_lo, s46154; GFX11-NEXT:    s_setpc_b64 s[30:31]6155;6156; GFX10-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2f16__offset__amdgpu_no_fine_grained_memory:6157; GFX10:       ; %bb.0:6158; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6159; GFX10-NEXT:    v_mov_b32_e32 v1, v06160; GFX10-NEXT:    v_mov_b32_e32 v0, s206161; GFX10-NEXT:    v_mov_b32_e32 v3, s206162; GFX10-NEXT:    s_mov_b32 s4, 06163; GFX10-NEXT:    v_pk_max_f16 v2, v1, v16164; GFX10-NEXT:    buffer_load_dword v0, v0, s[16:19], 0 offen offset:10246165; GFX10-NEXT:  .LBB16_1: ; %atomicrmw.start6166; GFX10-NEXT:    ; =>This Inner Loop Header: Depth=16167; GFX10-NEXT:    s_waitcnt vmcnt(0)6168; GFX10-NEXT:    v_mov_b32_e32 v5, v06169; GFX10-NEXT:    s_waitcnt_vscnt null, 0x06170; GFX10-NEXT:    v_pk_max_f16 v0, v5, v56171; GFX10-NEXT:    v_pk_min_f16 v4, v0, v26172; GFX10-NEXT:    v_mov_b32_e32 v0, v46173; GFX10-NEXT:    v_mov_b32_e32 v1, v56174; GFX10-NEXT:    buffer_atomic_cmpswap v[0:1], v3, s[16:19], 0 offen offset:1024 glc6175; GFX10-NEXT:    s_waitcnt vmcnt(0)6176; GFX10-NEXT:    buffer_gl1_inv6177; GFX10-NEXT:    buffer_gl0_inv6178; GFX10-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v0, v56179; GFX10-NEXT:    s_or_b32 s4, vcc_lo, s46180; GFX10-NEXT:    s_andn2_b32 exec_lo, exec_lo, s46181; GFX10-NEXT:    s_cbranch_execnz .LBB16_16182; GFX10-NEXT:  ; %bb.2: ; %atomicrmw.end6183; GFX10-NEXT:    s_or_b32 exec_lo, exec_lo, s46184; GFX10-NEXT:    s_setpc_b64 s[30:31]6185;6186; GFX90A-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2f16__offset__amdgpu_no_fine_grained_memory:6187; GFX90A:       ; %bb.0:6188; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6189; GFX90A-NEXT:    v_mov_b32_e32 v1, v06190; GFX90A-NEXT:    v_mov_b32_e32 v0, s206191; GFX90A-NEXT:    buffer_load_dword v0, v0, s[16:19], 0 offen offset:10246192; GFX90A-NEXT:    s_mov_b64 s[4:5], 06193; GFX90A-NEXT:    v_pk_max_f16 v2, v1, v16194; GFX90A-NEXT:    v_mov_b32_e32 v3, s206195; GFX90A-NEXT:  .LBB16_1: ; %atomicrmw.start6196; GFX90A-NEXT:    ; =>This Inner Loop Header: Depth=16197; GFX90A-NEXT:    s_waitcnt vmcnt(0)6198; GFX90A-NEXT:    v_mov_b32_e32 v5, v06199; GFX90A-NEXT:    v_pk_max_f16 v0, v5, v56200; GFX90A-NEXT:    v_pk_min_f16 v4, v0, v26201; GFX90A-NEXT:    v_pk_mov_b32 v[0:1], v[4:5], v[4:5] op_sel:[0,1]6202; GFX90A-NEXT:    buffer_atomic_cmpswap v[0:1], v3, s[16:19], 0 offen offset:1024 glc6203; GFX90A-NEXT:    s_waitcnt vmcnt(0)6204; GFX90A-NEXT:    buffer_wbinvl16205; GFX90A-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v56206; GFX90A-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]6207; GFX90A-NEXT:    s_andn2_b64 exec, exec, s[4:5]6208; GFX90A-NEXT:    s_cbranch_execnz .LBB16_16209; GFX90A-NEXT:  ; %bb.2: ; %atomicrmw.end6210; GFX90A-NEXT:    s_or_b64 exec, exec, s[4:5]6211; GFX90A-NEXT:    s_setpc_b64 s[30:31]6212;6213; GFX908-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2f16__offset__amdgpu_no_fine_grained_memory:6214; GFX908:       ; %bb.0:6215; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6216; GFX908-NEXT:    v_mov_b32_e32 v1, v06217; GFX908-NEXT:    v_mov_b32_e32 v0, s206218; GFX908-NEXT:    buffer_load_dword v0, v0, s[16:19], 0 offen offset:10246219; GFX908-NEXT:    s_mov_b64 s[4:5], 06220; GFX908-NEXT:    v_pk_max_f16 v2, v1, v16221; GFX908-NEXT:    v_mov_b32_e32 v3, s206222; GFX908-NEXT:  .LBB16_1: ; %atomicrmw.start6223; GFX908-NEXT:    ; =>This Inner Loop Header: Depth=16224; GFX908-NEXT:    s_waitcnt vmcnt(0)6225; GFX908-NEXT:    v_mov_b32_e32 v5, v06226; GFX908-NEXT:    v_pk_max_f16 v0, v5, v56227; GFX908-NEXT:    v_pk_min_f16 v4, v0, v26228; GFX908-NEXT:    v_mov_b32_e32 v0, v46229; GFX908-NEXT:    v_mov_b32_e32 v1, v56230; GFX908-NEXT:    buffer_atomic_cmpswap v[0:1], v3, s[16:19], 0 offen offset:1024 glc6231; GFX908-NEXT:    s_waitcnt vmcnt(0)6232; GFX908-NEXT:    buffer_wbinvl16233; GFX908-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v56234; GFX908-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]6235; GFX908-NEXT:    s_andn2_b64 exec, exec, s[4:5]6236; GFX908-NEXT:    s_cbranch_execnz .LBB16_16237; GFX908-NEXT:  ; %bb.2: ; %atomicrmw.end6238; GFX908-NEXT:    s_or_b64 exec, exec, s[4:5]6239; GFX908-NEXT:    s_setpc_b64 s[30:31]6240;6241; GFX8-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2f16__offset__amdgpu_no_fine_grained_memory:6242; GFX8:       ; %bb.0:6243; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6244; GFX8-NEXT:    v_mov_b32_e32 v1, v06245; GFX8-NEXT:    v_mov_b32_e32 v0, s206246; GFX8-NEXT:    buffer_load_dword v0, v0, s[16:19], 0 offen offset:10246247; GFX8-NEXT:    s_mov_b64 s[4:5], 06248; GFX8-NEXT:    v_max_f16_sdwa v2, v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_16249; GFX8-NEXT:    v_max_f16_e32 v3, v1, v16250; GFX8-NEXT:    v_mov_b32_e32 v4, s206251; GFX8-NEXT:  .LBB16_1: ; %atomicrmw.start6252; GFX8-NEXT:    ; =>This Inner Loop Header: Depth=16253; GFX8-NEXT:    s_waitcnt vmcnt(0)6254; GFX8-NEXT:    v_mov_b32_e32 v6, v06255; GFX8-NEXT:    v_max_f16_sdwa v0, v6, v6 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_16256; GFX8-NEXT:    v_max_f16_e32 v1, v6, v66257; GFX8-NEXT:    v_min_f16_sdwa v0, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD6258; GFX8-NEXT:    v_min_f16_e32 v1, v1, v36259; GFX8-NEXT:    v_or_b32_e32 v5, v1, v06260; GFX8-NEXT:    v_mov_b32_e32 v0, v56261; GFX8-NEXT:    v_mov_b32_e32 v1, v66262; GFX8-NEXT:    buffer_atomic_cmpswap v[0:1], v4, s[16:19], 0 offen offset:1024 glc6263; GFX8-NEXT:    s_waitcnt vmcnt(0)6264; GFX8-NEXT:    buffer_wbinvl16265; GFX8-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v66266; GFX8-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]6267; GFX8-NEXT:    s_andn2_b64 exec, exec, s[4:5]6268; GFX8-NEXT:    s_cbranch_execnz .LBB16_16269; GFX8-NEXT:  ; %bb.2: ; %atomicrmw.end6270; GFX8-NEXT:    s_or_b64 exec, exec, s[4:5]6271; GFX8-NEXT:    s_setpc_b64 s[30:31]6272;6273; GFX7-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2f16__offset__amdgpu_no_fine_grained_memory:6274; GFX7:       ; %bb.0:6275; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6276; GFX7-NEXT:    v_mov_b32_e32 v2, s206277; GFX7-NEXT:    buffer_load_dword v3, v2, s[16:19], 0 offen offset:10246278; GFX7-NEXT:    v_cvt_f16_f32_e32 v1, v16279; GFX7-NEXT:    v_cvt_f16_f32_e32 v4, v06280; GFX7-NEXT:    s_mov_b64 s[4:5], 06281; GFX7-NEXT:    v_cvt_f32_f16_e32 v2, v16282; GFX7-NEXT:    s_waitcnt vmcnt(0)6283; GFX7-NEXT:    v_lshrrev_b32_e32 v1, 16, v36284; GFX7-NEXT:    v_cvt_f32_f16_e32 v0, v36285; GFX7-NEXT:    v_cvt_f32_f16_e32 v1, v16286; GFX7-NEXT:    v_cvt_f32_f16_e32 v3, v46287; GFX7-NEXT:    v_mov_b32_e32 v4, s206288; GFX7-NEXT:  .LBB16_1: ; %atomicrmw.start6289; GFX7-NEXT:    ; =>This Inner Loop Header: Depth=16290; GFX7-NEXT:    v_cvt_f16_f32_e32 v1, v16291; GFX7-NEXT:    v_cvt_f16_f32_e32 v0, v06292; GFX7-NEXT:    v_cvt_f32_f16_e32 v5, v16293; GFX7-NEXT:    v_cvt_f32_f16_e32 v6, v06294; GFX7-NEXT:    v_lshlrev_b32_e32 v1, 16, v16295; GFX7-NEXT:    v_min_f32_e32 v5, v5, v26296; GFX7-NEXT:    v_min_f32_e32 v6, v6, v36297; GFX7-NEXT:    v_cvt_f16_f32_e32 v5, v56298; GFX7-NEXT:    v_cvt_f16_f32_e32 v7, v66299; GFX7-NEXT:    v_or_b32_e32 v6, v0, v16300; GFX7-NEXT:    v_lshlrev_b32_e32 v0, 16, v56301; GFX7-NEXT:    v_or_b32_e32 v5, v7, v06302; GFX7-NEXT:    v_mov_b32_e32 v8, v66303; GFX7-NEXT:    v_mov_b32_e32 v7, v56304; GFX7-NEXT:    buffer_atomic_cmpswap v[7:8], v4, s[16:19], 0 offen offset:1024 glc6305; GFX7-NEXT:    s_waitcnt vmcnt(0)6306; GFX7-NEXT:    buffer_wbinvl16307; GFX7-NEXT:    v_lshrrev_b32_e32 v1, 16, v76308; GFX7-NEXT:    v_cvt_f32_f16_e32 v0, v76309; GFX7-NEXT:    v_cvt_f32_f16_e32 v1, v16310; GFX7-NEXT:    v_cmp_eq_u32_e32 vcc, v7, v66311; GFX7-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]6312; GFX7-NEXT:    s_andn2_b64 exec, exec, s[4:5]6313; GFX7-NEXT:    s_cbranch_execnz .LBB16_16314; GFX7-NEXT:  ; %bb.2: ; %atomicrmw.end6315; GFX7-NEXT:    s_or_b64 exec, exec, s[4:5]6316; GFX7-NEXT:    s_setpc_b64 s[30:31]6317;6318; GFX6-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2f16__offset__amdgpu_no_fine_grained_memory:6319; GFX6:       ; %bb.0:6320; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6321; GFX6-NEXT:    v_mov_b32_e32 v2, s206322; GFX6-NEXT:    buffer_load_dword v3, v2, s[16:19], 0 offen offset:10246323; GFX6-NEXT:    v_cvt_f16_f32_e32 v1, v16324; GFX6-NEXT:    v_cvt_f16_f32_e32 v4, v06325; GFX6-NEXT:    s_add_i32 s6, s20, 0x4006326; GFX6-NEXT:    s_mov_b64 s[4:5], 06327; GFX6-NEXT:    v_cvt_f32_f16_e32 v2, v16328; GFX6-NEXT:    s_waitcnt vmcnt(0)6329; GFX6-NEXT:    v_lshrrev_b32_e32 v1, 16, v36330; GFX6-NEXT:    v_cvt_f32_f16_e32 v0, v36331; GFX6-NEXT:    v_cvt_f32_f16_e32 v1, v16332; GFX6-NEXT:    v_cvt_f32_f16_e32 v3, v46333; GFX6-NEXT:    v_mov_b32_e32 v4, s66334; GFX6-NEXT:  .LBB16_1: ; %atomicrmw.start6335; GFX6-NEXT:    ; =>This Inner Loop Header: Depth=16336; GFX6-NEXT:    v_cvt_f16_f32_e32 v1, v16337; GFX6-NEXT:    v_cvt_f16_f32_e32 v0, v06338; GFX6-NEXT:    v_cvt_f32_f16_e32 v5, v16339; GFX6-NEXT:    v_cvt_f32_f16_e32 v6, v06340; GFX6-NEXT:    v_lshlrev_b32_e32 v1, 16, v16341; GFX6-NEXT:    v_min_f32_e32 v5, v5, v26342; GFX6-NEXT:    v_min_f32_e32 v6, v6, v36343; GFX6-NEXT:    v_cvt_f16_f32_e32 v5, v56344; GFX6-NEXT:    s_waitcnt expcnt(0)6345; GFX6-NEXT:    v_cvt_f16_f32_e32 v7, v66346; GFX6-NEXT:    v_or_b32_e32 v6, v0, v16347; GFX6-NEXT:    v_lshlrev_b32_e32 v0, 16, v56348; GFX6-NEXT:    v_or_b32_e32 v5, v7, v06349; GFX6-NEXT:    v_mov_b32_e32 v8, v66350; GFX6-NEXT:    v_mov_b32_e32 v7, v56351; GFX6-NEXT:    buffer_atomic_cmpswap v[7:8], v4, s[16:19], 0 offen glc6352; GFX6-NEXT:    s_waitcnt vmcnt(0)6353; GFX6-NEXT:    buffer_wbinvl16354; GFX6-NEXT:    v_lshrrev_b32_e32 v1, 16, v76355; GFX6-NEXT:    v_cvt_f32_f16_e32 v0, v76356; GFX6-NEXT:    v_cvt_f32_f16_e32 v1, v16357; GFX6-NEXT:    v_cmp_eq_u32_e32 vcc, v7, v66358; GFX6-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]6359; GFX6-NEXT:    s_andn2_b64 exec, exec, s[4:5]6360; GFX6-NEXT:    s_cbranch_execnz .LBB16_16361; GFX6-NEXT:  ; %bb.2: ; %atomicrmw.end6362; GFX6-NEXT:    s_or_b64 exec, exec, s[4:5]6363; GFX6-NEXT:    s_waitcnt expcnt(0)6364; GFX6-NEXT:    s_setpc_b64 s[30:31]6365  %gep = getelementptr <2 x half>, ptr addrspace(7) %ptr, i32 2566366  %result = atomicrmw fmin ptr addrspace(7) %gep, <2 x half> %val syncscope("agent") seq_cst, !amdgpu.no.fine.grained.memory !06367  ret <2 x half> %result6368}6369 6370define void @buffer_fat_ptr_agent_atomic_fmin_noret_v2f16__offset__amdgpu_no_fine_grained_memory(ptr addrspace(7) inreg %ptr, <2 x half> %val) #0 {6371; GFX12-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_v2f16__offset__amdgpu_no_fine_grained_memory:6372; GFX12:       ; %bb.0:6373; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x06374; GFX12-NEXT:    s_wait_expcnt 0x06375; GFX12-NEXT:    s_wait_samplecnt 0x06376; GFX12-NEXT:    s_wait_bvhcnt 0x06377; GFX12-NEXT:    s_wait_kmcnt 0x06378; GFX12-NEXT:    v_mov_b32_e32 v1, s166379; GFX12-NEXT:    v_pk_max_num_f16 v2, v0, v06380; GFX12-NEXT:    v_mov_b32_e32 v3, s166381; GFX12-NEXT:    s_mov_b32 s4, 06382; GFX12-NEXT:    buffer_load_b32 v1, v1, s[0:3], null offen offset:10246383; GFX12-NEXT:  .LBB17_1: ; %atomicrmw.start6384; GFX12-NEXT:    ; =>This Inner Loop Header: Depth=16385; GFX12-NEXT:    s_wait_loadcnt 0x06386; GFX12-NEXT:    v_pk_max_num_f16 v0, v1, v16387; GFX12-NEXT:    s_wait_storecnt 0x06388; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)6389; GFX12-NEXT:    v_pk_min_num_f16 v0, v0, v26390; GFX12-NEXT:    v_dual_mov_b32 v5, v1 :: v_dual_mov_b32 v4, v06391; GFX12-NEXT:    buffer_atomic_cmpswap_b32 v[4:5], v3, s[0:3], null offen offset:1024 th:TH_ATOMIC_RETURN6392; GFX12-NEXT:    s_wait_loadcnt 0x06393; GFX12-NEXT:    global_inv scope:SCOPE_DEV6394; GFX12-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v4, v16395; GFX12-NEXT:    v_mov_b32_e32 v1, v46396; GFX12-NEXT:    s_or_b32 s4, vcc_lo, s46397; GFX12-NEXT:    s_wait_alu depctr_sa_sdst(0)6398; GFX12-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s46399; GFX12-NEXT:    s_cbranch_execnz .LBB17_16400; GFX12-NEXT:  ; %bb.2: ; %atomicrmw.end6401; GFX12-NEXT:    s_or_b32 exec_lo, exec_lo, s46402; GFX12-NEXT:    s_wait_loadcnt 0x06403; GFX12-NEXT:    s_setpc_b64 s[30:31]6404;6405; GFX942-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_v2f16__offset__amdgpu_no_fine_grained_memory:6406; GFX942:       ; %bb.0:6407; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6408; GFX942-NEXT:    v_mov_b32_e32 v1, s166409; GFX942-NEXT:    buffer_load_dword v1, v1, s[0:3], 0 offen offset:10246410; GFX942-NEXT:    s_mov_b64 s[4:5], 06411; GFX942-NEXT:    v_pk_max_f16 v2, v0, v06412; GFX942-NEXT:    v_mov_b32_e32 v3, s166413; GFX942-NEXT:  .LBB17_1: ; %atomicrmw.start6414; GFX942-NEXT:    ; =>This Inner Loop Header: Depth=16415; GFX942-NEXT:    s_waitcnt vmcnt(0)6416; GFX942-NEXT:    v_pk_max_f16 v0, v1, v16417; GFX942-NEXT:    buffer_wbl2 sc16418; GFX942-NEXT:    v_pk_min_f16 v0, v0, v26419; GFX942-NEXT:    s_nop 06420; GFX942-NEXT:    v_mov_b64_e32 v[4:5], v[0:1]6421; GFX942-NEXT:    buffer_atomic_cmpswap v[4:5], v3, s[0:3], 0 offen offset:1024 sc06422; GFX942-NEXT:    s_waitcnt vmcnt(0)6423; GFX942-NEXT:    buffer_inv sc16424; GFX942-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v16425; GFX942-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]6426; GFX942-NEXT:    v_mov_b32_e32 v1, v46427; GFX942-NEXT:    s_andn2_b64 exec, exec, s[4:5]6428; GFX942-NEXT:    s_cbranch_execnz .LBB17_16429; GFX942-NEXT:  ; %bb.2: ; %atomicrmw.end6430; GFX942-NEXT:    s_or_b64 exec, exec, s[4:5]6431; GFX942-NEXT:    s_setpc_b64 s[30:31]6432;6433; GFX11-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_v2f16__offset__amdgpu_no_fine_grained_memory:6434; GFX11:       ; %bb.0:6435; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6436; GFX11-NEXT:    v_mov_b32_e32 v1, s166437; GFX11-NEXT:    v_pk_max_f16 v2, v0, v06438; GFX11-NEXT:    v_mov_b32_e32 v3, s166439; GFX11-NEXT:    s_mov_b32 s4, 06440; GFX11-NEXT:    buffer_load_b32 v1, v1, s[0:3], 0 offen offset:10246441; GFX11-NEXT:  .LBB17_1: ; %atomicrmw.start6442; GFX11-NEXT:    ; =>This Inner Loop Header: Depth=16443; GFX11-NEXT:    s_waitcnt vmcnt(0)6444; GFX11-NEXT:    v_pk_max_f16 v0, v1, v16445; GFX11-NEXT:    s_waitcnt_vscnt null, 0x06446; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)6447; GFX11-NEXT:    v_pk_min_f16 v0, v0, v26448; GFX11-NEXT:    v_dual_mov_b32 v5, v1 :: v_dual_mov_b32 v4, v06449; GFX11-NEXT:    buffer_atomic_cmpswap_b32 v[4:5], v3, s[0:3], 0 offen offset:1024 glc6450; GFX11-NEXT:    s_waitcnt vmcnt(0)6451; GFX11-NEXT:    buffer_gl1_inv6452; GFX11-NEXT:    buffer_gl0_inv6453; GFX11-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v4, v16454; GFX11-NEXT:    v_mov_b32_e32 v1, v46455; GFX11-NEXT:    s_or_b32 s4, vcc_lo, s46456; GFX11-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)6457; GFX11-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s46458; GFX11-NEXT:    s_cbranch_execnz .LBB17_16459; GFX11-NEXT:  ; %bb.2: ; %atomicrmw.end6460; GFX11-NEXT:    s_or_b32 exec_lo, exec_lo, s46461; GFX11-NEXT:    s_setpc_b64 s[30:31]6462;6463; GFX10-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_v2f16__offset__amdgpu_no_fine_grained_memory:6464; GFX10:       ; %bb.0:6465; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6466; GFX10-NEXT:    v_mov_b32_e32 v1, s206467; GFX10-NEXT:    v_pk_max_f16 v2, v0, v06468; GFX10-NEXT:    v_mov_b32_e32 v3, s206469; GFX10-NEXT:    s_mov_b32 s4, 06470; GFX10-NEXT:    buffer_load_dword v1, v1, s[16:19], 0 offen offset:10246471; GFX10-NEXT:  .LBB17_1: ; %atomicrmw.start6472; GFX10-NEXT:    ; =>This Inner Loop Header: Depth=16473; GFX10-NEXT:    s_waitcnt vmcnt(0)6474; GFX10-NEXT:    v_pk_max_f16 v0, v1, v16475; GFX10-NEXT:    s_waitcnt_vscnt null, 0x06476; GFX10-NEXT:    v_pk_min_f16 v0, v0, v26477; GFX10-NEXT:    v_mov_b32_e32 v5, v16478; GFX10-NEXT:    v_mov_b32_e32 v4, v06479; GFX10-NEXT:    buffer_atomic_cmpswap v[4:5], v3, s[16:19], 0 offen offset:1024 glc6480; GFX10-NEXT:    s_waitcnt vmcnt(0)6481; GFX10-NEXT:    buffer_gl1_inv6482; GFX10-NEXT:    buffer_gl0_inv6483; GFX10-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v4, v16484; GFX10-NEXT:    v_mov_b32_e32 v1, v46485; GFX10-NEXT:    s_or_b32 s4, vcc_lo, s46486; GFX10-NEXT:    s_andn2_b32 exec_lo, exec_lo, s46487; GFX10-NEXT:    s_cbranch_execnz .LBB17_16488; GFX10-NEXT:  ; %bb.2: ; %atomicrmw.end6489; GFX10-NEXT:    s_or_b32 exec_lo, exec_lo, s46490; GFX10-NEXT:    s_setpc_b64 s[30:31]6491;6492; GFX90A-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_v2f16__offset__amdgpu_no_fine_grained_memory:6493; GFX90A:       ; %bb.0:6494; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6495; GFX90A-NEXT:    v_mov_b32_e32 v1, s206496; GFX90A-NEXT:    buffer_load_dword v1, v1, s[16:19], 0 offen offset:10246497; GFX90A-NEXT:    s_mov_b64 s[4:5], 06498; GFX90A-NEXT:    v_pk_max_f16 v2, v0, v06499; GFX90A-NEXT:    v_mov_b32_e32 v3, s206500; GFX90A-NEXT:  .LBB17_1: ; %atomicrmw.start6501; GFX90A-NEXT:    ; =>This Inner Loop Header: Depth=16502; GFX90A-NEXT:    s_waitcnt vmcnt(0)6503; GFX90A-NEXT:    v_pk_max_f16 v0, v1, v16504; GFX90A-NEXT:    v_pk_min_f16 v0, v0, v26505; GFX90A-NEXT:    v_pk_mov_b32 v[4:5], v[0:1], v[0:1] op_sel:[0,1]6506; GFX90A-NEXT:    buffer_atomic_cmpswap v[4:5], v3, s[16:19], 0 offen offset:1024 glc6507; GFX90A-NEXT:    s_waitcnt vmcnt(0)6508; GFX90A-NEXT:    buffer_wbinvl16509; GFX90A-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v16510; GFX90A-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]6511; GFX90A-NEXT:    v_mov_b32_e32 v1, v46512; GFX90A-NEXT:    s_andn2_b64 exec, exec, s[4:5]6513; GFX90A-NEXT:    s_cbranch_execnz .LBB17_16514; GFX90A-NEXT:  ; %bb.2: ; %atomicrmw.end6515; GFX90A-NEXT:    s_or_b64 exec, exec, s[4:5]6516; GFX90A-NEXT:    s_setpc_b64 s[30:31]6517;6518; GFX908-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_v2f16__offset__amdgpu_no_fine_grained_memory:6519; GFX908:       ; %bb.0:6520; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6521; GFX908-NEXT:    v_mov_b32_e32 v1, s206522; GFX908-NEXT:    buffer_load_dword v1, v1, s[16:19], 0 offen offset:10246523; GFX908-NEXT:    s_mov_b64 s[4:5], 06524; GFX908-NEXT:    v_pk_max_f16 v2, v0, v06525; GFX908-NEXT:    v_mov_b32_e32 v3, s206526; GFX908-NEXT:  .LBB17_1: ; %atomicrmw.start6527; GFX908-NEXT:    ; =>This Inner Loop Header: Depth=16528; GFX908-NEXT:    s_waitcnt vmcnt(0)6529; GFX908-NEXT:    v_pk_max_f16 v0, v1, v16530; GFX908-NEXT:    v_pk_min_f16 v0, v0, v26531; GFX908-NEXT:    v_mov_b32_e32 v5, v16532; GFX908-NEXT:    v_mov_b32_e32 v4, v06533; GFX908-NEXT:    buffer_atomic_cmpswap v[4:5], v3, s[16:19], 0 offen offset:1024 glc6534; GFX908-NEXT:    s_waitcnt vmcnt(0)6535; GFX908-NEXT:    buffer_wbinvl16536; GFX908-NEXT:    v_cmp_eq_u32_e32 vcc, v4, v16537; GFX908-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]6538; GFX908-NEXT:    v_mov_b32_e32 v1, v46539; GFX908-NEXT:    s_andn2_b64 exec, exec, s[4:5]6540; GFX908-NEXT:    s_cbranch_execnz .LBB17_16541; GFX908-NEXT:  ; %bb.2: ; %atomicrmw.end6542; GFX908-NEXT:    s_or_b64 exec, exec, s[4:5]6543; GFX908-NEXT:    s_setpc_b64 s[30:31]6544;6545; GFX8-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_v2f16__offset__amdgpu_no_fine_grained_memory:6546; GFX8:       ; %bb.0:6547; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6548; GFX8-NEXT:    v_mov_b32_e32 v1, s206549; GFX8-NEXT:    buffer_load_dword v1, v1, s[16:19], 0 offen offset:10246550; GFX8-NEXT:    s_mov_b64 s[4:5], 06551; GFX8-NEXT:    v_max_f16_sdwa v2, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_16552; GFX8-NEXT:    v_max_f16_e32 v3, v0, v06553; GFX8-NEXT:    v_mov_b32_e32 v4, s206554; GFX8-NEXT:  .LBB17_1: ; %atomicrmw.start6555; GFX8-NEXT:    ; =>This Inner Loop Header: Depth=16556; GFX8-NEXT:    s_waitcnt vmcnt(0)6557; GFX8-NEXT:    v_max_f16_sdwa v0, v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_16558; GFX8-NEXT:    v_max_f16_e32 v5, v1, v16559; GFX8-NEXT:    v_min_f16_sdwa v0, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD6560; GFX8-NEXT:    v_min_f16_e32 v5, v5, v36561; GFX8-NEXT:    v_or_b32_e32 v0, v5, v06562; GFX8-NEXT:    v_mov_b32_e32 v6, v16563; GFX8-NEXT:    v_mov_b32_e32 v5, v06564; GFX8-NEXT:    buffer_atomic_cmpswap v[5:6], v4, s[16:19], 0 offen offset:1024 glc6565; GFX8-NEXT:    s_waitcnt vmcnt(0)6566; GFX8-NEXT:    buffer_wbinvl16567; GFX8-NEXT:    v_cmp_eq_u32_e32 vcc, v5, v16568; GFX8-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]6569; GFX8-NEXT:    v_mov_b32_e32 v1, v56570; GFX8-NEXT:    s_andn2_b64 exec, exec, s[4:5]6571; GFX8-NEXT:    s_cbranch_execnz .LBB17_16572; GFX8-NEXT:  ; %bb.2: ; %atomicrmw.end6573; GFX8-NEXT:    s_or_b64 exec, exec, s[4:5]6574; GFX8-NEXT:    s_setpc_b64 s[30:31]6575;6576; GFX7-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_v2f16__offset__amdgpu_no_fine_grained_memory:6577; GFX7:       ; %bb.0:6578; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6579; GFX7-NEXT:    v_mov_b32_e32 v2, s206580; GFX7-NEXT:    buffer_load_dword v2, v2, s[16:19], 0 offen offset:10246581; GFX7-NEXT:    v_cvt_f16_f32_e32 v1, v16582; GFX7-NEXT:    v_cvt_f16_f32_e32 v5, v06583; GFX7-NEXT:    s_mov_b64 s[4:5], 06584; GFX7-NEXT:    v_cvt_f32_f16_e32 v0, v16585; GFX7-NEXT:    s_waitcnt vmcnt(0)6586; GFX7-NEXT:    v_lshrrev_b32_e32 v1, 16, v26587; GFX7-NEXT:    v_cvt_f32_f16_e32 v3, v26588; GFX7-NEXT:    v_cvt_f32_f16_e32 v4, v16589; GFX7-NEXT:    v_cvt_f32_f16_e32 v1, v56590; GFX7-NEXT:    v_mov_b32_e32 v2, s206591; GFX7-NEXT:  .LBB17_1: ; %atomicrmw.start6592; GFX7-NEXT:    ; =>This Inner Loop Header: Depth=16593; GFX7-NEXT:    v_cvt_f16_f32_e32 v4, v46594; GFX7-NEXT:    v_cvt_f16_f32_e32 v3, v36595; GFX7-NEXT:    v_cvt_f32_f16_e32 v5, v46596; GFX7-NEXT:    v_cvt_f32_f16_e32 v6, v36597; GFX7-NEXT:    v_lshlrev_b32_e32 v4, 16, v46598; GFX7-NEXT:    v_min_f32_e32 v5, v5, v06599; GFX7-NEXT:    v_min_f32_e32 v6, v6, v16600; GFX7-NEXT:    v_cvt_f16_f32_e32 v7, v56601; GFX7-NEXT:    v_cvt_f16_f32_e32 v6, v66602; GFX7-NEXT:    v_or_b32_e32 v5, v3, v46603; GFX7-NEXT:    v_lshlrev_b32_e32 v3, 16, v76604; GFX7-NEXT:    v_or_b32_e32 v4, v6, v36605; GFX7-NEXT:    v_mov_b32_e32 v7, v56606; GFX7-NEXT:    v_mov_b32_e32 v6, v46607; GFX7-NEXT:    buffer_atomic_cmpswap v[6:7], v2, s[16:19], 0 offen offset:1024 glc6608; GFX7-NEXT:    s_waitcnt vmcnt(0)6609; GFX7-NEXT:    buffer_wbinvl16610; GFX7-NEXT:    v_lshrrev_b32_e32 v4, 16, v66611; GFX7-NEXT:    v_cvt_f32_f16_e32 v3, v66612; GFX7-NEXT:    v_cvt_f32_f16_e32 v4, v46613; GFX7-NEXT:    v_cmp_eq_u32_e32 vcc, v6, v56614; GFX7-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]6615; GFX7-NEXT:    s_andn2_b64 exec, exec, s[4:5]6616; GFX7-NEXT:    s_cbranch_execnz .LBB17_16617; GFX7-NEXT:  ; %bb.2: ; %atomicrmw.end6618; GFX7-NEXT:    s_or_b64 exec, exec, s[4:5]6619; GFX7-NEXT:    s_setpc_b64 s[30:31]6620;6621; GFX6-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_v2f16__offset__amdgpu_no_fine_grained_memory:6622; GFX6:       ; %bb.0:6623; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6624; GFX6-NEXT:    v_mov_b32_e32 v2, s206625; GFX6-NEXT:    buffer_load_dword v2, v2, s[16:19], 0 offen offset:10246626; GFX6-NEXT:    v_cvt_f16_f32_e32 v1, v16627; GFX6-NEXT:    v_cvt_f16_f32_e32 v5, v06628; GFX6-NEXT:    s_add_i32 s6, s20, 0x4006629; GFX6-NEXT:    s_mov_b64 s[4:5], 06630; GFX6-NEXT:    v_cvt_f32_f16_e32 v0, v16631; GFX6-NEXT:    s_waitcnt vmcnt(0)6632; GFX6-NEXT:    v_lshrrev_b32_e32 v1, 16, v26633; GFX6-NEXT:    v_cvt_f32_f16_e32 v3, v26634; GFX6-NEXT:    v_cvt_f32_f16_e32 v4, v16635; GFX6-NEXT:    v_cvt_f32_f16_e32 v1, v56636; GFX6-NEXT:    v_mov_b32_e32 v2, s66637; GFX6-NEXT:  .LBB17_1: ; %atomicrmw.start6638; GFX6-NEXT:    ; =>This Inner Loop Header: Depth=16639; GFX6-NEXT:    v_cvt_f16_f32_e32 v4, v46640; GFX6-NEXT:    v_cvt_f16_f32_e32 v3, v36641; GFX6-NEXT:    v_cvt_f32_f16_e32 v5, v46642; GFX6-NEXT:    s_waitcnt expcnt(0)6643; GFX6-NEXT:    v_cvt_f32_f16_e32 v6, v36644; GFX6-NEXT:    v_lshlrev_b32_e32 v4, 16, v46645; GFX6-NEXT:    v_min_f32_e32 v5, v5, v06646; GFX6-NEXT:    v_min_f32_e32 v6, v6, v16647; GFX6-NEXT:    v_cvt_f16_f32_e32 v7, v56648; GFX6-NEXT:    v_cvt_f16_f32_e32 v6, v66649; GFX6-NEXT:    v_or_b32_e32 v5, v3, v46650; GFX6-NEXT:    v_lshlrev_b32_e32 v3, 16, v76651; GFX6-NEXT:    v_or_b32_e32 v4, v6, v36652; GFX6-NEXT:    v_mov_b32_e32 v7, v56653; GFX6-NEXT:    v_mov_b32_e32 v6, v46654; GFX6-NEXT:    buffer_atomic_cmpswap v[6:7], v2, s[16:19], 0 offen glc6655; GFX6-NEXT:    s_waitcnt vmcnt(0)6656; GFX6-NEXT:    buffer_wbinvl16657; GFX6-NEXT:    v_lshrrev_b32_e32 v4, 16, v66658; GFX6-NEXT:    v_cvt_f32_f16_e32 v3, v66659; GFX6-NEXT:    v_cvt_f32_f16_e32 v4, v46660; GFX6-NEXT:    v_cmp_eq_u32_e32 vcc, v6, v56661; GFX6-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]6662; GFX6-NEXT:    s_andn2_b64 exec, exec, s[4:5]6663; GFX6-NEXT:    s_cbranch_execnz .LBB17_16664; GFX6-NEXT:  ; %bb.2: ; %atomicrmw.end6665; GFX6-NEXT:    s_or_b64 exec, exec, s[4:5]6666; GFX6-NEXT:    s_waitcnt expcnt(0)6667; GFX6-NEXT:    s_setpc_b64 s[30:31]6668  %gep = getelementptr <2 x half>, ptr addrspace(7) %ptr, i32 2566669  %unused = atomicrmw fmin ptr addrspace(7) %gep, <2 x half> %val syncscope("agent") seq_cst, !amdgpu.no.fine.grained.memory !06670  ret void6671}6672 6673define <2 x half> @buffer_fat_ptr_agent_atomic_fmin_ret_v2f16__offset__waterfall__amdgpu_no_fine_grained_memory(ptr addrspace(7) %ptr, <2 x half> %val) #0 {6674; GFX12-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2f16__offset__waterfall__amdgpu_no_fine_grained_memory:6675; GFX12:       ; %bb.0:6676; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x06677; GFX12-NEXT:    s_wait_expcnt 0x06678; GFX12-NEXT:    s_wait_samplecnt 0x06679; GFX12-NEXT:    s_wait_bvhcnt 0x06680; GFX12-NEXT:    s_wait_kmcnt 0x06681; GFX12-NEXT:    s_mov_b32 s1, exec_lo6682; GFX12-NEXT:  .LBB18_1: ; =>This Inner Loop Header: Depth=16683; GFX12-NEXT:    v_readfirstlane_b32 s4, v06684; GFX12-NEXT:    v_readfirstlane_b32 s5, v16685; GFX12-NEXT:    v_readfirstlane_b32 s6, v26686; GFX12-NEXT:    v_readfirstlane_b32 s7, v36687; GFX12-NEXT:    s_wait_alu depctr_va_sdst(0)6688; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)6689; GFX12-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]6690; GFX12-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]6691; GFX12-NEXT:    s_and_b32 s0, vcc_lo, s06692; GFX12-NEXT:    s_wait_alu depctr_sa_sdst(0)6693; GFX12-NEXT:    s_and_saveexec_b32 s0, s06694; GFX12-NEXT:    s_wait_loadcnt 0x06695; GFX12-NEXT:    buffer_load_b32 v7, v4, s[4:7], null offen offset:10246696; GFX12-NEXT:    s_xor_b32 exec_lo, exec_lo, s06697; GFX12-NEXT:    s_cbranch_execnz .LBB18_16698; GFX12-NEXT:  ; %bb.2:6699; GFX12-NEXT:    s_mov_b32 exec_lo, s16700; GFX12-NEXT:    v_pk_max_num_f16 v8, v5, v56701; GFX12-NEXT:    s_mov_b32 s1, 06702; GFX12-NEXT:  .LBB18_3: ; %atomicrmw.start6703; GFX12-NEXT:    ; =>This Loop Header: Depth=16704; GFX12-NEXT:    ; Child Loop BB18_4 Depth 26705; GFX12-NEXT:    s_wait_loadcnt 0x06706; GFX12-NEXT:    v_pk_max_num_f16 v5, v7, v76707; GFX12-NEXT:    s_mov_b32 s2, exec_lo6708; GFX12-NEXT:    s_wait_storecnt 0x06709; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)6710; GFX12-NEXT:    v_pk_min_num_f16 v6, v5, v86711; GFX12-NEXT:    v_mov_b32_e32 v5, v66712; GFX12-NEXT:    v_mov_b32_e32 v6, v76713; GFX12-NEXT:  .LBB18_4: ; Parent Loop BB18_3 Depth=16714; GFX12-NEXT:    ; => This Inner Loop Header: Depth=26715; GFX12-NEXT:    v_readfirstlane_b32 s4, v06716; GFX12-NEXT:    v_readfirstlane_b32 s5, v16717; GFX12-NEXT:    v_readfirstlane_b32 s6, v26718; GFX12-NEXT:    v_readfirstlane_b32 s7, v36719; GFX12-NEXT:    s_wait_alu depctr_va_sdst(0)6720; GFX12-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)6721; GFX12-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]6722; GFX12-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]6723; GFX12-NEXT:    s_and_b32 s0, vcc_lo, s06724; GFX12-NEXT:    s_wait_alu depctr_sa_sdst(0)6725; GFX12-NEXT:    s_and_saveexec_b32 s0, s06726; GFX12-NEXT:    s_wait_loadcnt 0x06727; GFX12-NEXT:    buffer_atomic_cmpswap_b32 v[5:6], v4, s[4:7], null offen offset:1024 th:TH_ATOMIC_RETURN6728; GFX12-NEXT:    s_xor_b32 exec_lo, exec_lo, s06729; GFX12-NEXT:    s_cbranch_execnz .LBB18_46730; GFX12-NEXT:  ; %bb.5: ; in Loop: Header=BB18_3 Depth=16731; GFX12-NEXT:    s_mov_b32 exec_lo, s26732; GFX12-NEXT:    s_wait_loadcnt 0x06733; GFX12-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v5, v76734; GFX12-NEXT:    v_mov_b32_e32 v7, v56735; GFX12-NEXT:    global_inv scope:SCOPE_DEV6736; GFX12-NEXT:    s_or_b32 s1, vcc_lo, s16737; GFX12-NEXT:    s_wait_alu depctr_sa_sdst(0)6738; GFX12-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s16739; GFX12-NEXT:    s_cbranch_execnz .LBB18_36740; GFX12-NEXT:  ; %bb.6: ; %atomicrmw.end6741; GFX12-NEXT:    s_or_b32 exec_lo, exec_lo, s16742; GFX12-NEXT:    v_mov_b32_e32 v0, v56743; GFX12-NEXT:    s_wait_loadcnt 0x06744; GFX12-NEXT:    s_setpc_b64 s[30:31]6745;6746; GFX942-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2f16__offset__waterfall__amdgpu_no_fine_grained_memory:6747; GFX942:       ; %bb.0:6748; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6749; GFX942-NEXT:    s_mov_b64 s[2:3], exec6750; GFX942-NEXT:  .LBB18_1: ; =>This Inner Loop Header: Depth=16751; GFX942-NEXT:    v_readfirstlane_b32 s4, v06752; GFX942-NEXT:    v_readfirstlane_b32 s5, v16753; GFX942-NEXT:    v_readfirstlane_b32 s6, v26754; GFX942-NEXT:    v_readfirstlane_b32 s7, v36755; GFX942-NEXT:    v_cmp_eq_u64_e32 vcc, s[4:5], v[0:1]6756; GFX942-NEXT:    s_nop 06757; GFX942-NEXT:    v_cmp_eq_u64_e64 s[0:1], s[6:7], v[2:3]6758; GFX942-NEXT:    s_and_b64 s[0:1], vcc, s[0:1]6759; GFX942-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]6760; GFX942-NEXT:    buffer_load_dword v9, v4, s[4:7], 0 offen offset:10246761; GFX942-NEXT:    s_xor_b64 exec, exec, s[0:1]6762; GFX942-NEXT:    s_cbranch_execnz .LBB18_16763; GFX942-NEXT:  ; %bb.2:6764; GFX942-NEXT:    s_mov_b64 exec, s[2:3]6765; GFX942-NEXT:    s_mov_b64 s[2:3], 06766; GFX942-NEXT:    v_pk_max_f16 v5, v5, v56767; GFX942-NEXT:  .LBB18_3: ; %atomicrmw.start6768; GFX942-NEXT:    ; =>This Loop Header: Depth=16769; GFX942-NEXT:    ; Child Loop BB18_4 Depth 26770; GFX942-NEXT:    s_waitcnt vmcnt(0)6771; GFX942-NEXT:    v_pk_max_f16 v6, v9, v96772; GFX942-NEXT:    s_mov_b64 s[8:9], exec6773; GFX942-NEXT:    v_pk_min_f16 v8, v6, v56774; GFX942-NEXT:    buffer_wbl2 sc16775; GFX942-NEXT:    v_mov_b64_e32 v[6:7], v[8:9]6776; GFX942-NEXT:  .LBB18_4: ; Parent Loop BB18_3 Depth=16777; GFX942-NEXT:    ; => This Inner Loop Header: Depth=26778; GFX942-NEXT:    v_readfirstlane_b32 s4, v06779; GFX942-NEXT:    v_readfirstlane_b32 s5, v16780; GFX942-NEXT:    v_readfirstlane_b32 s6, v26781; GFX942-NEXT:    v_readfirstlane_b32 s7, v36782; GFX942-NEXT:    v_cmp_eq_u64_e32 vcc, s[4:5], v[0:1]6783; GFX942-NEXT:    s_nop 06784; GFX942-NEXT:    v_cmp_eq_u64_e64 s[0:1], s[6:7], v[2:3]6785; GFX942-NEXT:    s_and_b64 s[0:1], vcc, s[0:1]6786; GFX942-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]6787; GFX942-NEXT:    s_waitcnt vmcnt(0)6788; GFX942-NEXT:    buffer_atomic_cmpswap v[6:7], v4, s[4:7], 0 offen offset:1024 sc06789; GFX942-NEXT:    s_xor_b64 exec, exec, s[0:1]6790; GFX942-NEXT:    s_cbranch_execnz .LBB18_46791; GFX942-NEXT:  ; %bb.5: ; in Loop: Header=BB18_3 Depth=16792; GFX942-NEXT:    s_mov_b64 exec, s[8:9]6793; GFX942-NEXT:    s_waitcnt vmcnt(0)6794; GFX942-NEXT:    v_cmp_eq_u32_e32 vcc, v6, v96795; GFX942-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]6796; GFX942-NEXT:    v_mov_b32_e32 v9, v66797; GFX942-NEXT:    buffer_inv sc16798; GFX942-NEXT:    s_andn2_b64 exec, exec, s[2:3]6799; GFX942-NEXT:    s_cbranch_execnz .LBB18_36800; GFX942-NEXT:  ; %bb.6: ; %atomicrmw.end6801; GFX942-NEXT:    s_or_b64 exec, exec, s[2:3]6802; GFX942-NEXT:    v_mov_b32_e32 v0, v66803; GFX942-NEXT:    s_setpc_b64 s[30:31]6804;6805; GFX11-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2f16__offset__waterfall__amdgpu_no_fine_grained_memory:6806; GFX11:       ; %bb.0:6807; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6808; GFX11-NEXT:    s_mov_b32 s1, 06809; GFX11-NEXT:    s_mov_b32 s2, exec_lo6810; GFX11-NEXT:  .LBB18_1: ; =>This Inner Loop Header: Depth=16811; GFX11-NEXT:    v_readfirstlane_b32 s4, v06812; GFX11-NEXT:    v_readfirstlane_b32 s5, v16813; GFX11-NEXT:    v_readfirstlane_b32 s6, v26814; GFX11-NEXT:    v_readfirstlane_b32 s7, v36815; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)6816; GFX11-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]6817; GFX11-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]6818; GFX11-NEXT:    s_and_b32 s0, vcc_lo, s06819; GFX11-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)6820; GFX11-NEXT:    s_and_saveexec_b32 s0, s06821; GFX11-NEXT:    buffer_load_b32 v7, v4, s[4:7], 0 offen offset:10246822; GFX11-NEXT:    s_xor_b32 exec_lo, exec_lo, s06823; GFX11-NEXT:    s_cbranch_execnz .LBB18_16824; GFX11-NEXT:  ; %bb.2:6825; GFX11-NEXT:    s_mov_b32 exec_lo, s26826; GFX11-NEXT:    v_pk_max_f16 v8, v5, v56827; GFX11-NEXT:    .p2align 66828; GFX11-NEXT:  .LBB18_3: ; %atomicrmw.start6829; GFX11-NEXT:    ; =>This Loop Header: Depth=16830; GFX11-NEXT:    ; Child Loop BB18_4 Depth 26831; GFX11-NEXT:    s_waitcnt vmcnt(0)6832; GFX11-NEXT:    v_pk_max_f16 v5, v7, v76833; GFX11-NEXT:    s_mov_b32 s2, exec_lo6834; GFX11-NEXT:    s_waitcnt_vscnt null, 0x06835; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)6836; GFX11-NEXT:    v_pk_min_f16 v6, v5, v86837; GFX11-NEXT:    v_mov_b32_e32 v5, v66838; GFX11-NEXT:    v_mov_b32_e32 v6, v76839; GFX11-NEXT:  .LBB18_4: ; Parent Loop BB18_3 Depth=16840; GFX11-NEXT:    ; => This Inner Loop Header: Depth=26841; GFX11-NEXT:    v_readfirstlane_b32 s4, v06842; GFX11-NEXT:    v_readfirstlane_b32 s5, v16843; GFX11-NEXT:    v_readfirstlane_b32 s6, v26844; GFX11-NEXT:    v_readfirstlane_b32 s7, v36845; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)6846; GFX11-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]6847; GFX11-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]6848; GFX11-NEXT:    s_and_b32 s0, vcc_lo, s06849; GFX11-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)6850; GFX11-NEXT:    s_and_saveexec_b32 s0, s06851; GFX11-NEXT:    s_waitcnt vmcnt(0)6852; GFX11-NEXT:    buffer_atomic_cmpswap_b32 v[5:6], v4, s[4:7], 0 offen offset:1024 glc6853; GFX11-NEXT:    s_xor_b32 exec_lo, exec_lo, s06854; GFX11-NEXT:    s_cbranch_execnz .LBB18_46855; GFX11-NEXT:  ; %bb.5: ; in Loop: Header=BB18_3 Depth=16856; GFX11-NEXT:    s_mov_b32 exec_lo, s26857; GFX11-NEXT:    s_waitcnt vmcnt(0)6858; GFX11-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v5, v76859; GFX11-NEXT:    v_mov_b32_e32 v7, v56860; GFX11-NEXT:    buffer_gl1_inv6861; GFX11-NEXT:    buffer_gl0_inv6862; GFX11-NEXT:    s_or_b32 s1, vcc_lo, s16863; GFX11-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)6864; GFX11-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s16865; GFX11-NEXT:    s_cbranch_execnz .LBB18_36866; GFX11-NEXT:  ; %bb.6: ; %atomicrmw.end6867; GFX11-NEXT:    s_or_b32 exec_lo, exec_lo, s16868; GFX11-NEXT:    v_mov_b32_e32 v0, v56869; GFX11-NEXT:    s_setpc_b64 s[30:31]6870;6871; GFX10-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2f16__offset__waterfall__amdgpu_no_fine_grained_memory:6872; GFX10:       ; %bb.0:6873; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6874; GFX10-NEXT:    s_mov_b32 s5, 06875; GFX10-NEXT:    s_mov_b32 s6, exec_lo6876; GFX10-NEXT:  .LBB18_1: ; =>This Inner Loop Header: Depth=16877; GFX10-NEXT:    v_readfirstlane_b32 s8, v06878; GFX10-NEXT:    v_readfirstlane_b32 s9, v16879; GFX10-NEXT:    v_readfirstlane_b32 s10, v26880; GFX10-NEXT:    v_readfirstlane_b32 s11, v36881; GFX10-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[8:9], v[0:1]6882; GFX10-NEXT:    v_cmp_eq_u64_e64 s4, s[10:11], v[2:3]6883; GFX10-NEXT:    s_and_b32 s4, vcc_lo, s46884; GFX10-NEXT:    s_and_saveexec_b32 s4, s46885; GFX10-NEXT:    buffer_load_dword v7, v4, s[8:11], 0 offen offset:10246886; GFX10-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)6887; GFX10-NEXT:    s_xor_b32 exec_lo, exec_lo, s46888; GFX10-NEXT:    s_cbranch_execnz .LBB18_16889; GFX10-NEXT:  ; %bb.2:6890; GFX10-NEXT:    s_mov_b32 exec_lo, s66891; GFX10-NEXT:    v_pk_max_f16 v8, v5, v56892; GFX10-NEXT:  .LBB18_3: ; %atomicrmw.start6893; GFX10-NEXT:    ; =>This Loop Header: Depth=16894; GFX10-NEXT:    ; Child Loop BB18_4 Depth 26895; GFX10-NEXT:    s_waitcnt vmcnt(0)6896; GFX10-NEXT:    v_pk_max_f16 v5, v7, v76897; GFX10-NEXT:    s_mov_b32 s6, exec_lo6898; GFX10-NEXT:    s_waitcnt_vscnt null, 0x06899; GFX10-NEXT:    v_pk_min_f16 v6, v5, v86900; GFX10-NEXT:    v_mov_b32_e32 v5, v66901; GFX10-NEXT:    v_mov_b32_e32 v6, v76902; GFX10-NEXT:  .LBB18_4: ; Parent Loop BB18_3 Depth=16903; GFX10-NEXT:    ; => This Inner Loop Header: Depth=26904; GFX10-NEXT:    v_readfirstlane_b32 s8, v06905; GFX10-NEXT:    v_readfirstlane_b32 s9, v16906; GFX10-NEXT:    v_readfirstlane_b32 s10, v26907; GFX10-NEXT:    v_readfirstlane_b32 s11, v36908; GFX10-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[8:9], v[0:1]6909; GFX10-NEXT:    v_cmp_eq_u64_e64 s4, s[10:11], v[2:3]6910; GFX10-NEXT:    s_and_b32 s4, vcc_lo, s46911; GFX10-NEXT:    s_and_saveexec_b32 s4, s46912; GFX10-NEXT:    s_waitcnt vmcnt(0)6913; GFX10-NEXT:    buffer_atomic_cmpswap v[5:6], v4, s[8:11], 0 offen offset:1024 glc6914; GFX10-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)6915; GFX10-NEXT:    s_xor_b32 exec_lo, exec_lo, s46916; GFX10-NEXT:    s_cbranch_execnz .LBB18_46917; GFX10-NEXT:  ; %bb.5: ; in Loop: Header=BB18_3 Depth=16918; GFX10-NEXT:    s_mov_b32 exec_lo, s66919; GFX10-NEXT:    s_waitcnt vmcnt(0)6920; GFX10-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v5, v76921; GFX10-NEXT:    v_mov_b32_e32 v7, v56922; GFX10-NEXT:    buffer_gl1_inv6923; GFX10-NEXT:    buffer_gl0_inv6924; GFX10-NEXT:    s_or_b32 s5, vcc_lo, s56925; GFX10-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)6926; GFX10-NEXT:    s_andn2_b32 exec_lo, exec_lo, s56927; GFX10-NEXT:    s_cbranch_execnz .LBB18_36928; GFX10-NEXT:  ; %bb.6: ; %atomicrmw.end6929; GFX10-NEXT:    s_or_b32 exec_lo, exec_lo, s56930; GFX10-NEXT:    v_mov_b32_e32 v0, v56931; GFX10-NEXT:    s_setpc_b64 s[30:31]6932;6933; GFX90A-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2f16__offset__waterfall__amdgpu_no_fine_grained_memory:6934; GFX90A:       ; %bb.0:6935; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6936; GFX90A-NEXT:    s_mov_b64 s[6:7], exec6937; GFX90A-NEXT:  .LBB18_1: ; =>This Inner Loop Header: Depth=16938; GFX90A-NEXT:    v_readfirstlane_b32 s8, v06939; GFX90A-NEXT:    v_readfirstlane_b32 s9, v16940; GFX90A-NEXT:    v_readfirstlane_b32 s10, v26941; GFX90A-NEXT:    v_readfirstlane_b32 s11, v36942; GFX90A-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]6943; GFX90A-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]6944; GFX90A-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]6945; GFX90A-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]6946; GFX90A-NEXT:    s_nop 06947; GFX90A-NEXT:    buffer_load_dword v9, v4, s[8:11], 0 offen offset:10246948; GFX90A-NEXT:    s_xor_b64 exec, exec, s[4:5]6949; GFX90A-NEXT:    s_cbranch_execnz .LBB18_16950; GFX90A-NEXT:  ; %bb.2:6951; GFX90A-NEXT:    s_mov_b64 exec, s[6:7]6952; GFX90A-NEXT:    s_mov_b64 s[6:7], 06953; GFX90A-NEXT:    v_pk_max_f16 v5, v5, v56954; GFX90A-NEXT:  .LBB18_3: ; %atomicrmw.start6955; GFX90A-NEXT:    ; =>This Loop Header: Depth=16956; GFX90A-NEXT:    ; Child Loop BB18_4 Depth 26957; GFX90A-NEXT:    s_waitcnt vmcnt(0)6958; GFX90A-NEXT:    v_pk_max_f16 v6, v9, v96959; GFX90A-NEXT:    v_pk_min_f16 v8, v6, v56960; GFX90A-NEXT:    s_mov_b64 s[12:13], exec6961; GFX90A-NEXT:    v_pk_mov_b32 v[6:7], v[8:9], v[8:9] op_sel:[0,1]6962; GFX90A-NEXT:  .LBB18_4: ; Parent Loop BB18_3 Depth=16963; GFX90A-NEXT:    ; => This Inner Loop Header: Depth=26964; GFX90A-NEXT:    v_readfirstlane_b32 s8, v06965; GFX90A-NEXT:    v_readfirstlane_b32 s9, v16966; GFX90A-NEXT:    v_readfirstlane_b32 s10, v26967; GFX90A-NEXT:    v_readfirstlane_b32 s11, v36968; GFX90A-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]6969; GFX90A-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]6970; GFX90A-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]6971; GFX90A-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]6972; GFX90A-NEXT:    s_waitcnt vmcnt(0)6973; GFX90A-NEXT:    buffer_atomic_cmpswap v[6:7], v4, s[8:11], 0 offen offset:1024 glc6974; GFX90A-NEXT:    s_xor_b64 exec, exec, s[4:5]6975; GFX90A-NEXT:    s_cbranch_execnz .LBB18_46976; GFX90A-NEXT:  ; %bb.5: ; in Loop: Header=BB18_3 Depth=16977; GFX90A-NEXT:    s_mov_b64 exec, s[12:13]6978; GFX90A-NEXT:    s_waitcnt vmcnt(0)6979; GFX90A-NEXT:    v_cmp_eq_u32_e32 vcc, v6, v96980; GFX90A-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]6981; GFX90A-NEXT:    v_mov_b32_e32 v9, v66982; GFX90A-NEXT:    buffer_wbinvl16983; GFX90A-NEXT:    s_andn2_b64 exec, exec, s[6:7]6984; GFX90A-NEXT:    s_cbranch_execnz .LBB18_36985; GFX90A-NEXT:  ; %bb.6: ; %atomicrmw.end6986; GFX90A-NEXT:    s_or_b64 exec, exec, s[6:7]6987; GFX90A-NEXT:    v_mov_b32_e32 v0, v66988; GFX90A-NEXT:    s_setpc_b64 s[30:31]6989;6990; GFX908-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2f16__offset__waterfall__amdgpu_no_fine_grained_memory:6991; GFX908:       ; %bb.0:6992; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6993; GFX908-NEXT:    s_mov_b64 s[6:7], exec6994; GFX908-NEXT:  .LBB18_1: ; =>This Inner Loop Header: Depth=16995; GFX908-NEXT:    v_readfirstlane_b32 s8, v06996; GFX908-NEXT:    v_readfirstlane_b32 s9, v16997; GFX908-NEXT:    v_readfirstlane_b32 s10, v26998; GFX908-NEXT:    v_readfirstlane_b32 s11, v36999; GFX908-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]7000; GFX908-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]7001; GFX908-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]7002; GFX908-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]7003; GFX908-NEXT:    s_nop 07004; GFX908-NEXT:    buffer_load_dword v7, v4, s[8:11], 0 offen offset:10247005; GFX908-NEXT:    s_xor_b64 exec, exec, s[4:5]7006; GFX908-NEXT:    s_cbranch_execnz .LBB18_17007; GFX908-NEXT:  ; %bb.2:7008; GFX908-NEXT:    s_mov_b64 exec, s[6:7]7009; GFX908-NEXT:    s_mov_b64 s[6:7], 07010; GFX908-NEXT:    v_pk_max_f16 v8, v5, v57011; GFX908-NEXT:  .LBB18_3: ; %atomicrmw.start7012; GFX908-NEXT:    ; =>This Loop Header: Depth=17013; GFX908-NEXT:    ; Child Loop BB18_4 Depth 27014; GFX908-NEXT:    s_waitcnt vmcnt(0)7015; GFX908-NEXT:    v_pk_max_f16 v5, v7, v77016; GFX908-NEXT:    v_pk_min_f16 v6, v5, v87017; GFX908-NEXT:    v_mov_b32_e32 v5, v67018; GFX908-NEXT:    s_mov_b64 s[12:13], exec7019; GFX908-NEXT:    v_mov_b32_e32 v6, v77020; GFX908-NEXT:  .LBB18_4: ; Parent Loop BB18_3 Depth=17021; GFX908-NEXT:    ; => This Inner Loop Header: Depth=27022; GFX908-NEXT:    v_readfirstlane_b32 s8, v07023; GFX908-NEXT:    v_readfirstlane_b32 s9, v17024; GFX908-NEXT:    v_readfirstlane_b32 s10, v27025; GFX908-NEXT:    v_readfirstlane_b32 s11, v37026; GFX908-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]7027; GFX908-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]7028; GFX908-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]7029; GFX908-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]7030; GFX908-NEXT:    s_waitcnt vmcnt(0)7031; GFX908-NEXT:    buffer_atomic_cmpswap v[5:6], v4, s[8:11], 0 offen offset:1024 glc7032; GFX908-NEXT:    s_xor_b64 exec, exec, s[4:5]7033; GFX908-NEXT:    s_cbranch_execnz .LBB18_47034; GFX908-NEXT:  ; %bb.5: ; in Loop: Header=BB18_3 Depth=17035; GFX908-NEXT:    s_mov_b64 exec, s[12:13]7036; GFX908-NEXT:    s_waitcnt vmcnt(0)7037; GFX908-NEXT:    v_cmp_eq_u32_e32 vcc, v5, v77038; GFX908-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]7039; GFX908-NEXT:    v_mov_b32_e32 v7, v57040; GFX908-NEXT:    buffer_wbinvl17041; GFX908-NEXT:    s_andn2_b64 exec, exec, s[6:7]7042; GFX908-NEXT:    s_cbranch_execnz .LBB18_37043; GFX908-NEXT:  ; %bb.6: ; %atomicrmw.end7044; GFX908-NEXT:    s_or_b64 exec, exec, s[6:7]7045; GFX908-NEXT:    v_mov_b32_e32 v0, v57046; GFX908-NEXT:    s_setpc_b64 s[30:31]7047;7048; GFX8-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2f16__offset__waterfall__amdgpu_no_fine_grained_memory:7049; GFX8:       ; %bb.0:7050; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7051; GFX8-NEXT:    s_mov_b64 s[6:7], exec7052; GFX8-NEXT:  .LBB18_1: ; =>This Inner Loop Header: Depth=17053; GFX8-NEXT:    v_readfirstlane_b32 s8, v07054; GFX8-NEXT:    v_readfirstlane_b32 s9, v17055; GFX8-NEXT:    v_readfirstlane_b32 s10, v27056; GFX8-NEXT:    v_readfirstlane_b32 s11, v37057; GFX8-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]7058; GFX8-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]7059; GFX8-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]7060; GFX8-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]7061; GFX8-NEXT:    s_nop 07062; GFX8-NEXT:    buffer_load_dword v7, v4, s[8:11], 0 offen offset:10247063; GFX8-NEXT:    s_xor_b64 exec, exec, s[4:5]7064; GFX8-NEXT:    s_cbranch_execnz .LBB18_17065; GFX8-NEXT:  ; %bb.2:7066; GFX8-NEXT:    s_mov_b64 exec, s[6:7]7067; GFX8-NEXT:    s_mov_b64 s[6:7], 07068; GFX8-NEXT:    v_max_f16_sdwa v8, v5, v5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_17069; GFX8-NEXT:    v_max_f16_e32 v9, v5, v57070; GFX8-NEXT:  .LBB18_3: ; %atomicrmw.start7071; GFX8-NEXT:    ; =>This Loop Header: Depth=17072; GFX8-NEXT:    ; Child Loop BB18_4 Depth 27073; GFX8-NEXT:    s_waitcnt vmcnt(0)7074; GFX8-NEXT:    v_max_f16_sdwa v5, v7, v7 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_17075; GFX8-NEXT:    v_max_f16_e32 v6, v7, v77076; GFX8-NEXT:    v_min_f16_sdwa v5, v5, v8 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD7077; GFX8-NEXT:    v_min_f16_e32 v6, v6, v97078; GFX8-NEXT:    v_or_b32_e32 v6, v6, v57079; GFX8-NEXT:    v_mov_b32_e32 v5, v67080; GFX8-NEXT:    s_mov_b64 s[12:13], exec7081; GFX8-NEXT:    v_mov_b32_e32 v6, v77082; GFX8-NEXT:  .LBB18_4: ; Parent Loop BB18_3 Depth=17083; GFX8-NEXT:    ; => This Inner Loop Header: Depth=27084; GFX8-NEXT:    v_readfirstlane_b32 s8, v07085; GFX8-NEXT:    v_readfirstlane_b32 s9, v17086; GFX8-NEXT:    v_readfirstlane_b32 s10, v27087; GFX8-NEXT:    v_readfirstlane_b32 s11, v37088; GFX8-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]7089; GFX8-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]7090; GFX8-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]7091; GFX8-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]7092; GFX8-NEXT:    s_waitcnt vmcnt(0)7093; GFX8-NEXT:    buffer_atomic_cmpswap v[5:6], v4, s[8:11], 0 offen offset:1024 glc7094; GFX8-NEXT:    s_xor_b64 exec, exec, s[4:5]7095; GFX8-NEXT:    s_cbranch_execnz .LBB18_47096; GFX8-NEXT:  ; %bb.5: ; in Loop: Header=BB18_3 Depth=17097; GFX8-NEXT:    s_mov_b64 exec, s[12:13]7098; GFX8-NEXT:    s_waitcnt vmcnt(0)7099; GFX8-NEXT:    v_cmp_eq_u32_e32 vcc, v5, v77100; GFX8-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]7101; GFX8-NEXT:    v_mov_b32_e32 v7, v57102; GFX8-NEXT:    buffer_wbinvl17103; GFX8-NEXT:    s_andn2_b64 exec, exec, s[6:7]7104; GFX8-NEXT:    s_cbranch_execnz .LBB18_37105; GFX8-NEXT:  ; %bb.6: ; %atomicrmw.end7106; GFX8-NEXT:    s_or_b64 exec, exec, s[6:7]7107; GFX8-NEXT:    v_mov_b32_e32 v0, v57108; GFX8-NEXT:    s_setpc_b64 s[30:31]7109;7110; GFX7-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2f16__offset__waterfall__amdgpu_no_fine_grained_memory:7111; GFX7:       ; %bb.0:7112; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7113; GFX7-NEXT:    s_mov_b64 s[6:7], exec7114; GFX7-NEXT:  .LBB18_1: ; =>This Inner Loop Header: Depth=17115; GFX7-NEXT:    v_readfirstlane_b32 s8, v07116; GFX7-NEXT:    v_readfirstlane_b32 s9, v17117; GFX7-NEXT:    v_readfirstlane_b32 s10, v27118; GFX7-NEXT:    v_readfirstlane_b32 s11, v37119; GFX7-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]7120; GFX7-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]7121; GFX7-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]7122; GFX7-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]7123; GFX7-NEXT:    buffer_load_dword v8, v4, s[8:11], 0 offen offset:10247124; GFX7-NEXT:    s_xor_b64 exec, exec, s[4:5]7125; GFX7-NEXT:    s_cbranch_execnz .LBB18_17126; GFX7-NEXT:  ; %bb.2:7127; GFX7-NEXT:    s_mov_b64 exec, s[6:7]7128; GFX7-NEXT:    v_cvt_f16_f32_e32 v6, v67129; GFX7-NEXT:    v_cvt_f16_f32_e32 v9, v57130; GFX7-NEXT:    s_waitcnt vmcnt(0)7131; GFX7-NEXT:    v_lshrrev_b32_e32 v5, 16, v87132; GFX7-NEXT:    v_cvt_f32_f16_e32 v7, v87133; GFX7-NEXT:    v_cvt_f32_f16_e32 v5, v57134; GFX7-NEXT:    v_cvt_f32_f16_e32 v10, v67135; GFX7-NEXT:    v_cvt_f32_f16_e32 v11, v97136; GFX7-NEXT:    s_mov_b64 s[6:7], 07137; GFX7-NEXT:  .LBB18_3: ; %atomicrmw.start7138; GFX7-NEXT:    ; =>This Loop Header: Depth=17139; GFX7-NEXT:    ; Child Loop BB18_4 Depth 27140; GFX7-NEXT:    v_cvt_f16_f32_e32 v5, v57141; GFX7-NEXT:    v_cvt_f16_f32_e32 v6, v77142; GFX7-NEXT:    s_mov_b64 s[12:13], exec7143; GFX7-NEXT:    v_cvt_f32_f16_e32 v7, v57144; GFX7-NEXT:    v_cvt_f32_f16_e32 v8, v67145; GFX7-NEXT:    v_lshlrev_b32_e32 v5, 16, v57146; GFX7-NEXT:    v_or_b32_e32 v6, v6, v57147; GFX7-NEXT:    v_min_f32_e32 v7, v7, v107148; GFX7-NEXT:    v_min_f32_e32 v8, v8, v117149; GFX7-NEXT:    v_cvt_f16_f32_e32 v7, v77150; GFX7-NEXT:    v_cvt_f16_f32_e32 v8, v87151; GFX7-NEXT:    v_lshlrev_b32_e32 v5, 16, v77152; GFX7-NEXT:    v_or_b32_e32 v5, v8, v57153; GFX7-NEXT:    v_mov_b32_e32 v9, v67154; GFX7-NEXT:    v_mov_b32_e32 v8, v57155; GFX7-NEXT:  .LBB18_4: ; Parent Loop BB18_3 Depth=17156; GFX7-NEXT:    ; => This Inner Loop Header: Depth=27157; GFX7-NEXT:    v_readfirstlane_b32 s8, v07158; GFX7-NEXT:    v_readfirstlane_b32 s9, v17159; GFX7-NEXT:    v_readfirstlane_b32 s10, v27160; GFX7-NEXT:    v_readfirstlane_b32 s11, v37161; GFX7-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]7162; GFX7-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]7163; GFX7-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]7164; GFX7-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]7165; GFX7-NEXT:    s_waitcnt vmcnt(0)7166; GFX7-NEXT:    buffer_atomic_cmpswap v[8:9], v4, s[8:11], 0 offen offset:1024 glc7167; GFX7-NEXT:    s_xor_b64 exec, exec, s[4:5]7168; GFX7-NEXT:    s_cbranch_execnz .LBB18_47169; GFX7-NEXT:  ; %bb.5: ; in Loop: Header=BB18_3 Depth=17170; GFX7-NEXT:    s_mov_b64 exec, s[12:13]7171; GFX7-NEXT:    s_waitcnt vmcnt(0)7172; GFX7-NEXT:    v_lshrrev_b32_e32 v5, 16, v87173; GFX7-NEXT:    v_cvt_f32_f16_e32 v7, v87174; GFX7-NEXT:    v_cvt_f32_f16_e32 v5, v57175; GFX7-NEXT:    v_cmp_eq_u32_e32 vcc, v8, v67176; GFX7-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]7177; GFX7-NEXT:    buffer_wbinvl17178; GFX7-NEXT:    s_andn2_b64 exec, exec, s[6:7]7179; GFX7-NEXT:    s_cbranch_execnz .LBB18_37180; GFX7-NEXT:  ; %bb.6: ; %atomicrmw.end7181; GFX7-NEXT:    s_or_b64 exec, exec, s[6:7]7182; GFX7-NEXT:    v_mov_b32_e32 v0, v77183; GFX7-NEXT:    v_mov_b32_e32 v1, v57184; GFX7-NEXT:    s_setpc_b64 s[30:31]7185;7186; GFX6-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2f16__offset__waterfall__amdgpu_no_fine_grained_memory:7187; GFX6:       ; %bb.0:7188; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7189; GFX6-NEXT:    v_add_i32_e32 v9, vcc, 0x400, v47190; GFX6-NEXT:    s_mov_b64 s[6:7], exec7191; GFX6-NEXT:  .LBB18_1: ; =>This Inner Loop Header: Depth=17192; GFX6-NEXT:    v_readfirstlane_b32 s8, v07193; GFX6-NEXT:    v_readfirstlane_b32 s9, v17194; GFX6-NEXT:    v_readfirstlane_b32 s10, v27195; GFX6-NEXT:    v_readfirstlane_b32 s11, v37196; GFX6-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]7197; GFX6-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]7198; GFX6-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]7199; GFX6-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]7200; GFX6-NEXT:    buffer_load_dword v7, v4, s[8:11], 0 offen offset:10247201; GFX6-NEXT:    ; implicit-def: $vgpr47202; GFX6-NEXT:    s_xor_b64 exec, exec, s[4:5]7203; GFX6-NEXT:    s_cbranch_execnz .LBB18_17204; GFX6-NEXT:  ; %bb.2:7205; GFX6-NEXT:    s_mov_b64 exec, s[6:7]7206; GFX6-NEXT:    v_cvt_f16_f32_e32 v6, v67207; GFX6-NEXT:    v_cvt_f16_f32_e32 v8, v57208; GFX6-NEXT:    s_waitcnt vmcnt(0)7209; GFX6-NEXT:    v_lshrrev_b32_e32 v5, 16, v77210; GFX6-NEXT:    v_cvt_f32_f16_e32 v4, v77211; GFX6-NEXT:    v_cvt_f32_f16_e32 v5, v57212; GFX6-NEXT:    v_cvt_f32_f16_e32 v10, v67213; GFX6-NEXT:    v_cvt_f32_f16_e32 v11, v87214; GFX6-NEXT:    s_mov_b64 s[6:7], 07215; GFX6-NEXT:  .LBB18_3: ; %atomicrmw.start7216; GFX6-NEXT:    ; =>This Loop Header: Depth=17217; GFX6-NEXT:    ; Child Loop BB18_4 Depth 27218; GFX6-NEXT:    v_cvt_f16_f32_e32 v5, v57219; GFX6-NEXT:    v_cvt_f16_f32_e32 v4, v47220; GFX6-NEXT:    s_mov_b64 s[12:13], exec7221; GFX6-NEXT:    v_cvt_f32_f16_e32 v6, v57222; GFX6-NEXT:    s_waitcnt expcnt(0)7223; GFX6-NEXT:    v_cvt_f32_f16_e32 v7, v47224; GFX6-NEXT:    v_lshlrev_b32_e32 v5, 16, v57225; GFX6-NEXT:    v_min_f32_e32 v6, v6, v107226; GFX6-NEXT:    v_min_f32_e32 v7, v7, v117227; GFX6-NEXT:    v_cvt_f16_f32_e32 v8, v67228; GFX6-NEXT:    v_cvt_f16_f32_e32 v7, v77229; GFX6-NEXT:    v_or_b32_e32 v6, v4, v57230; GFX6-NEXT:    v_lshlrev_b32_e32 v4, 16, v87231; GFX6-NEXT:    v_or_b32_e32 v5, v7, v47232; GFX6-NEXT:    v_mov_b32_e32 v8, v67233; GFX6-NEXT:    v_mov_b32_e32 v7, v57234; GFX6-NEXT:  .LBB18_4: ; Parent Loop BB18_3 Depth=17235; GFX6-NEXT:    ; => This Inner Loop Header: Depth=27236; GFX6-NEXT:    v_readfirstlane_b32 s8, v07237; GFX6-NEXT:    v_readfirstlane_b32 s9, v17238; GFX6-NEXT:    v_readfirstlane_b32 s10, v27239; GFX6-NEXT:    v_readfirstlane_b32 s11, v37240; GFX6-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]7241; GFX6-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]7242; GFX6-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]7243; GFX6-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]7244; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0)7245; GFX6-NEXT:    buffer_atomic_cmpswap v[7:8], v9, s[8:11], 0 offen glc7246; GFX6-NEXT:    s_xor_b64 exec, exec, s[4:5]7247; GFX6-NEXT:    s_cbranch_execnz .LBB18_47248; GFX6-NEXT:  ; %bb.5: ; in Loop: Header=BB18_3 Depth=17249; GFX6-NEXT:    s_mov_b64 exec, s[12:13]7250; GFX6-NEXT:    s_waitcnt vmcnt(0)7251; GFX6-NEXT:    v_lshrrev_b32_e32 v5, 16, v77252; GFX6-NEXT:    v_cvt_f32_f16_e32 v4, v77253; GFX6-NEXT:    v_cvt_f32_f16_e32 v5, v57254; GFX6-NEXT:    v_cmp_eq_u32_e32 vcc, v7, v67255; GFX6-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]7256; GFX6-NEXT:    buffer_wbinvl17257; GFX6-NEXT:    s_andn2_b64 exec, exec, s[6:7]7258; GFX6-NEXT:    s_cbranch_execnz .LBB18_37259; GFX6-NEXT:  ; %bb.6: ; %atomicrmw.end7260; GFX6-NEXT:    s_or_b64 exec, exec, s[6:7]7261; GFX6-NEXT:    v_mov_b32_e32 v0, v47262; GFX6-NEXT:    v_mov_b32_e32 v1, v57263; GFX6-NEXT:    s_waitcnt expcnt(0)7264; GFX6-NEXT:    s_setpc_b64 s[30:31]7265  %gep = getelementptr <2 x half>, ptr addrspace(7) %ptr, i32 2567266  %result = atomicrmw fmin ptr addrspace(7) %gep, <2 x half> %val syncscope("agent") seq_cst, !amdgpu.no.fine.grained.memory !07267  ret <2 x half> %result7268}7269 7270; --------------------------------------------------------------------7271; <2 x bfloat>7272; --------------------------------------------------------------------7273 7274define <2 x bfloat> @buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__amdgpu_no_fine_grained_memory(ptr addrspace(7) inreg %ptr, <2 x bfloat> %val) #0 {7275; GFX12-TRUE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__amdgpu_no_fine_grained_memory:7276; GFX12-TRUE16:       ; %bb.0:7277; GFX12-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x07278; GFX12-TRUE16-NEXT:    s_wait_expcnt 0x07279; GFX12-TRUE16-NEXT:    s_wait_samplecnt 0x07280; GFX12-TRUE16-NEXT:    s_wait_bvhcnt 0x07281; GFX12-TRUE16-NEXT:    s_wait_kmcnt 0x07282; GFX12-TRUE16-NEXT:    v_dual_mov_b32 v1, v0 :: v_dual_mov_b32 v0, s167283; GFX12-TRUE16-NEXT:    s_mov_b32 s4, 07284; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)7285; GFX12-TRUE16-NEXT:    v_dual_mov_b32 v4, s16 :: v_dual_lshlrev_b32 v3, 16, v17286; GFX12-TRUE16-NEXT:    buffer_load_b32 v0, v0, s[0:3], null offen offset:10247287; GFX12-TRUE16-NEXT:    v_and_b32_e32 v2, 0xffff0000, v17288; GFX12-TRUE16-NEXT:  .LBB19_1: ; %atomicrmw.start7289; GFX12-TRUE16-NEXT:    ; =>This Inner Loop Header: Depth=17290; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x07291; GFX12-TRUE16-NEXT:    v_mov_b32_e32 v6, v07292; GFX12-TRUE16-NEXT:    s_wait_storecnt 0x07293; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)7294; GFX12-TRUE16-NEXT:    v_and_b32_e32 v1, 0xffff0000, v67295; GFX12-TRUE16-NEXT:    v_min_num_f32_e32 v1, v1, v27296; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)7297; GFX12-TRUE16-NEXT:    v_bfe_u32 v7, v1, 16, 17298; GFX12-TRUE16-NEXT:    v_or_b32_e32 v9, 0x400000, v17299; GFX12-TRUE16-NEXT:    v_add3_u32 v7, v7, v1, 0x7fff7300; GFX12-TRUE16-NEXT:    v_lshlrev_b32_e32 v0, 16, v67301; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)7302; GFX12-TRUE16-NEXT:    v_min_num_f32_e32 v0, v0, v37303; GFX12-TRUE16-NEXT:    v_bfe_u32 v5, v0, 16, 17304; GFX12-TRUE16-NEXT:    v_or_b32_e32 v8, 0x400000, v07305; GFX12-TRUE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v0, v07306; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(SKIP_1) | instid1(VALU_DEP_1)7307; GFX12-TRUE16-NEXT:    v_add3_u32 v5, v5, v0, 0x7fff7308; GFX12-TRUE16-NEXT:    s_wait_alu depctr_va_vcc(0)7309; GFX12-TRUE16-NEXT:    v_cndmask_b32_e32 v0, v5, v8, vcc_lo7310; GFX12-TRUE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v1, v17311; GFX12-TRUE16-NEXT:    s_wait_alu depctr_va_vcc(0)7312; GFX12-TRUE16-NEXT:    v_cndmask_b32_e32 v5, v7, v9, vcc_lo7313; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)7314; GFX12-TRUE16-NEXT:    v_mov_b16_e32 v5.l, v0.h7315; GFX12-TRUE16-NEXT:    v_dual_mov_b32 v0, v5 :: v_dual_mov_b32 v1, v67316; GFX12-TRUE16-NEXT:    buffer_atomic_cmpswap_b32 v[0:1], v4, s[0:3], null offen offset:1024 th:TH_ATOMIC_RETURN7317; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x07318; GFX12-TRUE16-NEXT:    global_inv scope:SCOPE_DEV7319; GFX12-TRUE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v0, v67320; GFX12-TRUE16-NEXT:    s_or_b32 s4, vcc_lo, s47321; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)7322; GFX12-TRUE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s47323; GFX12-TRUE16-NEXT:    s_cbranch_execnz .LBB19_17324; GFX12-TRUE16-NEXT:  ; %bb.2: ; %atomicrmw.end7325; GFX12-TRUE16-NEXT:    s_or_b32 exec_lo, exec_lo, s47326; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x07327; GFX12-TRUE16-NEXT:    s_setpc_b64 s[30:31]7328;7329; GFX12-FAKE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__amdgpu_no_fine_grained_memory:7330; GFX12-FAKE16:       ; %bb.0:7331; GFX12-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x07332; GFX12-FAKE16-NEXT:    s_wait_expcnt 0x07333; GFX12-FAKE16-NEXT:    s_wait_samplecnt 0x07334; GFX12-FAKE16-NEXT:    s_wait_bvhcnt 0x07335; GFX12-FAKE16-NEXT:    s_wait_kmcnt 0x07336; GFX12-FAKE16-NEXT:    v_dual_mov_b32 v1, v0 :: v_dual_mov_b32 v0, s167337; GFX12-FAKE16-NEXT:    s_mov_b32 s5, 07338; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)7339; GFX12-FAKE16-NEXT:    v_dual_mov_b32 v4, s16 :: v_dual_and_b32 v3, 0xffff0000, v17340; GFX12-FAKE16-NEXT:    buffer_load_b32 v0, v0, s[0:3], null offen offset:10247341; GFX12-FAKE16-NEXT:    v_lshlrev_b32_e32 v2, 16, v17342; GFX12-FAKE16-NEXT:  .LBB19_1: ; %atomicrmw.start7343; GFX12-FAKE16-NEXT:    ; =>This Inner Loop Header: Depth=17344; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x07345; GFX12-FAKE16-NEXT:    v_mov_b32_e32 v6, v07346; GFX12-FAKE16-NEXT:    s_wait_storecnt 0x07347; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)7348; GFX12-FAKE16-NEXT:    v_and_b32_e32 v1, 0xffff0000, v67349; GFX12-FAKE16-NEXT:    v_min_num_f32_e32 v1, v1, v37350; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_3)7351; GFX12-FAKE16-NEXT:    v_bfe_u32 v7, v1, 16, 17352; GFX12-FAKE16-NEXT:    v_or_b32_e32 v9, 0x400000, v17353; GFX12-FAKE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v1, v17354; GFX12-FAKE16-NEXT:    v_add3_u32 v7, v7, v1, 0x7fff7355; GFX12-FAKE16-NEXT:    s_wait_alu depctr_va_vcc(0)7356; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)7357; GFX12-FAKE16-NEXT:    v_dual_cndmask_b32 v1, v7, v9 :: v_dual_lshlrev_b32 v0, 16, v67358; GFX12-FAKE16-NEXT:    v_min_num_f32_e32 v0, v0, v27359; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_3)7360; GFX12-FAKE16-NEXT:    v_bfe_u32 v5, v0, 16, 17361; GFX12-FAKE16-NEXT:    v_or_b32_e32 v8, 0x400000, v07362; GFX12-FAKE16-NEXT:    v_cmp_u_f32_e64 s4, v0, v07363; GFX12-FAKE16-NEXT:    v_add3_u32 v5, v5, v0, 0x7fff7364; GFX12-FAKE16-NEXT:    s_wait_alu depctr_va_sdst(0)7365; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)7366; GFX12-FAKE16-NEXT:    v_cndmask_b32_e64 v0, v5, v8, s47367; GFX12-FAKE16-NEXT:    v_perm_b32 v5, v1, v0, 0x70603027368; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)7369; GFX12-FAKE16-NEXT:    v_dual_mov_b32 v0, v5 :: v_dual_mov_b32 v1, v67370; GFX12-FAKE16-NEXT:    buffer_atomic_cmpswap_b32 v[0:1], v4, s[0:3], null offen offset:1024 th:TH_ATOMIC_RETURN7371; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x07372; GFX12-FAKE16-NEXT:    global_inv scope:SCOPE_DEV7373; GFX12-FAKE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v0, v67374; GFX12-FAKE16-NEXT:    s_or_b32 s5, vcc_lo, s57375; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)7376; GFX12-FAKE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s57377; GFX12-FAKE16-NEXT:    s_cbranch_execnz .LBB19_17378; GFX12-FAKE16-NEXT:  ; %bb.2: ; %atomicrmw.end7379; GFX12-FAKE16-NEXT:    s_or_b32 exec_lo, exec_lo, s57380; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x07381; GFX12-FAKE16-NEXT:    s_setpc_b64 s[30:31]7382;7383; GFX942-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__amdgpu_no_fine_grained_memory:7384; GFX942:       ; %bb.0:7385; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7386; GFX942-NEXT:    v_mov_b32_e32 v1, v07387; GFX942-NEXT:    v_mov_b32_e32 v0, s167388; GFX942-NEXT:    buffer_load_dword v0, v0, s[0:3], 0 offen offset:10247389; GFX942-NEXT:    s_mov_b64 s[6:7], 07390; GFX942-NEXT:    v_lshlrev_b32_e32 v2, 16, v17391; GFX942-NEXT:    s_movk_i32 s8, 0x7fff7392; GFX942-NEXT:    v_and_b32_e32 v3, 0xffff0000, v17393; GFX942-NEXT:    s_mov_b32 s9, 0x70603027394; GFX942-NEXT:    v_mov_b32_e32 v4, s167395; GFX942-NEXT:  .LBB19_1: ; %atomicrmw.start7396; GFX942-NEXT:    ; =>This Inner Loop Header: Depth=17397; GFX942-NEXT:    s_waitcnt vmcnt(0)7398; GFX942-NEXT:    v_mov_b32_e32 v7, v07399; GFX942-NEXT:    v_lshlrev_b32_e32 v0, 16, v77400; GFX942-NEXT:    v_and_b32_e32 v1, 0xffff0000, v77401; GFX942-NEXT:    v_min_f32_e32 v0, v0, v27402; GFX942-NEXT:    v_min_f32_e32 v1, v1, v37403; GFX942-NEXT:    v_bfe_u32 v5, v0, 16, 17404; GFX942-NEXT:    v_bfe_u32 v8, v1, 16, 17405; GFX942-NEXT:    v_or_b32_e32 v6, 0x400000, v07406; GFX942-NEXT:    v_or_b32_e32 v9, 0x400000, v17407; GFX942-NEXT:    v_add3_u32 v5, v5, v0, s87408; GFX942-NEXT:    v_add3_u32 v8, v8, v1, s87409; GFX942-NEXT:    v_cmp_u_f32_e32 vcc, v1, v17410; GFX942-NEXT:    v_cmp_u_f32_e64 s[4:5], v0, v07411; GFX942-NEXT:    buffer_wbl2 sc17412; GFX942-NEXT:    v_cndmask_b32_e32 v1, v8, v9, vcc7413; GFX942-NEXT:    v_cndmask_b32_e64 v0, v5, v6, s[4:5]7414; GFX942-NEXT:    v_perm_b32 v6, v1, v0, s97415; GFX942-NEXT:    v_mov_b64_e32 v[0:1], v[6:7]7416; GFX942-NEXT:    buffer_atomic_cmpswap v[0:1], v4, s[0:3], 0 offen offset:1024 sc07417; GFX942-NEXT:    s_waitcnt vmcnt(0)7418; GFX942-NEXT:    buffer_inv sc17419; GFX942-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v77420; GFX942-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]7421; GFX942-NEXT:    s_andn2_b64 exec, exec, s[6:7]7422; GFX942-NEXT:    s_cbranch_execnz .LBB19_17423; GFX942-NEXT:  ; %bb.2: ; %atomicrmw.end7424; GFX942-NEXT:    s_or_b64 exec, exec, s[6:7]7425; GFX942-NEXT:    s_setpc_b64 s[30:31]7426;7427; GFX11-TRUE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__amdgpu_no_fine_grained_memory:7428; GFX11-TRUE16:       ; %bb.0:7429; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7430; GFX11-TRUE16-NEXT:    v_dual_mov_b32 v1, v0 :: v_dual_mov_b32 v0, s167431; GFX11-TRUE16-NEXT:    s_mov_b32 s4, 07432; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)7433; GFX11-TRUE16-NEXT:    v_dual_mov_b32 v4, s16 :: v_dual_lshlrev_b32 v3, 16, v17434; GFX11-TRUE16-NEXT:    buffer_load_b32 v0, v0, s[0:3], 0 offen offset:10247435; GFX11-TRUE16-NEXT:    v_and_b32_e32 v2, 0xffff0000, v17436; GFX11-TRUE16-NEXT:    s_set_inst_prefetch_distance 0x17437; GFX11-TRUE16-NEXT:    .p2align 67438; GFX11-TRUE16-NEXT:  .LBB19_1: ; %atomicrmw.start7439; GFX11-TRUE16-NEXT:    ; =>This Inner Loop Header: Depth=17440; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0)7441; GFX11-TRUE16-NEXT:    v_mov_b32_e32 v6, v07442; GFX11-TRUE16-NEXT:    s_waitcnt_vscnt null, 0x07443; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)7444; GFX11-TRUE16-NEXT:    v_and_b32_e32 v1, 0xffff0000, v67445; GFX11-TRUE16-NEXT:    v_min_f32_e32 v1, v1, v27446; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)7447; GFX11-TRUE16-NEXT:    v_bfe_u32 v7, v1, 16, 17448; GFX11-TRUE16-NEXT:    v_or_b32_e32 v9, 0x400000, v17449; GFX11-TRUE16-NEXT:    v_add3_u32 v7, v7, v1, 0x7fff7450; GFX11-TRUE16-NEXT:    v_lshlrev_b32_e32 v0, 16, v67451; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)7452; GFX11-TRUE16-NEXT:    v_min_f32_e32 v0, v0, v37453; GFX11-TRUE16-NEXT:    v_bfe_u32 v5, v0, 16, 17454; GFX11-TRUE16-NEXT:    v_or_b32_e32 v8, 0x400000, v07455; GFX11-TRUE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v0, v07456; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)7457; GFX11-TRUE16-NEXT:    v_add3_u32 v5, v5, v0, 0x7fff7458; GFX11-TRUE16-NEXT:    v_cndmask_b32_e32 v0, v5, v8, vcc_lo7459; GFX11-TRUE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v1, v17460; GFX11-TRUE16-NEXT:    v_cndmask_b32_e32 v5, v7, v9, vcc_lo7461; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)7462; GFX11-TRUE16-NEXT:    v_mov_b16_e32 v5.l, v0.h7463; GFX11-TRUE16-NEXT:    v_dual_mov_b32 v0, v5 :: v_dual_mov_b32 v1, v67464; GFX11-TRUE16-NEXT:    buffer_atomic_cmpswap_b32 v[0:1], v4, s[0:3], 0 offen offset:1024 glc7465; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0)7466; GFX11-TRUE16-NEXT:    buffer_gl1_inv7467; GFX11-TRUE16-NEXT:    buffer_gl0_inv7468; GFX11-TRUE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v0, v67469; GFX11-TRUE16-NEXT:    s_or_b32 s4, vcc_lo, s47470; GFX11-TRUE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)7471; GFX11-TRUE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s47472; GFX11-TRUE16-NEXT:    s_cbranch_execnz .LBB19_17473; GFX11-TRUE16-NEXT:  ; %bb.2: ; %atomicrmw.end7474; GFX11-TRUE16-NEXT:    s_set_inst_prefetch_distance 0x27475; GFX11-TRUE16-NEXT:    s_or_b32 exec_lo, exec_lo, s47476; GFX11-TRUE16-NEXT:    s_setpc_b64 s[30:31]7477;7478; GFX11-FAKE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__amdgpu_no_fine_grained_memory:7479; GFX11-FAKE16:       ; %bb.0:7480; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7481; GFX11-FAKE16-NEXT:    v_dual_mov_b32 v1, v0 :: v_dual_mov_b32 v0, s167482; GFX11-FAKE16-NEXT:    s_mov_b32 s5, 07483; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)7484; GFX11-FAKE16-NEXT:    v_dual_mov_b32 v4, s16 :: v_dual_and_b32 v3, 0xffff0000, v17485; GFX11-FAKE16-NEXT:    buffer_load_b32 v0, v0, s[0:3], 0 offen offset:10247486; GFX11-FAKE16-NEXT:    v_lshlrev_b32_e32 v2, 16, v17487; GFX11-FAKE16-NEXT:    s_set_inst_prefetch_distance 0x17488; GFX11-FAKE16-NEXT:    .p2align 67489; GFX11-FAKE16-NEXT:  .LBB19_1: ; %atomicrmw.start7490; GFX11-FAKE16-NEXT:    ; =>This Inner Loop Header: Depth=17491; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0)7492; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v6, v07493; GFX11-FAKE16-NEXT:    s_waitcnt_vscnt null, 0x07494; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)7495; GFX11-FAKE16-NEXT:    v_and_b32_e32 v1, 0xffff0000, v67496; GFX11-FAKE16-NEXT:    v_min_f32_e32 v1, v1, v37497; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_3)7498; GFX11-FAKE16-NEXT:    v_bfe_u32 v7, v1, 16, 17499; GFX11-FAKE16-NEXT:    v_or_b32_e32 v9, 0x400000, v17500; GFX11-FAKE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v1, v17501; GFX11-FAKE16-NEXT:    v_add3_u32 v7, v7, v1, 0x7fff7502; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)7503; GFX11-FAKE16-NEXT:    v_dual_cndmask_b32 v1, v7, v9 :: v_dual_lshlrev_b32 v0, 16, v67504; GFX11-FAKE16-NEXT:    v_min_f32_e32 v0, v0, v27505; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_3)7506; GFX11-FAKE16-NEXT:    v_bfe_u32 v5, v0, 16, 17507; GFX11-FAKE16-NEXT:    v_or_b32_e32 v8, 0x400000, v07508; GFX11-FAKE16-NEXT:    v_cmp_u_f32_e64 s4, v0, v07509; GFX11-FAKE16-NEXT:    v_add3_u32 v5, v5, v0, 0x7fff7510; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)7511; GFX11-FAKE16-NEXT:    v_cndmask_b32_e64 v0, v5, v8, s47512; GFX11-FAKE16-NEXT:    v_perm_b32 v5, v1, v0, 0x70603027513; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)7514; GFX11-FAKE16-NEXT:    v_dual_mov_b32 v0, v5 :: v_dual_mov_b32 v1, v67515; GFX11-FAKE16-NEXT:    buffer_atomic_cmpswap_b32 v[0:1], v4, s[0:3], 0 offen offset:1024 glc7516; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0)7517; GFX11-FAKE16-NEXT:    buffer_gl1_inv7518; GFX11-FAKE16-NEXT:    buffer_gl0_inv7519; GFX11-FAKE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v0, v67520; GFX11-FAKE16-NEXT:    s_or_b32 s5, vcc_lo, s57521; GFX11-FAKE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)7522; GFX11-FAKE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s57523; GFX11-FAKE16-NEXT:    s_cbranch_execnz .LBB19_17524; GFX11-FAKE16-NEXT:  ; %bb.2: ; %atomicrmw.end7525; GFX11-FAKE16-NEXT:    s_set_inst_prefetch_distance 0x27526; GFX11-FAKE16-NEXT:    s_or_b32 exec_lo, exec_lo, s57527; GFX11-FAKE16-NEXT:    s_setpc_b64 s[30:31]7528;7529; GFX10-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__amdgpu_no_fine_grained_memory:7530; GFX10:       ; %bb.0:7531; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7532; GFX10-NEXT:    v_mov_b32_e32 v1, v07533; GFX10-NEXT:    v_mov_b32_e32 v0, s207534; GFX10-NEXT:    v_mov_b32_e32 v4, s207535; GFX10-NEXT:    s_mov_b32 s5, 07536; GFX10-NEXT:    v_lshlrev_b32_e32 v2, 16, v17537; GFX10-NEXT:    buffer_load_dword v0, v0, s[16:19], 0 offen offset:10247538; GFX10-NEXT:    v_and_b32_e32 v3, 0xffff0000, v17539; GFX10-NEXT:  .LBB19_1: ; %atomicrmw.start7540; GFX10-NEXT:    ; =>This Inner Loop Header: Depth=17541; GFX10-NEXT:    s_waitcnt vmcnt(0)7542; GFX10-NEXT:    v_mov_b32_e32 v6, v07543; GFX10-NEXT:    s_waitcnt_vscnt null, 0x07544; GFX10-NEXT:    v_lshlrev_b32_e32 v0, 16, v67545; GFX10-NEXT:    v_and_b32_e32 v1, 0xffff0000, v67546; GFX10-NEXT:    v_min_f32_e32 v0, v0, v27547; GFX10-NEXT:    v_min_f32_e32 v1, v1, v37548; GFX10-NEXT:    v_bfe_u32 v5, v0, 16, 17549; GFX10-NEXT:    v_bfe_u32 v7, v1, 16, 17550; GFX10-NEXT:    v_or_b32_e32 v8, 0x400000, v07551; GFX10-NEXT:    v_or_b32_e32 v9, 0x400000, v17552; GFX10-NEXT:    v_cmp_u_f32_e32 vcc_lo, v1, v17553; GFX10-NEXT:    v_add3_u32 v5, v5, v0, 0x7fff7554; GFX10-NEXT:    v_add3_u32 v7, v7, v1, 0x7fff7555; GFX10-NEXT:    v_cmp_u_f32_e64 s4, v0, v07556; GFX10-NEXT:    v_cndmask_b32_e32 v1, v7, v9, vcc_lo7557; GFX10-NEXT:    v_cndmask_b32_e64 v0, v5, v8, s47558; GFX10-NEXT:    v_perm_b32 v5, v1, v0, 0x70603027559; GFX10-NEXT:    v_mov_b32_e32 v0, v57560; GFX10-NEXT:    v_mov_b32_e32 v1, v67561; GFX10-NEXT:    buffer_atomic_cmpswap v[0:1], v4, s[16:19], 0 offen offset:1024 glc7562; GFX10-NEXT:    s_waitcnt vmcnt(0)7563; GFX10-NEXT:    buffer_gl1_inv7564; GFX10-NEXT:    buffer_gl0_inv7565; GFX10-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v0, v67566; GFX10-NEXT:    s_or_b32 s5, vcc_lo, s57567; GFX10-NEXT:    s_andn2_b32 exec_lo, exec_lo, s57568; GFX10-NEXT:    s_cbranch_execnz .LBB19_17569; GFX10-NEXT:  ; %bb.2: ; %atomicrmw.end7570; GFX10-NEXT:    s_or_b32 exec_lo, exec_lo, s57571; GFX10-NEXT:    s_setpc_b64 s[30:31]7572;7573; GFX90A-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__amdgpu_no_fine_grained_memory:7574; GFX90A:       ; %bb.0:7575; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7576; GFX90A-NEXT:    v_mov_b32_e32 v1, v07577; GFX90A-NEXT:    v_mov_b32_e32 v0, s207578; GFX90A-NEXT:    buffer_load_dword v0, v0, s[16:19], 0 offen offset:10247579; GFX90A-NEXT:    s_mov_b64 s[6:7], 07580; GFX90A-NEXT:    v_lshlrev_b32_e32 v2, 16, v17581; GFX90A-NEXT:    s_movk_i32 s8, 0x7fff7582; GFX90A-NEXT:    v_and_b32_e32 v3, 0xffff0000, v17583; GFX90A-NEXT:    s_mov_b32 s9, 0x70603027584; GFX90A-NEXT:    v_mov_b32_e32 v4, s207585; GFX90A-NEXT:  .LBB19_1: ; %atomicrmw.start7586; GFX90A-NEXT:    ; =>This Inner Loop Header: Depth=17587; GFX90A-NEXT:    s_waitcnt vmcnt(0)7588; GFX90A-NEXT:    v_mov_b32_e32 v7, v07589; GFX90A-NEXT:    v_lshlrev_b32_e32 v0, 16, v77590; GFX90A-NEXT:    v_and_b32_e32 v1, 0xffff0000, v77591; GFX90A-NEXT:    v_min_f32_e32 v0, v0, v27592; GFX90A-NEXT:    v_min_f32_e32 v1, v1, v37593; GFX90A-NEXT:    v_bfe_u32 v5, v0, 16, 17594; GFX90A-NEXT:    v_bfe_u32 v8, v1, 16, 17595; GFX90A-NEXT:    v_or_b32_e32 v6, 0x400000, v07596; GFX90A-NEXT:    v_or_b32_e32 v9, 0x400000, v17597; GFX90A-NEXT:    v_add3_u32 v5, v5, v0, s87598; GFX90A-NEXT:    v_add3_u32 v8, v8, v1, s87599; GFX90A-NEXT:    v_cmp_u_f32_e32 vcc, v1, v17600; GFX90A-NEXT:    v_cmp_u_f32_e64 s[4:5], v0, v07601; GFX90A-NEXT:    v_cndmask_b32_e64 v0, v5, v6, s[4:5]7602; GFX90A-NEXT:    v_cndmask_b32_e32 v1, v8, v9, vcc7603; GFX90A-NEXT:    v_perm_b32 v6, v1, v0, s97604; GFX90A-NEXT:    v_pk_mov_b32 v[0:1], v[6:7], v[6:7] op_sel:[0,1]7605; GFX90A-NEXT:    buffer_atomic_cmpswap v[0:1], v4, s[16:19], 0 offen offset:1024 glc7606; GFX90A-NEXT:    s_waitcnt vmcnt(0)7607; GFX90A-NEXT:    buffer_wbinvl17608; GFX90A-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v77609; GFX90A-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]7610; GFX90A-NEXT:    s_andn2_b64 exec, exec, s[6:7]7611; GFX90A-NEXT:    s_cbranch_execnz .LBB19_17612; GFX90A-NEXT:  ; %bb.2: ; %atomicrmw.end7613; GFX90A-NEXT:    s_or_b64 exec, exec, s[6:7]7614; GFX90A-NEXT:    s_setpc_b64 s[30:31]7615;7616; GFX908-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__amdgpu_no_fine_grained_memory:7617; GFX908:       ; %bb.0:7618; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7619; GFX908-NEXT:    v_mov_b32_e32 v1, v07620; GFX908-NEXT:    v_mov_b32_e32 v0, s207621; GFX908-NEXT:    buffer_load_dword v0, v0, s[16:19], 0 offen offset:10247622; GFX908-NEXT:    s_mov_b64 s[6:7], 07623; GFX908-NEXT:    v_lshlrev_b32_e32 v2, 16, v17624; GFX908-NEXT:    s_movk_i32 s8, 0x7fff7625; GFX908-NEXT:    v_and_b32_e32 v3, 0xffff0000, v17626; GFX908-NEXT:    s_mov_b32 s9, 0x70603027627; GFX908-NEXT:    v_mov_b32_e32 v4, s207628; GFX908-NEXT:  .LBB19_1: ; %atomicrmw.start7629; GFX908-NEXT:    ; =>This Inner Loop Header: Depth=17630; GFX908-NEXT:    s_waitcnt vmcnt(0)7631; GFX908-NEXT:    v_mov_b32_e32 v6, v07632; GFX908-NEXT:    v_lshlrev_b32_e32 v0, 16, v67633; GFX908-NEXT:    v_and_b32_e32 v1, 0xffff0000, v67634; GFX908-NEXT:    v_min_f32_e32 v0, v0, v27635; GFX908-NEXT:    v_min_f32_e32 v1, v1, v37636; GFX908-NEXT:    v_bfe_u32 v5, v0, 16, 17637; GFX908-NEXT:    v_bfe_u32 v8, v1, 16, 17638; GFX908-NEXT:    v_or_b32_e32 v7, 0x400000, v07639; GFX908-NEXT:    v_or_b32_e32 v9, 0x400000, v17640; GFX908-NEXT:    v_add3_u32 v5, v5, v0, s87641; GFX908-NEXT:    v_add3_u32 v8, v8, v1, s87642; GFX908-NEXT:    v_cmp_u_f32_e32 vcc, v1, v17643; GFX908-NEXT:    v_cmp_u_f32_e64 s[4:5], v0, v07644; GFX908-NEXT:    v_cndmask_b32_e64 v0, v5, v7, s[4:5]7645; GFX908-NEXT:    v_cndmask_b32_e32 v1, v8, v9, vcc7646; GFX908-NEXT:    v_perm_b32 v5, v1, v0, s97647; GFX908-NEXT:    v_mov_b32_e32 v0, v57648; GFX908-NEXT:    v_mov_b32_e32 v1, v67649; GFX908-NEXT:    buffer_atomic_cmpswap v[0:1], v4, s[16:19], 0 offen offset:1024 glc7650; GFX908-NEXT:    s_waitcnt vmcnt(0)7651; GFX908-NEXT:    buffer_wbinvl17652; GFX908-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v67653; GFX908-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]7654; GFX908-NEXT:    s_andn2_b64 exec, exec, s[6:7]7655; GFX908-NEXT:    s_cbranch_execnz .LBB19_17656; GFX908-NEXT:  ; %bb.2: ; %atomicrmw.end7657; GFX908-NEXT:    s_or_b64 exec, exec, s[6:7]7658; GFX908-NEXT:    s_setpc_b64 s[30:31]7659;7660; GFX8-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__amdgpu_no_fine_grained_memory:7661; GFX8:       ; %bb.0:7662; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7663; GFX8-NEXT:    v_mov_b32_e32 v1, v07664; GFX8-NEXT:    v_mov_b32_e32 v0, s207665; GFX8-NEXT:    buffer_load_dword v0, v0, s[16:19], 0 offen offset:10247666; GFX8-NEXT:    s_mov_b64 s[6:7], 07667; GFX8-NEXT:    v_lshlrev_b32_e32 v2, 16, v17668; GFX8-NEXT:    v_and_b32_e32 v3, 0xffff0000, v17669; GFX8-NEXT:    v_mov_b32_e32 v4, s207670; GFX8-NEXT:  .LBB19_1: ; %atomicrmw.start7671; GFX8-NEXT:    ; =>This Inner Loop Header: Depth=17672; GFX8-NEXT:    s_waitcnt vmcnt(0)7673; GFX8-NEXT:    v_mov_b32_e32 v6, v07674; GFX8-NEXT:    v_lshlrev_b32_e32 v0, 16, v67675; GFX8-NEXT:    v_and_b32_e32 v1, 0xffff0000, v67676; GFX8-NEXT:    v_min_f32_e32 v0, v0, v27677; GFX8-NEXT:    v_min_f32_e32 v1, v1, v37678; GFX8-NEXT:    v_bfe_u32 v5, v0, 16, 17679; GFX8-NEXT:    v_bfe_u32 v8, v1, 16, 17680; GFX8-NEXT:    v_add_u32_e32 v5, vcc, v5, v07681; GFX8-NEXT:    v_add_u32_e32 v8, vcc, v8, v17682; GFX8-NEXT:    v_add_u32_e32 v5, vcc, 0x7fff, v57683; GFX8-NEXT:    v_add_u32_e32 v8, vcc, 0x7fff, v87684; GFX8-NEXT:    v_or_b32_e32 v9, 0x400000, v17685; GFX8-NEXT:    v_cmp_u_f32_e32 vcc, v1, v17686; GFX8-NEXT:    v_or_b32_e32 v7, 0x400000, v07687; GFX8-NEXT:    v_cmp_u_f32_e64 s[4:5], v0, v07688; GFX8-NEXT:    v_cndmask_b32_e32 v1, v8, v9, vcc7689; GFX8-NEXT:    v_cndmask_b32_e64 v0, v5, v7, s[4:5]7690; GFX8-NEXT:    v_lshrrev_b32_e32 v1, 16, v17691; GFX8-NEXT:    v_alignbit_b32 v5, v1, v0, 167692; GFX8-NEXT:    v_mov_b32_e32 v0, v57693; GFX8-NEXT:    v_mov_b32_e32 v1, v67694; GFX8-NEXT:    buffer_atomic_cmpswap v[0:1], v4, s[16:19], 0 offen offset:1024 glc7695; GFX8-NEXT:    s_waitcnt vmcnt(0)7696; GFX8-NEXT:    buffer_wbinvl17697; GFX8-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v67698; GFX8-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]7699; GFX8-NEXT:    s_andn2_b64 exec, exec, s[6:7]7700; GFX8-NEXT:    s_cbranch_execnz .LBB19_17701; GFX8-NEXT:  ; %bb.2: ; %atomicrmw.end7702; GFX8-NEXT:    s_or_b64 exec, exec, s[6:7]7703; GFX8-NEXT:    s_setpc_b64 s[30:31]7704;7705; GFX7-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__amdgpu_no_fine_grained_memory:7706; GFX7:       ; %bb.0:7707; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7708; GFX7-NEXT:    v_mov_b32_e32 v2, s207709; GFX7-NEXT:    buffer_load_dword v4, v2, s[16:19], 0 offen offset:10247710; GFX7-NEXT:    v_mul_f32_e32 v1, 1.0, v17711; GFX7-NEXT:    v_mul_f32_e32 v0, 1.0, v07712; GFX7-NEXT:    s_mov_b64 s[4:5], 07713; GFX7-NEXT:    v_and_b32_e32 v2, 0xffff0000, v17714; GFX7-NEXT:    v_and_b32_e32 v3, 0xffff0000, v07715; GFX7-NEXT:    s_waitcnt vmcnt(0)7716; GFX7-NEXT:    v_and_b32_e32 v1, 0xffff0000, v47717; GFX7-NEXT:    v_lshlrev_b32_e32 v0, 16, v47718; GFX7-NEXT:    v_mov_b32_e32 v4, s207719; GFX7-NEXT:  .LBB19_1: ; %atomicrmw.start7720; GFX7-NEXT:    ; =>This Inner Loop Header: Depth=17721; GFX7-NEXT:    v_mul_f32_e32 v1, 1.0, v17722; GFX7-NEXT:    v_mul_f32_e32 v0, 1.0, v07723; GFX7-NEXT:    v_and_b32_e32 v5, 0xffff0000, v17724; GFX7-NEXT:    v_and_b32_e32 v6, 0xffff0000, v07725; GFX7-NEXT:    v_lshrrev_b32_e32 v1, 16, v17726; GFX7-NEXT:    v_min_f32_e32 v5, v5, v27727; GFX7-NEXT:    v_min_f32_e32 v6, v6, v37728; GFX7-NEXT:    v_alignbit_b32 v1, v1, v0, 167729; GFX7-NEXT:    v_lshrrev_b32_e32 v0, 16, v57730; GFX7-NEXT:    v_alignbit_b32 v0, v0, v6, 167731; GFX7-NEXT:    v_mov_b32_e32 v6, v17732; GFX7-NEXT:    v_mov_b32_e32 v5, v07733; GFX7-NEXT:    buffer_atomic_cmpswap v[5:6], v4, s[16:19], 0 offen offset:1024 glc7734; GFX7-NEXT:    s_waitcnt vmcnt(0)7735; GFX7-NEXT:    buffer_wbinvl17736; GFX7-NEXT:    v_cmp_eq_u32_e32 vcc, v5, v17737; GFX7-NEXT:    v_and_b32_e32 v1, 0xffff0000, v57738; GFX7-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]7739; GFX7-NEXT:    v_lshlrev_b32_e32 v0, 16, v57740; GFX7-NEXT:    s_andn2_b64 exec, exec, s[4:5]7741; GFX7-NEXT:    s_cbranch_execnz .LBB19_17742; GFX7-NEXT:  ; %bb.2: ; %atomicrmw.end7743; GFX7-NEXT:    s_or_b64 exec, exec, s[4:5]7744; GFX7-NEXT:    s_setpc_b64 s[30:31]7745;7746; GFX6-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__amdgpu_no_fine_grained_memory:7747; GFX6:       ; %bb.0:7748; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7749; GFX6-NEXT:    v_mov_b32_e32 v2, s207750; GFX6-NEXT:    buffer_load_dword v4, v2, s[16:19], 0 offen offset:10247751; GFX6-NEXT:    s_add_i32 s6, s20, 0x4007752; GFX6-NEXT:    v_mul_f32_e32 v1, 1.0, v17753; GFX6-NEXT:    v_mul_f32_e32 v0, 1.0, v07754; GFX6-NEXT:    s_mov_b64 s[4:5], 07755; GFX6-NEXT:    v_and_b32_e32 v2, 0xffff0000, v17756; GFX6-NEXT:    v_and_b32_e32 v3, 0xffff0000, v07757; GFX6-NEXT:    s_waitcnt vmcnt(0)7758; GFX6-NEXT:    v_and_b32_e32 v1, 0xffff0000, v47759; GFX6-NEXT:    v_lshlrev_b32_e32 v0, 16, v47760; GFX6-NEXT:    v_mov_b32_e32 v4, s67761; GFX6-NEXT:  .LBB19_1: ; %atomicrmw.start7762; GFX6-NEXT:    ; =>This Inner Loop Header: Depth=17763; GFX6-NEXT:    v_mul_f32_e32 v1, 1.0, v17764; GFX6-NEXT:    v_mul_f32_e32 v0, 1.0, v07765; GFX6-NEXT:    s_waitcnt expcnt(0)7766; GFX6-NEXT:    v_and_b32_e32 v5, 0xffff0000, v17767; GFX6-NEXT:    v_and_b32_e32 v6, 0xffff0000, v07768; GFX6-NEXT:    v_lshrrev_b32_e32 v1, 16, v17769; GFX6-NEXT:    v_min_f32_e32 v5, v5, v27770; GFX6-NEXT:    v_min_f32_e32 v6, v6, v37771; GFX6-NEXT:    v_alignbit_b32 v1, v1, v0, 167772; GFX6-NEXT:    v_lshrrev_b32_e32 v0, 16, v57773; GFX6-NEXT:    v_alignbit_b32 v0, v0, v6, 167774; GFX6-NEXT:    v_mov_b32_e32 v6, v17775; GFX6-NEXT:    v_mov_b32_e32 v5, v07776; GFX6-NEXT:    buffer_atomic_cmpswap v[5:6], v4, s[16:19], 0 offen glc7777; GFX6-NEXT:    s_waitcnt vmcnt(0)7778; GFX6-NEXT:    buffer_wbinvl17779; GFX6-NEXT:    v_cmp_eq_u32_e32 vcc, v5, v17780; GFX6-NEXT:    v_and_b32_e32 v1, 0xffff0000, v57781; GFX6-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]7782; GFX6-NEXT:    v_lshlrev_b32_e32 v0, 16, v57783; GFX6-NEXT:    s_andn2_b64 exec, exec, s[4:5]7784; GFX6-NEXT:    s_cbranch_execnz .LBB19_17785; GFX6-NEXT:  ; %bb.2: ; %atomicrmw.end7786; GFX6-NEXT:    s_or_b64 exec, exec, s[4:5]7787; GFX6-NEXT:    s_waitcnt expcnt(0)7788; GFX6-NEXT:    s_setpc_b64 s[30:31]7789  %gep = getelementptr <2 x bfloat>, ptr addrspace(7) %ptr, i32 2567790  %result = atomicrmw fmin ptr addrspace(7) %gep, <2 x bfloat> %val syncscope("agent") seq_cst, !amdgpu.no.fine.grained.memory !07791  ret <2 x bfloat> %result7792}7793 7794define void @buffer_fat_ptr_agent_atomic_fmin_noret_v2bf16__offset__amdgpu_no_fine_grained_memory(ptr addrspace(7) inreg %ptr, <2 x bfloat> %val) #0 {7795; GFX12-TRUE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_v2bf16__offset__amdgpu_no_fine_grained_memory:7796; GFX12-TRUE16:       ; %bb.0:7797; GFX12-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x07798; GFX12-TRUE16-NEXT:    s_wait_expcnt 0x07799; GFX12-TRUE16-NEXT:    s_wait_samplecnt 0x07800; GFX12-TRUE16-NEXT:    s_wait_bvhcnt 0x07801; GFX12-TRUE16-NEXT:    s_wait_kmcnt 0x07802; GFX12-TRUE16-NEXT:    v_dual_mov_b32 v1, s16 :: v_dual_and_b32 v2, 0xffff0000, v07803; GFX12-TRUE16-NEXT:    v_dual_mov_b32 v4, s16 :: v_dual_lshlrev_b32 v3, 16, v07804; GFX12-TRUE16-NEXT:    s_mov_b32 s4, 07805; GFX12-TRUE16-NEXT:    buffer_load_b32 v1, v1, s[0:3], null offen offset:10247806; GFX12-TRUE16-NEXT:  .LBB20_1: ; %atomicrmw.start7807; GFX12-TRUE16-NEXT:    ; =>This Inner Loop Header: Depth=17808; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x07809; GFX12-TRUE16-NEXT:    v_and_b32_e32 v5, 0xffff0000, v17810; GFX12-TRUE16-NEXT:    v_lshlrev_b32_e32 v0, 16, v17811; GFX12-TRUE16-NEXT:    s_wait_storecnt 0x07812; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)7813; GFX12-TRUE16-NEXT:    v_dual_min_num_f32 v5, v5, v2 :: v_dual_min_num_f32 v0, v0, v37814; GFX12-TRUE16-NEXT:    v_bfe_u32 v7, v5, 16, 17815; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_2)7816; GFX12-TRUE16-NEXT:    v_bfe_u32 v6, v0, 16, 17817; GFX12-TRUE16-NEXT:    v_or_b32_e32 v8, 0x400000, v07818; GFX12-TRUE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v0, v07819; GFX12-TRUE16-NEXT:    v_or_b32_e32 v9, 0x400000, v57820; GFX12-TRUE16-NEXT:    v_add3_u32 v7, v7, v5, 0x7fff7821; GFX12-TRUE16-NEXT:    v_add3_u32 v6, v6, v0, 0x7fff7822; GFX12-TRUE16-NEXT:    s_wait_alu depctr_va_vcc(0)7823; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_3) | instid1(VALU_DEP_3)7824; GFX12-TRUE16-NEXT:    v_cndmask_b32_e32 v6, v6, v8, vcc_lo7825; GFX12-TRUE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v5, v57826; GFX12-TRUE16-NEXT:    s_wait_alu depctr_va_vcc(0)7827; GFX12-TRUE16-NEXT:    v_cndmask_b32_e32 v0, v7, v9, vcc_lo7828; GFX12-TRUE16-NEXT:    v_mov_b16_e32 v0.l, v6.h7829; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)7830; GFX12-TRUE16-NEXT:    v_dual_mov_b32 v6, v1 :: v_dual_mov_b32 v5, v07831; GFX12-TRUE16-NEXT:    buffer_atomic_cmpswap_b32 v[5:6], v4, s[0:3], null offen offset:1024 th:TH_ATOMIC_RETURN7832; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x07833; GFX12-TRUE16-NEXT:    global_inv scope:SCOPE_DEV7834; GFX12-TRUE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v5, v17835; GFX12-TRUE16-NEXT:    v_mov_b32_e32 v1, v57836; GFX12-TRUE16-NEXT:    s_or_b32 s4, vcc_lo, s47837; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)7838; GFX12-TRUE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s47839; GFX12-TRUE16-NEXT:    s_cbranch_execnz .LBB20_17840; GFX12-TRUE16-NEXT:  ; %bb.2: ; %atomicrmw.end7841; GFX12-TRUE16-NEXT:    s_or_b32 exec_lo, exec_lo, s47842; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x07843; GFX12-TRUE16-NEXT:    s_setpc_b64 s[30:31]7844;7845; GFX12-FAKE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_v2bf16__offset__amdgpu_no_fine_grained_memory:7846; GFX12-FAKE16:       ; %bb.0:7847; GFX12-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x07848; GFX12-FAKE16-NEXT:    s_wait_expcnt 0x07849; GFX12-FAKE16-NEXT:    s_wait_samplecnt 0x07850; GFX12-FAKE16-NEXT:    s_wait_bvhcnt 0x07851; GFX12-FAKE16-NEXT:    s_wait_kmcnt 0x07852; GFX12-FAKE16-NEXT:    v_dual_mov_b32 v1, s16 :: v_dual_lshlrev_b32 v2, 16, v07853; GFX12-FAKE16-NEXT:    v_dual_mov_b32 v4, s16 :: v_dual_and_b32 v3, 0xffff0000, v07854; GFX12-FAKE16-NEXT:    s_mov_b32 s5, 07855; GFX12-FAKE16-NEXT:    buffer_load_b32 v1, v1, s[0:3], null offen offset:10247856; GFX12-FAKE16-NEXT:  .LBB20_1: ; %atomicrmw.start7857; GFX12-FAKE16-NEXT:    ; =>This Inner Loop Header: Depth=17858; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x07859; GFX12-FAKE16-NEXT:    v_and_b32_e32 v5, 0xffff0000, v17860; GFX12-FAKE16-NEXT:    v_lshlrev_b32_e32 v0, 16, v17861; GFX12-FAKE16-NEXT:    s_wait_storecnt 0x07862; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)7863; GFX12-FAKE16-NEXT:    v_dual_min_num_f32 v5, v5, v3 :: v_dual_min_num_f32 v0, v0, v27864; GFX12-FAKE16-NEXT:    v_bfe_u32 v7, v5, 16, 17865; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_2)7866; GFX12-FAKE16-NEXT:    v_bfe_u32 v6, v0, 16, 17867; GFX12-FAKE16-NEXT:    v_or_b32_e32 v8, 0x400000, v07868; GFX12-FAKE16-NEXT:    v_or_b32_e32 v9, 0x400000, v57869; GFX12-FAKE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v5, v57870; GFX12-FAKE16-NEXT:    v_add3_u32 v7, v7, v5, 0x7fff7871; GFX12-FAKE16-NEXT:    v_add3_u32 v6, v6, v0, 0x7fff7872; GFX12-FAKE16-NEXT:    v_cmp_u_f32_e64 s4, v0, v07873; GFX12-FAKE16-NEXT:    s_wait_alu depctr_va_vcc(0)7874; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(SKIP_1) | instid1(VALU_DEP_2)7875; GFX12-FAKE16-NEXT:    v_cndmask_b32_e32 v5, v7, v9, vcc_lo7876; GFX12-FAKE16-NEXT:    s_wait_alu depctr_va_sdst(0)7877; GFX12-FAKE16-NEXT:    v_cndmask_b32_e64 v0, v6, v8, s47878; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)7879; GFX12-FAKE16-NEXT:    v_perm_b32 v0, v5, v0, 0x70603027880; GFX12-FAKE16-NEXT:    v_dual_mov_b32 v6, v1 :: v_dual_mov_b32 v5, v07881; GFX12-FAKE16-NEXT:    buffer_atomic_cmpswap_b32 v[5:6], v4, s[0:3], null offen offset:1024 th:TH_ATOMIC_RETURN7882; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x07883; GFX12-FAKE16-NEXT:    global_inv scope:SCOPE_DEV7884; GFX12-FAKE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v5, v17885; GFX12-FAKE16-NEXT:    v_mov_b32_e32 v1, v57886; GFX12-FAKE16-NEXT:    s_or_b32 s5, vcc_lo, s57887; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)7888; GFX12-FAKE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s57889; GFX12-FAKE16-NEXT:    s_cbranch_execnz .LBB20_17890; GFX12-FAKE16-NEXT:  ; %bb.2: ; %atomicrmw.end7891; GFX12-FAKE16-NEXT:    s_or_b32 exec_lo, exec_lo, s57892; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x07893; GFX12-FAKE16-NEXT:    s_setpc_b64 s[30:31]7894;7895; GFX942-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_v2bf16__offset__amdgpu_no_fine_grained_memory:7896; GFX942:       ; %bb.0:7897; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7898; GFX942-NEXT:    v_mov_b32_e32 v1, s167899; GFX942-NEXT:    buffer_load_dword v1, v1, s[0:3], 0 offen offset:10247900; GFX942-NEXT:    s_mov_b64 s[6:7], 07901; GFX942-NEXT:    v_lshlrev_b32_e32 v2, 16, v07902; GFX942-NEXT:    s_movk_i32 s8, 0x7fff7903; GFX942-NEXT:    v_and_b32_e32 v3, 0xffff0000, v07904; GFX942-NEXT:    s_mov_b32 s9, 0x70603027905; GFX942-NEXT:    v_mov_b32_e32 v4, s167906; GFX942-NEXT:  .LBB20_1: ; %atomicrmw.start7907; GFX942-NEXT:    ; =>This Inner Loop Header: Depth=17908; GFX942-NEXT:    s_waitcnt vmcnt(0)7909; GFX942-NEXT:    v_lshlrev_b32_e32 v0, 16, v17910; GFX942-NEXT:    v_and_b32_e32 v5, 0xffff0000, v17911; GFX942-NEXT:    v_min_f32_e32 v0, v0, v27912; GFX942-NEXT:    v_min_f32_e32 v5, v5, v37913; GFX942-NEXT:    v_bfe_u32 v6, v0, 16, 17914; GFX942-NEXT:    v_bfe_u32 v8, v5, 16, 17915; GFX942-NEXT:    v_or_b32_e32 v7, 0x400000, v07916; GFX942-NEXT:    v_or_b32_e32 v9, 0x400000, v57917; GFX942-NEXT:    v_add3_u32 v6, v6, v0, s87918; GFX942-NEXT:    v_add3_u32 v8, v8, v5, s87919; GFX942-NEXT:    v_cmp_u_f32_e32 vcc, v5, v57920; GFX942-NEXT:    v_cmp_u_f32_e64 s[4:5], v0, v07921; GFX942-NEXT:    buffer_wbl2 sc17922; GFX942-NEXT:    v_cndmask_b32_e32 v5, v8, v9, vcc7923; GFX942-NEXT:    v_cndmask_b32_e64 v0, v6, v7, s[4:5]7924; GFX942-NEXT:    v_perm_b32 v0, v5, v0, s97925; GFX942-NEXT:    v_mov_b64_e32 v[6:7], v[0:1]7926; GFX942-NEXT:    buffer_atomic_cmpswap v[6:7], v4, s[0:3], 0 offen offset:1024 sc07927; GFX942-NEXT:    s_waitcnt vmcnt(0)7928; GFX942-NEXT:    buffer_inv sc17929; GFX942-NEXT:    v_cmp_eq_u32_e32 vcc, v6, v17930; GFX942-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]7931; GFX942-NEXT:    v_mov_b32_e32 v1, v67932; GFX942-NEXT:    s_andn2_b64 exec, exec, s[6:7]7933; GFX942-NEXT:    s_cbranch_execnz .LBB20_17934; GFX942-NEXT:  ; %bb.2: ; %atomicrmw.end7935; GFX942-NEXT:    s_or_b64 exec, exec, s[6:7]7936; GFX942-NEXT:    s_setpc_b64 s[30:31]7937;7938; GFX11-TRUE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_v2bf16__offset__amdgpu_no_fine_grained_memory:7939; GFX11-TRUE16:       ; %bb.0:7940; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7941; GFX11-TRUE16-NEXT:    v_dual_mov_b32 v1, s16 :: v_dual_and_b32 v2, 0xffff0000, v07942; GFX11-TRUE16-NEXT:    v_dual_mov_b32 v4, s16 :: v_dual_lshlrev_b32 v3, 16, v07943; GFX11-TRUE16-NEXT:    s_mov_b32 s4, 07944; GFX11-TRUE16-NEXT:    buffer_load_b32 v1, v1, s[0:3], 0 offen offset:10247945; GFX11-TRUE16-NEXT:    s_set_inst_prefetch_distance 0x17946; GFX11-TRUE16-NEXT:    .p2align 67947; GFX11-TRUE16-NEXT:  .LBB20_1: ; %atomicrmw.start7948; GFX11-TRUE16-NEXT:    ; =>This Inner Loop Header: Depth=17949; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0)7950; GFX11-TRUE16-NEXT:    v_and_b32_e32 v5, 0xffff0000, v17951; GFX11-TRUE16-NEXT:    v_lshlrev_b32_e32 v0, 16, v17952; GFX11-TRUE16-NEXT:    s_waitcnt_vscnt null, 0x07953; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)7954; GFX11-TRUE16-NEXT:    v_dual_min_f32 v5, v5, v2 :: v_dual_min_f32 v0, v0, v37955; GFX11-TRUE16-NEXT:    v_bfe_u32 v7, v5, 16, 17956; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_2)7957; GFX11-TRUE16-NEXT:    v_bfe_u32 v6, v0, 16, 17958; GFX11-TRUE16-NEXT:    v_or_b32_e32 v8, 0x400000, v07959; GFX11-TRUE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v0, v07960; GFX11-TRUE16-NEXT:    v_or_b32_e32 v9, 0x400000, v57961; GFX11-TRUE16-NEXT:    v_add3_u32 v7, v7, v5, 0x7fff7962; GFX11-TRUE16-NEXT:    v_add3_u32 v6, v6, v0, 0x7fff7963; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_4)7964; GFX11-TRUE16-NEXT:    v_cndmask_b32_e32 v6, v6, v8, vcc_lo7965; GFX11-TRUE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v5, v57966; GFX11-TRUE16-NEXT:    v_cndmask_b32_e32 v0, v7, v9, vcc_lo7967; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)7968; GFX11-TRUE16-NEXT:    v_mov_b16_e32 v0.l, v6.h7969; GFX11-TRUE16-NEXT:    v_dual_mov_b32 v6, v1 :: v_dual_mov_b32 v5, v07970; GFX11-TRUE16-NEXT:    buffer_atomic_cmpswap_b32 v[5:6], v4, s[0:3], 0 offen offset:1024 glc7971; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0)7972; GFX11-TRUE16-NEXT:    buffer_gl1_inv7973; GFX11-TRUE16-NEXT:    buffer_gl0_inv7974; GFX11-TRUE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v5, v17975; GFX11-TRUE16-NEXT:    v_mov_b32_e32 v1, v57976; GFX11-TRUE16-NEXT:    s_or_b32 s4, vcc_lo, s47977; GFX11-TRUE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)7978; GFX11-TRUE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s47979; GFX11-TRUE16-NEXT:    s_cbranch_execnz .LBB20_17980; GFX11-TRUE16-NEXT:  ; %bb.2: ; %atomicrmw.end7981; GFX11-TRUE16-NEXT:    s_set_inst_prefetch_distance 0x27982; GFX11-TRUE16-NEXT:    s_or_b32 exec_lo, exec_lo, s47983; GFX11-TRUE16-NEXT:    s_setpc_b64 s[30:31]7984;7985; GFX11-FAKE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_v2bf16__offset__amdgpu_no_fine_grained_memory:7986; GFX11-FAKE16:       ; %bb.0:7987; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)7988; GFX11-FAKE16-NEXT:    v_dual_mov_b32 v1, s16 :: v_dual_lshlrev_b32 v2, 16, v07989; GFX11-FAKE16-NEXT:    v_dual_mov_b32 v4, s16 :: v_dual_and_b32 v3, 0xffff0000, v07990; GFX11-FAKE16-NEXT:    s_mov_b32 s5, 07991; GFX11-FAKE16-NEXT:    buffer_load_b32 v1, v1, s[0:3], 0 offen offset:10247992; GFX11-FAKE16-NEXT:    s_set_inst_prefetch_distance 0x17993; GFX11-FAKE16-NEXT:    .p2align 67994; GFX11-FAKE16-NEXT:  .LBB20_1: ; %atomicrmw.start7995; GFX11-FAKE16-NEXT:    ; =>This Inner Loop Header: Depth=17996; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0)7997; GFX11-FAKE16-NEXT:    v_and_b32_e32 v5, 0xffff0000, v17998; GFX11-FAKE16-NEXT:    v_lshlrev_b32_e32 v0, 16, v17999; GFX11-FAKE16-NEXT:    s_waitcnt_vscnt null, 0x08000; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)8001; GFX11-FAKE16-NEXT:    v_dual_min_f32 v5, v5, v3 :: v_dual_min_f32 v0, v0, v28002; GFX11-FAKE16-NEXT:    v_bfe_u32 v7, v5, 16, 18003; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_2)8004; GFX11-FAKE16-NEXT:    v_bfe_u32 v6, v0, 16, 18005; GFX11-FAKE16-NEXT:    v_or_b32_e32 v8, 0x400000, v08006; GFX11-FAKE16-NEXT:    v_or_b32_e32 v9, 0x400000, v58007; GFX11-FAKE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v5, v58008; GFX11-FAKE16-NEXT:    v_add3_u32 v7, v7, v5, 0x7fff8009; GFX11-FAKE16-NEXT:    v_add3_u32 v6, v6, v0, 0x7fff8010; GFX11-FAKE16-NEXT:    v_cmp_u_f32_e64 s4, v0, v08011; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)8012; GFX11-FAKE16-NEXT:    v_cndmask_b32_e32 v5, v7, v9, vcc_lo8013; GFX11-FAKE16-NEXT:    v_cndmask_b32_e64 v0, v6, v8, s48014; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)8015; GFX11-FAKE16-NEXT:    v_perm_b32 v0, v5, v0, 0x70603028016; GFX11-FAKE16-NEXT:    v_dual_mov_b32 v6, v1 :: v_dual_mov_b32 v5, v08017; GFX11-FAKE16-NEXT:    buffer_atomic_cmpswap_b32 v[5:6], v4, s[0:3], 0 offen offset:1024 glc8018; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0)8019; GFX11-FAKE16-NEXT:    buffer_gl1_inv8020; GFX11-FAKE16-NEXT:    buffer_gl0_inv8021; GFX11-FAKE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v5, v18022; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v1, v58023; GFX11-FAKE16-NEXT:    s_or_b32 s5, vcc_lo, s58024; GFX11-FAKE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)8025; GFX11-FAKE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s58026; GFX11-FAKE16-NEXT:    s_cbranch_execnz .LBB20_18027; GFX11-FAKE16-NEXT:  ; %bb.2: ; %atomicrmw.end8028; GFX11-FAKE16-NEXT:    s_set_inst_prefetch_distance 0x28029; GFX11-FAKE16-NEXT:    s_or_b32 exec_lo, exec_lo, s58030; GFX11-FAKE16-NEXT:    s_setpc_b64 s[30:31]8031;8032; GFX10-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_v2bf16__offset__amdgpu_no_fine_grained_memory:8033; GFX10:       ; %bb.0:8034; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8035; GFX10-NEXT:    v_mov_b32_e32 v1, s208036; GFX10-NEXT:    v_lshlrev_b32_e32 v2, 16, v08037; GFX10-NEXT:    v_and_b32_e32 v3, 0xffff0000, v08038; GFX10-NEXT:    v_mov_b32_e32 v4, s208039; GFX10-NEXT:    s_mov_b32 s5, 08040; GFX10-NEXT:    buffer_load_dword v1, v1, s[16:19], 0 offen offset:10248041; GFX10-NEXT:  .LBB20_1: ; %atomicrmw.start8042; GFX10-NEXT:    ; =>This Inner Loop Header: Depth=18043; GFX10-NEXT:    s_waitcnt vmcnt(0)8044; GFX10-NEXT:    v_lshlrev_b32_e32 v0, 16, v18045; GFX10-NEXT:    v_and_b32_e32 v5, 0xffff0000, v18046; GFX10-NEXT:    s_waitcnt_vscnt null, 0x08047; GFX10-NEXT:    v_min_f32_e32 v0, v0, v28048; GFX10-NEXT:    v_min_f32_e32 v5, v5, v38049; GFX10-NEXT:    v_bfe_u32 v6, v0, 16, 18050; GFX10-NEXT:    v_bfe_u32 v7, v5, 16, 18051; GFX10-NEXT:    v_or_b32_e32 v8, 0x400000, v08052; GFX10-NEXT:    v_or_b32_e32 v9, 0x400000, v58053; GFX10-NEXT:    v_cmp_u_f32_e32 vcc_lo, v5, v58054; GFX10-NEXT:    v_add3_u32 v6, v6, v0, 0x7fff8055; GFX10-NEXT:    v_add3_u32 v7, v7, v5, 0x7fff8056; GFX10-NEXT:    v_cmp_u_f32_e64 s4, v0, v08057; GFX10-NEXT:    v_cndmask_b32_e32 v5, v7, v9, vcc_lo8058; GFX10-NEXT:    v_cndmask_b32_e64 v0, v6, v8, s48059; GFX10-NEXT:    v_perm_b32 v0, v5, v0, 0x70603028060; GFX10-NEXT:    v_mov_b32_e32 v6, v18061; GFX10-NEXT:    v_mov_b32_e32 v5, v08062; GFX10-NEXT:    buffer_atomic_cmpswap v[5:6], v4, s[16:19], 0 offen offset:1024 glc8063; GFX10-NEXT:    s_waitcnt vmcnt(0)8064; GFX10-NEXT:    buffer_gl1_inv8065; GFX10-NEXT:    buffer_gl0_inv8066; GFX10-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v5, v18067; GFX10-NEXT:    v_mov_b32_e32 v1, v58068; GFX10-NEXT:    s_or_b32 s5, vcc_lo, s58069; GFX10-NEXT:    s_andn2_b32 exec_lo, exec_lo, s58070; GFX10-NEXT:    s_cbranch_execnz .LBB20_18071; GFX10-NEXT:  ; %bb.2: ; %atomicrmw.end8072; GFX10-NEXT:    s_or_b32 exec_lo, exec_lo, s58073; GFX10-NEXT:    s_setpc_b64 s[30:31]8074;8075; GFX90A-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_v2bf16__offset__amdgpu_no_fine_grained_memory:8076; GFX90A:       ; %bb.0:8077; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8078; GFX90A-NEXT:    v_mov_b32_e32 v1, s208079; GFX90A-NEXT:    buffer_load_dword v1, v1, s[16:19], 0 offen offset:10248080; GFX90A-NEXT:    s_mov_b64 s[6:7], 08081; GFX90A-NEXT:    v_lshlrev_b32_e32 v2, 16, v08082; GFX90A-NEXT:    s_movk_i32 s8, 0x7fff8083; GFX90A-NEXT:    v_and_b32_e32 v3, 0xffff0000, v08084; GFX90A-NEXT:    s_mov_b32 s9, 0x70603028085; GFX90A-NEXT:    v_mov_b32_e32 v4, s208086; GFX90A-NEXT:  .LBB20_1: ; %atomicrmw.start8087; GFX90A-NEXT:    ; =>This Inner Loop Header: Depth=18088; GFX90A-NEXT:    s_waitcnt vmcnt(0)8089; GFX90A-NEXT:    v_lshlrev_b32_e32 v0, 16, v18090; GFX90A-NEXT:    v_and_b32_e32 v5, 0xffff0000, v18091; GFX90A-NEXT:    v_min_f32_e32 v0, v0, v28092; GFX90A-NEXT:    v_min_f32_e32 v5, v5, v38093; GFX90A-NEXT:    v_bfe_u32 v6, v0, 16, 18094; GFX90A-NEXT:    v_bfe_u32 v8, v5, 16, 18095; GFX90A-NEXT:    v_or_b32_e32 v7, 0x400000, v08096; GFX90A-NEXT:    v_or_b32_e32 v9, 0x400000, v58097; GFX90A-NEXT:    v_add3_u32 v6, v6, v0, s88098; GFX90A-NEXT:    v_add3_u32 v8, v8, v5, s88099; GFX90A-NEXT:    v_cmp_u_f32_e32 vcc, v5, v58100; GFX90A-NEXT:    v_cmp_u_f32_e64 s[4:5], v0, v08101; GFX90A-NEXT:    v_cndmask_b32_e64 v0, v6, v7, s[4:5]8102; GFX90A-NEXT:    v_cndmask_b32_e32 v5, v8, v9, vcc8103; GFX90A-NEXT:    v_perm_b32 v0, v5, v0, s98104; GFX90A-NEXT:    v_pk_mov_b32 v[6:7], v[0:1], v[0:1] op_sel:[0,1]8105; GFX90A-NEXT:    buffer_atomic_cmpswap v[6:7], v4, s[16:19], 0 offen offset:1024 glc8106; GFX90A-NEXT:    s_waitcnt vmcnt(0)8107; GFX90A-NEXT:    buffer_wbinvl18108; GFX90A-NEXT:    v_cmp_eq_u32_e32 vcc, v6, v18109; GFX90A-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]8110; GFX90A-NEXT:    v_mov_b32_e32 v1, v68111; GFX90A-NEXT:    s_andn2_b64 exec, exec, s[6:7]8112; GFX90A-NEXT:    s_cbranch_execnz .LBB20_18113; GFX90A-NEXT:  ; %bb.2: ; %atomicrmw.end8114; GFX90A-NEXT:    s_or_b64 exec, exec, s[6:7]8115; GFX90A-NEXT:    s_setpc_b64 s[30:31]8116;8117; GFX908-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_v2bf16__offset__amdgpu_no_fine_grained_memory:8118; GFX908:       ; %bb.0:8119; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8120; GFX908-NEXT:    v_mov_b32_e32 v1, s208121; GFX908-NEXT:    buffer_load_dword v1, v1, s[16:19], 0 offen offset:10248122; GFX908-NEXT:    s_mov_b64 s[6:7], 08123; GFX908-NEXT:    v_lshlrev_b32_e32 v2, 16, v08124; GFX908-NEXT:    s_movk_i32 s8, 0x7fff8125; GFX908-NEXT:    v_and_b32_e32 v3, 0xffff0000, v08126; GFX908-NEXT:    s_mov_b32 s9, 0x70603028127; GFX908-NEXT:    v_mov_b32_e32 v4, s208128; GFX908-NEXT:  .LBB20_1: ; %atomicrmw.start8129; GFX908-NEXT:    ; =>This Inner Loop Header: Depth=18130; GFX908-NEXT:    s_waitcnt vmcnt(0)8131; GFX908-NEXT:    v_lshlrev_b32_e32 v0, 16, v18132; GFX908-NEXT:    v_and_b32_e32 v5, 0xffff0000, v18133; GFX908-NEXT:    v_min_f32_e32 v0, v0, v28134; GFX908-NEXT:    v_min_f32_e32 v5, v5, v38135; GFX908-NEXT:    v_bfe_u32 v6, v0, 16, 18136; GFX908-NEXT:    v_bfe_u32 v8, v5, 16, 18137; GFX908-NEXT:    v_or_b32_e32 v7, 0x400000, v08138; GFX908-NEXT:    v_or_b32_e32 v9, 0x400000, v58139; GFX908-NEXT:    v_add3_u32 v6, v6, v0, s88140; GFX908-NEXT:    v_add3_u32 v8, v8, v5, s88141; GFX908-NEXT:    v_cmp_u_f32_e32 vcc, v5, v58142; GFX908-NEXT:    v_cmp_u_f32_e64 s[4:5], v0, v08143; GFX908-NEXT:    v_cndmask_b32_e64 v0, v6, v7, s[4:5]8144; GFX908-NEXT:    v_cndmask_b32_e32 v5, v8, v9, vcc8145; GFX908-NEXT:    v_perm_b32 v0, v5, v0, s98146; GFX908-NEXT:    v_mov_b32_e32 v6, v18147; GFX908-NEXT:    v_mov_b32_e32 v5, v08148; GFX908-NEXT:    buffer_atomic_cmpswap v[5:6], v4, s[16:19], 0 offen offset:1024 glc8149; GFX908-NEXT:    s_waitcnt vmcnt(0)8150; GFX908-NEXT:    buffer_wbinvl18151; GFX908-NEXT:    v_cmp_eq_u32_e32 vcc, v5, v18152; GFX908-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]8153; GFX908-NEXT:    v_mov_b32_e32 v1, v58154; GFX908-NEXT:    s_andn2_b64 exec, exec, s[6:7]8155; GFX908-NEXT:    s_cbranch_execnz .LBB20_18156; GFX908-NEXT:  ; %bb.2: ; %atomicrmw.end8157; GFX908-NEXT:    s_or_b64 exec, exec, s[6:7]8158; GFX908-NEXT:    s_setpc_b64 s[30:31]8159;8160; GFX8-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_v2bf16__offset__amdgpu_no_fine_grained_memory:8161; GFX8:       ; %bb.0:8162; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8163; GFX8-NEXT:    v_mov_b32_e32 v1, s208164; GFX8-NEXT:    buffer_load_dword v1, v1, s[16:19], 0 offen offset:10248165; GFX8-NEXT:    s_mov_b64 s[6:7], 08166; GFX8-NEXT:    v_lshlrev_b32_e32 v2, 16, v08167; GFX8-NEXT:    v_and_b32_e32 v3, 0xffff0000, v08168; GFX8-NEXT:    v_mov_b32_e32 v4, s208169; GFX8-NEXT:  .LBB20_1: ; %atomicrmw.start8170; GFX8-NEXT:    ; =>This Inner Loop Header: Depth=18171; GFX8-NEXT:    s_waitcnt vmcnt(0)8172; GFX8-NEXT:    v_lshlrev_b32_e32 v0, 16, v18173; GFX8-NEXT:    v_and_b32_e32 v5, 0xffff0000, v18174; GFX8-NEXT:    v_min_f32_e32 v0, v0, v28175; GFX8-NEXT:    v_min_f32_e32 v5, v5, v38176; GFX8-NEXT:    v_bfe_u32 v6, v0, 16, 18177; GFX8-NEXT:    v_bfe_u32 v8, v5, 16, 18178; GFX8-NEXT:    v_add_u32_e32 v6, vcc, v6, v08179; GFX8-NEXT:    v_add_u32_e32 v8, vcc, v8, v58180; GFX8-NEXT:    v_add_u32_e32 v6, vcc, 0x7fff, v68181; GFX8-NEXT:    v_add_u32_e32 v8, vcc, 0x7fff, v88182; GFX8-NEXT:    v_or_b32_e32 v9, 0x400000, v58183; GFX8-NEXT:    v_cmp_u_f32_e32 vcc, v5, v58184; GFX8-NEXT:    v_or_b32_e32 v7, 0x400000, v08185; GFX8-NEXT:    v_cmp_u_f32_e64 s[4:5], v0, v08186; GFX8-NEXT:    v_cndmask_b32_e32 v5, v8, v9, vcc8187; GFX8-NEXT:    v_cndmask_b32_e64 v0, v6, v7, s[4:5]8188; GFX8-NEXT:    v_lshrrev_b32_e32 v5, 16, v58189; GFX8-NEXT:    v_alignbit_b32 v0, v5, v0, 168190; GFX8-NEXT:    v_mov_b32_e32 v6, v18191; GFX8-NEXT:    v_mov_b32_e32 v5, v08192; GFX8-NEXT:    buffer_atomic_cmpswap v[5:6], v4, s[16:19], 0 offen offset:1024 glc8193; GFX8-NEXT:    s_waitcnt vmcnt(0)8194; GFX8-NEXT:    buffer_wbinvl18195; GFX8-NEXT:    v_cmp_eq_u32_e32 vcc, v5, v18196; GFX8-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]8197; GFX8-NEXT:    v_mov_b32_e32 v1, v58198; GFX8-NEXT:    s_andn2_b64 exec, exec, s[6:7]8199; GFX8-NEXT:    s_cbranch_execnz .LBB20_18200; GFX8-NEXT:  ; %bb.2: ; %atomicrmw.end8201; GFX8-NEXT:    s_or_b64 exec, exec, s[6:7]8202; GFX8-NEXT:    s_setpc_b64 s[30:31]8203;8204; GFX7-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_v2bf16__offset__amdgpu_no_fine_grained_memory:8205; GFX7:       ; %bb.0:8206; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8207; GFX7-NEXT:    v_mov_b32_e32 v2, s208208; GFX7-NEXT:    buffer_load_dword v2, v2, s[16:19], 0 offen offset:10248209; GFX7-NEXT:    v_mul_f32_e32 v1, 1.0, v18210; GFX7-NEXT:    v_mul_f32_e32 v3, 1.0, v08211; GFX7-NEXT:    s_mov_b64 s[4:5], 08212; GFX7-NEXT:    v_and_b32_e32 v0, 0xffff0000, v18213; GFX7-NEXT:    v_and_b32_e32 v1, 0xffff0000, v38214; GFX7-NEXT:    s_waitcnt vmcnt(0)8215; GFX7-NEXT:    v_and_b32_e32 v4, 0xffff0000, v28216; GFX7-NEXT:    v_lshlrev_b32_e32 v3, 16, v28217; GFX7-NEXT:    v_mov_b32_e32 v2, s208218; GFX7-NEXT:  .LBB20_1: ; %atomicrmw.start8219; GFX7-NEXT:    ; =>This Inner Loop Header: Depth=18220; GFX7-NEXT:    v_mul_f32_e32 v4, 1.0, v48221; GFX7-NEXT:    v_mul_f32_e32 v3, 1.0, v38222; GFX7-NEXT:    v_and_b32_e32 v5, 0xffff0000, v48223; GFX7-NEXT:    v_and_b32_e32 v6, 0xffff0000, v38224; GFX7-NEXT:    v_lshrrev_b32_e32 v4, 16, v48225; GFX7-NEXT:    v_min_f32_e32 v5, v5, v08226; GFX7-NEXT:    v_min_f32_e32 v6, v6, v18227; GFX7-NEXT:    v_alignbit_b32 v4, v4, v3, 168228; GFX7-NEXT:    v_lshrrev_b32_e32 v3, 16, v58229; GFX7-NEXT:    v_alignbit_b32 v3, v3, v6, 168230; GFX7-NEXT:    v_mov_b32_e32 v6, v48231; GFX7-NEXT:    v_mov_b32_e32 v5, v38232; GFX7-NEXT:    buffer_atomic_cmpswap v[5:6], v2, s[16:19], 0 offen offset:1024 glc8233; GFX7-NEXT:    s_waitcnt vmcnt(0)8234; GFX7-NEXT:    buffer_wbinvl18235; GFX7-NEXT:    v_cmp_eq_u32_e32 vcc, v5, v48236; GFX7-NEXT:    v_and_b32_e32 v4, 0xffff0000, v58237; GFX7-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]8238; GFX7-NEXT:    v_lshlrev_b32_e32 v3, 16, v58239; GFX7-NEXT:    s_andn2_b64 exec, exec, s[4:5]8240; GFX7-NEXT:    s_cbranch_execnz .LBB20_18241; GFX7-NEXT:  ; %bb.2: ; %atomicrmw.end8242; GFX7-NEXT:    s_or_b64 exec, exec, s[4:5]8243; GFX7-NEXT:    s_setpc_b64 s[30:31]8244;8245; GFX6-LABEL: buffer_fat_ptr_agent_atomic_fmin_noret_v2bf16__offset__amdgpu_no_fine_grained_memory:8246; GFX6:       ; %bb.0:8247; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8248; GFX6-NEXT:    v_mov_b32_e32 v2, s208249; GFX6-NEXT:    buffer_load_dword v2, v2, s[16:19], 0 offen offset:10248250; GFX6-NEXT:    s_add_i32 s6, s20, 0x4008251; GFX6-NEXT:    v_mul_f32_e32 v1, 1.0, v18252; GFX6-NEXT:    v_mul_f32_e32 v3, 1.0, v08253; GFX6-NEXT:    s_mov_b64 s[4:5], 08254; GFX6-NEXT:    v_and_b32_e32 v0, 0xffff0000, v18255; GFX6-NEXT:    v_and_b32_e32 v1, 0xffff0000, v38256; GFX6-NEXT:    s_waitcnt vmcnt(0)8257; GFX6-NEXT:    v_and_b32_e32 v4, 0xffff0000, v28258; GFX6-NEXT:    v_lshlrev_b32_e32 v3, 16, v28259; GFX6-NEXT:    v_mov_b32_e32 v2, s68260; GFX6-NEXT:  .LBB20_1: ; %atomicrmw.start8261; GFX6-NEXT:    ; =>This Inner Loop Header: Depth=18262; GFX6-NEXT:    v_mul_f32_e32 v4, 1.0, v48263; GFX6-NEXT:    v_mul_f32_e32 v3, 1.0, v38264; GFX6-NEXT:    s_waitcnt expcnt(0)8265; GFX6-NEXT:    v_and_b32_e32 v5, 0xffff0000, v48266; GFX6-NEXT:    v_and_b32_e32 v6, 0xffff0000, v38267; GFX6-NEXT:    v_lshrrev_b32_e32 v4, 16, v48268; GFX6-NEXT:    v_min_f32_e32 v5, v5, v08269; GFX6-NEXT:    v_min_f32_e32 v6, v6, v18270; GFX6-NEXT:    v_alignbit_b32 v4, v4, v3, 168271; GFX6-NEXT:    v_lshrrev_b32_e32 v3, 16, v58272; GFX6-NEXT:    v_alignbit_b32 v3, v3, v6, 168273; GFX6-NEXT:    v_mov_b32_e32 v6, v48274; GFX6-NEXT:    v_mov_b32_e32 v5, v38275; GFX6-NEXT:    buffer_atomic_cmpswap v[5:6], v2, s[16:19], 0 offen glc8276; GFX6-NEXT:    s_waitcnt vmcnt(0)8277; GFX6-NEXT:    buffer_wbinvl18278; GFX6-NEXT:    v_cmp_eq_u32_e32 vcc, v5, v48279; GFX6-NEXT:    v_and_b32_e32 v4, 0xffff0000, v58280; GFX6-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]8281; GFX6-NEXT:    v_lshlrev_b32_e32 v3, 16, v58282; GFX6-NEXT:    s_andn2_b64 exec, exec, s[4:5]8283; GFX6-NEXT:    s_cbranch_execnz .LBB20_18284; GFX6-NEXT:  ; %bb.2: ; %atomicrmw.end8285; GFX6-NEXT:    s_or_b64 exec, exec, s[4:5]8286; GFX6-NEXT:    s_waitcnt expcnt(0)8287; GFX6-NEXT:    s_setpc_b64 s[30:31]8288  %gep = getelementptr <2 x bfloat>, ptr addrspace(7) %ptr, i32 2568289  %unused = atomicrmw fmin ptr addrspace(7) %gep, <2 x bfloat> %val syncscope("agent") seq_cst, !amdgpu.no.fine.grained.memory !08290  ret void8291}8292 8293define <2 x bfloat> @buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__waterfall__amdgpu_no_fine_grained_memory(ptr addrspace(7) %ptr, <2 x bfloat> %val) #0 {8294; GFX12-TRUE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__waterfall__amdgpu_no_fine_grained_memory:8295; GFX12-TRUE16:       ; %bb.0:8296; GFX12-TRUE16-NEXT:    s_wait_loadcnt_dscnt 0x08297; GFX12-TRUE16-NEXT:    s_wait_expcnt 0x08298; GFX12-TRUE16-NEXT:    s_wait_samplecnt 0x08299; GFX12-TRUE16-NEXT:    s_wait_bvhcnt 0x08300; GFX12-TRUE16-NEXT:    s_wait_kmcnt 0x08301; GFX12-TRUE16-NEXT:    s_mov_b32 s1, exec_lo8302; GFX12-TRUE16-NEXT:  .LBB21_1: ; =>This Inner Loop Header: Depth=18303; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s4, v08304; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s5, v18305; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s6, v28306; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s7, v38307; GFX12-TRUE16-NEXT:    s_wait_alu depctr_va_sdst(0)8308; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)8309; GFX12-TRUE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]8310; GFX12-TRUE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]8311; GFX12-TRUE16-NEXT:    s_and_b32 s0, vcc_lo, s08312; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)8313; GFX12-TRUE16-NEXT:    s_and_saveexec_b32 s0, s08314; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x08315; GFX12-TRUE16-NEXT:    buffer_load_b32 v7, v4, s[4:7], null offen offset:10248316; GFX12-TRUE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s08317; GFX12-TRUE16-NEXT:    s_cbranch_execnz .LBB21_18318; GFX12-TRUE16-NEXT:  ; %bb.2:8319; GFX12-TRUE16-NEXT:    s_mov_b32 exec_lo, s18320; GFX12-TRUE16-NEXT:    v_and_b32_e32 v8, 0xffff0000, v58321; GFX12-TRUE16-NEXT:    v_lshlrev_b32_e32 v9, 16, v58322; GFX12-TRUE16-NEXT:    s_mov_b32 s1, 08323; GFX12-TRUE16-NEXT:  .LBB21_3: ; %atomicrmw.start8324; GFX12-TRUE16-NEXT:    ; =>This Loop Header: Depth=18325; GFX12-TRUE16-NEXT:    ; Child Loop BB21_4 Depth 28326; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x08327; GFX12-TRUE16-NEXT:    v_and_b32_e32 v6, 0xffff0000, v78328; GFX12-TRUE16-NEXT:    v_lshlrev_b32_e32 v5, 16, v78329; GFX12-TRUE16-NEXT:    s_mov_b32 s2, exec_lo8330; GFX12-TRUE16-NEXT:    s_wait_storecnt 0x08331; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)8332; GFX12-TRUE16-NEXT:    v_dual_min_num_f32 v6, v6, v8 :: v_dual_min_num_f32 v5, v5, v98333; GFX12-TRUE16-NEXT:    v_bfe_u32 v11, v6, 16, 18334; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_2)8335; GFX12-TRUE16-NEXT:    v_bfe_u32 v10, v5, 16, 18336; GFX12-TRUE16-NEXT:    v_or_b32_e32 v12, 0x400000, v58337; GFX12-TRUE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v5, v58338; GFX12-TRUE16-NEXT:    v_or_b32_e32 v13, 0x400000, v68339; GFX12-TRUE16-NEXT:    v_add3_u32 v11, v11, v6, 0x7fff8340; GFX12-TRUE16-NEXT:    v_add3_u32 v10, v10, v5, 0x7fff8341; GFX12-TRUE16-NEXT:    s_wait_alu depctr_va_vcc(0)8342; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_3) | instid1(VALU_DEP_3)8343; GFX12-TRUE16-NEXT:    v_cndmask_b32_e32 v5, v10, v12, vcc_lo8344; GFX12-TRUE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v6, v68345; GFX12-TRUE16-NEXT:    s_wait_alu depctr_va_vcc(0)8346; GFX12-TRUE16-NEXT:    v_cndmask_b32_e32 v6, v11, v13, vcc_lo8347; GFX12-TRUE16-NEXT:    v_mov_b16_e32 v6.l, v5.h8348; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)8349; GFX12-TRUE16-NEXT:    v_mov_b32_e32 v5, v68350; GFX12-TRUE16-NEXT:    v_mov_b32_e32 v6, v78351; GFX12-TRUE16-NEXT:  .LBB21_4: ; Parent Loop BB21_3 Depth=18352; GFX12-TRUE16-NEXT:    ; => This Inner Loop Header: Depth=28353; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s4, v08354; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s5, v18355; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s6, v28356; GFX12-TRUE16-NEXT:    v_readfirstlane_b32 s7, v38357; GFX12-TRUE16-NEXT:    s_wait_alu depctr_va_sdst(0)8358; GFX12-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)8359; GFX12-TRUE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]8360; GFX12-TRUE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]8361; GFX12-TRUE16-NEXT:    s_and_b32 s0, vcc_lo, s08362; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)8363; GFX12-TRUE16-NEXT:    s_and_saveexec_b32 s0, s08364; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x08365; GFX12-TRUE16-NEXT:    buffer_atomic_cmpswap_b32 v[5:6], v4, s[4:7], null offen offset:1024 th:TH_ATOMIC_RETURN8366; GFX12-TRUE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s08367; GFX12-TRUE16-NEXT:    s_cbranch_execnz .LBB21_48368; GFX12-TRUE16-NEXT:  ; %bb.5: ; in Loop: Header=BB21_3 Depth=18369; GFX12-TRUE16-NEXT:    s_mov_b32 exec_lo, s28370; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x08371; GFX12-TRUE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v5, v78372; GFX12-TRUE16-NEXT:    v_mov_b32_e32 v7, v58373; GFX12-TRUE16-NEXT:    global_inv scope:SCOPE_DEV8374; GFX12-TRUE16-NEXT:    s_or_b32 s1, vcc_lo, s18375; GFX12-TRUE16-NEXT:    s_wait_alu depctr_sa_sdst(0)8376; GFX12-TRUE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s18377; GFX12-TRUE16-NEXT:    s_cbranch_execnz .LBB21_38378; GFX12-TRUE16-NEXT:  ; %bb.6: ; %atomicrmw.end8379; GFX12-TRUE16-NEXT:    s_or_b32 exec_lo, exec_lo, s18380; GFX12-TRUE16-NEXT:    v_mov_b32_e32 v0, v58381; GFX12-TRUE16-NEXT:    s_wait_loadcnt 0x08382; GFX12-TRUE16-NEXT:    s_setpc_b64 s[30:31]8383;8384; GFX12-FAKE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__waterfall__amdgpu_no_fine_grained_memory:8385; GFX12-FAKE16:       ; %bb.0:8386; GFX12-FAKE16-NEXT:    s_wait_loadcnt_dscnt 0x08387; GFX12-FAKE16-NEXT:    s_wait_expcnt 0x08388; GFX12-FAKE16-NEXT:    s_wait_samplecnt 0x08389; GFX12-FAKE16-NEXT:    s_wait_bvhcnt 0x08390; GFX12-FAKE16-NEXT:    s_wait_kmcnt 0x08391; GFX12-FAKE16-NEXT:    s_mov_b32 s1, exec_lo8392; GFX12-FAKE16-NEXT:  .LBB21_1: ; =>This Inner Loop Header: Depth=18393; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s4, v08394; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s5, v18395; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s6, v28396; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s7, v38397; GFX12-FAKE16-NEXT:    s_wait_alu depctr_va_sdst(0)8398; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)8399; GFX12-FAKE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]8400; GFX12-FAKE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]8401; GFX12-FAKE16-NEXT:    s_and_b32 s0, vcc_lo, s08402; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)8403; GFX12-FAKE16-NEXT:    s_and_saveexec_b32 s0, s08404; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x08405; GFX12-FAKE16-NEXT:    buffer_load_b32 v7, v4, s[4:7], null offen offset:10248406; GFX12-FAKE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s08407; GFX12-FAKE16-NEXT:    s_cbranch_execnz .LBB21_18408; GFX12-FAKE16-NEXT:  ; %bb.2:8409; GFX12-FAKE16-NEXT:    s_mov_b32 exec_lo, s18410; GFX12-FAKE16-NEXT:    v_lshlrev_b32_e32 v8, 16, v58411; GFX12-FAKE16-NEXT:    v_and_b32_e32 v9, 0xffff0000, v58412; GFX12-FAKE16-NEXT:    s_mov_b32 s1, 08413; GFX12-FAKE16-NEXT:  .LBB21_3: ; %atomicrmw.start8414; GFX12-FAKE16-NEXT:    ; =>This Loop Header: Depth=18415; GFX12-FAKE16-NEXT:    ; Child Loop BB21_4 Depth 28416; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x08417; GFX12-FAKE16-NEXT:    v_and_b32_e32 v6, 0xffff0000, v78418; GFX12-FAKE16-NEXT:    v_lshlrev_b32_e32 v5, 16, v78419; GFX12-FAKE16-NEXT:    s_mov_b32 s2, exec_lo8420; GFX12-FAKE16-NEXT:    s_wait_storecnt 0x08421; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)8422; GFX12-FAKE16-NEXT:    v_dual_min_num_f32 v6, v6, v9 :: v_dual_min_num_f32 v5, v5, v88423; GFX12-FAKE16-NEXT:    v_bfe_u32 v11, v6, 16, 18424; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_2)8425; GFX12-FAKE16-NEXT:    v_bfe_u32 v10, v5, 16, 18426; GFX12-FAKE16-NEXT:    v_or_b32_e32 v12, 0x400000, v58427; GFX12-FAKE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v5, v58428; GFX12-FAKE16-NEXT:    v_or_b32_e32 v13, 0x400000, v68429; GFX12-FAKE16-NEXT:    v_add3_u32 v11, v11, v6, 0x7fff8430; GFX12-FAKE16-NEXT:    v_add3_u32 v10, v10, v5, 0x7fff8431; GFX12-FAKE16-NEXT:    s_wait_alu depctr_va_vcc(0)8432; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_3) | instid1(VALU_DEP_1)8433; GFX12-FAKE16-NEXT:    v_cndmask_b32_e32 v5, v10, v12, vcc_lo8434; GFX12-FAKE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v6, v68435; GFX12-FAKE16-NEXT:    s_wait_alu depctr_va_vcc(0)8436; GFX12-FAKE16-NEXT:    v_cndmask_b32_e32 v6, v11, v13, vcc_lo8437; GFX12-FAKE16-NEXT:    v_perm_b32 v6, v6, v5, 0x70603028438; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1)8439; GFX12-FAKE16-NEXT:    v_mov_b32_e32 v5, v68440; GFX12-FAKE16-NEXT:    v_mov_b32_e32 v6, v78441; GFX12-FAKE16-NEXT:  .LBB21_4: ; Parent Loop BB21_3 Depth=18442; GFX12-FAKE16-NEXT:    ; => This Inner Loop Header: Depth=28443; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s4, v08444; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s5, v18445; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s6, v28446; GFX12-FAKE16-NEXT:    v_readfirstlane_b32 s7, v38447; GFX12-FAKE16-NEXT:    s_wait_alu depctr_va_sdst(0)8448; GFX12-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)8449; GFX12-FAKE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]8450; GFX12-FAKE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]8451; GFX12-FAKE16-NEXT:    s_and_b32 s0, vcc_lo, s08452; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)8453; GFX12-FAKE16-NEXT:    s_and_saveexec_b32 s0, s08454; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x08455; GFX12-FAKE16-NEXT:    buffer_atomic_cmpswap_b32 v[5:6], v4, s[4:7], null offen offset:1024 th:TH_ATOMIC_RETURN8456; GFX12-FAKE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s08457; GFX12-FAKE16-NEXT:    s_cbranch_execnz .LBB21_48458; GFX12-FAKE16-NEXT:  ; %bb.5: ; in Loop: Header=BB21_3 Depth=18459; GFX12-FAKE16-NEXT:    s_mov_b32 exec_lo, s28460; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x08461; GFX12-FAKE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v5, v78462; GFX12-FAKE16-NEXT:    v_mov_b32_e32 v7, v58463; GFX12-FAKE16-NEXT:    global_inv scope:SCOPE_DEV8464; GFX12-FAKE16-NEXT:    s_or_b32 s1, vcc_lo, s18465; GFX12-FAKE16-NEXT:    s_wait_alu depctr_sa_sdst(0)8466; GFX12-FAKE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s18467; GFX12-FAKE16-NEXT:    s_cbranch_execnz .LBB21_38468; GFX12-FAKE16-NEXT:  ; %bb.6: ; %atomicrmw.end8469; GFX12-FAKE16-NEXT:    s_or_b32 exec_lo, exec_lo, s18470; GFX12-FAKE16-NEXT:    v_mov_b32_e32 v0, v58471; GFX12-FAKE16-NEXT:    s_wait_loadcnt 0x08472; GFX12-FAKE16-NEXT:    s_setpc_b64 s[30:31]8473;8474; GFX942-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__waterfall__amdgpu_no_fine_grained_memory:8475; GFX942:       ; %bb.0:8476; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8477; GFX942-NEXT:    s_mov_b64 s[2:3], exec8478; GFX942-NEXT:  .LBB21_1: ; =>This Inner Loop Header: Depth=18479; GFX942-NEXT:    v_readfirstlane_b32 s4, v08480; GFX942-NEXT:    v_readfirstlane_b32 s5, v18481; GFX942-NEXT:    v_readfirstlane_b32 s6, v28482; GFX942-NEXT:    v_readfirstlane_b32 s7, v38483; GFX942-NEXT:    v_cmp_eq_u64_e32 vcc, s[4:5], v[0:1]8484; GFX942-NEXT:    s_nop 08485; GFX942-NEXT:    v_cmp_eq_u64_e64 s[0:1], s[6:7], v[2:3]8486; GFX942-NEXT:    s_and_b64 s[0:1], vcc, s[0:1]8487; GFX942-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]8488; GFX942-NEXT:    buffer_load_dword v9, v4, s[4:7], 0 offen offset:10248489; GFX942-NEXT:    s_xor_b64 exec, exec, s[0:1]8490; GFX942-NEXT:    s_cbranch_execnz .LBB21_18491; GFX942-NEXT:  ; %bb.2:8492; GFX942-NEXT:    s_mov_b64 exec, s[2:3]8493; GFX942-NEXT:    s_mov_b64 s[2:3], 08494; GFX942-NEXT:    v_lshlrev_b32_e32 v10, 16, v58495; GFX942-NEXT:    s_movk_i32 s10, 0x7fff8496; GFX942-NEXT:    v_and_b32_e32 v5, 0xffff0000, v58497; GFX942-NEXT:    s_mov_b32 s11, 0x70603028498; GFX942-NEXT:  .LBB21_3: ; %atomicrmw.start8499; GFX942-NEXT:    ; =>This Loop Header: Depth=18500; GFX942-NEXT:    ; Child Loop BB21_4 Depth 28501; GFX942-NEXT:    s_waitcnt vmcnt(0)8502; GFX942-NEXT:    v_lshlrev_b32_e32 v6, 16, v98503; GFX942-NEXT:    v_min_f32_e32 v6, v6, v108504; GFX942-NEXT:    v_bfe_u32 v7, v6, 16, 18505; GFX942-NEXT:    v_add3_u32 v7, v7, v6, s108506; GFX942-NEXT:    v_or_b32_e32 v8, 0x400000, v68507; GFX942-NEXT:    v_cmp_u_f32_e32 vcc, v6, v68508; GFX942-NEXT:    s_mov_b64 s[8:9], exec8509; GFX942-NEXT:    buffer_wbl2 sc18510; GFX942-NEXT:    v_cndmask_b32_e32 v6, v7, v8, vcc8511; GFX942-NEXT:    v_and_b32_e32 v7, 0xffff0000, v98512; GFX942-NEXT:    v_min_f32_e32 v7, v7, v58513; GFX942-NEXT:    v_bfe_u32 v8, v7, 16, 18514; GFX942-NEXT:    v_add3_u32 v8, v8, v7, s108515; GFX942-NEXT:    v_or_b32_e32 v11, 0x400000, v78516; GFX942-NEXT:    v_cmp_u_f32_e32 vcc, v7, v78517; GFX942-NEXT:    s_nop 18518; GFX942-NEXT:    v_cndmask_b32_e32 v7, v8, v11, vcc8519; GFX942-NEXT:    v_perm_b32 v8, v7, v6, s118520; GFX942-NEXT:    v_mov_b64_e32 v[6:7], v[8:9]8521; GFX942-NEXT:  .LBB21_4: ; Parent Loop BB21_3 Depth=18522; GFX942-NEXT:    ; => This Inner Loop Header: Depth=28523; GFX942-NEXT:    v_readfirstlane_b32 s4, v08524; GFX942-NEXT:    v_readfirstlane_b32 s5, v18525; GFX942-NEXT:    v_readfirstlane_b32 s6, v28526; GFX942-NEXT:    v_readfirstlane_b32 s7, v38527; GFX942-NEXT:    v_cmp_eq_u64_e32 vcc, s[4:5], v[0:1]8528; GFX942-NEXT:    s_nop 08529; GFX942-NEXT:    v_cmp_eq_u64_e64 s[0:1], s[6:7], v[2:3]8530; GFX942-NEXT:    s_and_b64 s[0:1], vcc, s[0:1]8531; GFX942-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]8532; GFX942-NEXT:    s_waitcnt vmcnt(0)8533; GFX942-NEXT:    buffer_atomic_cmpswap v[6:7], v4, s[4:7], 0 offen offset:1024 sc08534; GFX942-NEXT:    s_xor_b64 exec, exec, s[0:1]8535; GFX942-NEXT:    s_cbranch_execnz .LBB21_48536; GFX942-NEXT:  ; %bb.5: ; in Loop: Header=BB21_3 Depth=18537; GFX942-NEXT:    s_mov_b64 exec, s[8:9]8538; GFX942-NEXT:    s_waitcnt vmcnt(0)8539; GFX942-NEXT:    v_cmp_eq_u32_e32 vcc, v6, v98540; GFX942-NEXT:    s_or_b64 s[2:3], vcc, s[2:3]8541; GFX942-NEXT:    v_mov_b32_e32 v9, v68542; GFX942-NEXT:    buffer_inv sc18543; GFX942-NEXT:    s_andn2_b64 exec, exec, s[2:3]8544; GFX942-NEXT:    s_cbranch_execnz .LBB21_38545; GFX942-NEXT:  ; %bb.6: ; %atomicrmw.end8546; GFX942-NEXT:    s_or_b64 exec, exec, s[2:3]8547; GFX942-NEXT:    v_mov_b32_e32 v0, v68548; GFX942-NEXT:    s_setpc_b64 s[30:31]8549;8550; GFX11-TRUE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__waterfall__amdgpu_no_fine_grained_memory:8551; GFX11-TRUE16:       ; %bb.0:8552; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8553; GFX11-TRUE16-NEXT:    s_mov_b32 s1, 08554; GFX11-TRUE16-NEXT:    s_mov_b32 s2, exec_lo8555; GFX11-TRUE16-NEXT:  .LBB21_1: ; =>This Inner Loop Header: Depth=18556; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s4, v08557; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s5, v18558; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s6, v28559; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s7, v38560; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)8561; GFX11-TRUE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]8562; GFX11-TRUE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]8563; GFX11-TRUE16-NEXT:    s_and_b32 s0, vcc_lo, s08564; GFX11-TRUE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)8565; GFX11-TRUE16-NEXT:    s_and_saveexec_b32 s0, s08566; GFX11-TRUE16-NEXT:    buffer_load_b32 v7, v4, s[4:7], 0 offen offset:10248567; GFX11-TRUE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s08568; GFX11-TRUE16-NEXT:    s_cbranch_execnz .LBB21_18569; GFX11-TRUE16-NEXT:  ; %bb.2:8570; GFX11-TRUE16-NEXT:    s_mov_b32 exec_lo, s28571; GFX11-TRUE16-NEXT:    v_and_b32_e32 v8, 0xffff0000, v58572; GFX11-TRUE16-NEXT:    v_lshlrev_b32_e32 v9, 16, v58573; GFX11-TRUE16-NEXT:    s_set_inst_prefetch_distance 0x18574; GFX11-TRUE16-NEXT:    .p2align 68575; GFX11-TRUE16-NEXT:  .LBB21_3: ; %atomicrmw.start8576; GFX11-TRUE16-NEXT:    ; =>This Loop Header: Depth=18577; GFX11-TRUE16-NEXT:    ; Child Loop BB21_4 Depth 28578; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0)8579; GFX11-TRUE16-NEXT:    v_and_b32_e32 v6, 0xffff0000, v78580; GFX11-TRUE16-NEXT:    v_lshlrev_b32_e32 v5, 16, v78581; GFX11-TRUE16-NEXT:    s_mov_b32 s2, exec_lo8582; GFX11-TRUE16-NEXT:    s_waitcnt_vscnt null, 0x08583; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)8584; GFX11-TRUE16-NEXT:    v_dual_min_f32 v6, v6, v8 :: v_dual_min_f32 v5, v5, v98585; GFX11-TRUE16-NEXT:    v_bfe_u32 v11, v6, 16, 18586; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_2)8587; GFX11-TRUE16-NEXT:    v_bfe_u32 v10, v5, 16, 18588; GFX11-TRUE16-NEXT:    v_or_b32_e32 v12, 0x400000, v58589; GFX11-TRUE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v5, v58590; GFX11-TRUE16-NEXT:    v_or_b32_e32 v13, 0x400000, v68591; GFX11-TRUE16-NEXT:    v_add3_u32 v11, v11, v6, 0x7fff8592; GFX11-TRUE16-NEXT:    v_add3_u32 v10, v10, v5, 0x7fff8593; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_4)8594; GFX11-TRUE16-NEXT:    v_cndmask_b32_e32 v5, v10, v12, vcc_lo8595; GFX11-TRUE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v6, v68596; GFX11-TRUE16-NEXT:    v_cndmask_b32_e32 v6, v11, v13, vcc_lo8597; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1)8598; GFX11-TRUE16-NEXT:    v_mov_b16_e32 v6.l, v5.h8599; GFX11-TRUE16-NEXT:    v_mov_b32_e32 v5, v68600; GFX11-TRUE16-NEXT:    v_mov_b32_e32 v6, v78601; GFX11-TRUE16-NEXT:  .LBB21_4: ; Parent Loop BB21_3 Depth=18602; GFX11-TRUE16-NEXT:    ; => This Inner Loop Header: Depth=28603; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s4, v08604; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s5, v18605; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s6, v28606; GFX11-TRUE16-NEXT:    v_readfirstlane_b32 s7, v38607; GFX11-TRUE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)8608; GFX11-TRUE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]8609; GFX11-TRUE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]8610; GFX11-TRUE16-NEXT:    s_and_b32 s0, vcc_lo, s08611; GFX11-TRUE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)8612; GFX11-TRUE16-NEXT:    s_and_saveexec_b32 s0, s08613; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0)8614; GFX11-TRUE16-NEXT:    buffer_atomic_cmpswap_b32 v[5:6], v4, s[4:7], 0 offen offset:1024 glc8615; GFX11-TRUE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s08616; GFX11-TRUE16-NEXT:    s_cbranch_execnz .LBB21_48617; GFX11-TRUE16-NEXT:  ; %bb.5: ; in Loop: Header=BB21_3 Depth=18618; GFX11-TRUE16-NEXT:    s_mov_b32 exec_lo, s28619; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0)8620; GFX11-TRUE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v5, v78621; GFX11-TRUE16-NEXT:    v_mov_b32_e32 v7, v58622; GFX11-TRUE16-NEXT:    buffer_gl1_inv8623; GFX11-TRUE16-NEXT:    buffer_gl0_inv8624; GFX11-TRUE16-NEXT:    s_or_b32 s1, vcc_lo, s18625; GFX11-TRUE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)8626; GFX11-TRUE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s18627; GFX11-TRUE16-NEXT:    s_cbranch_execnz .LBB21_38628; GFX11-TRUE16-NEXT:  ; %bb.6: ; %atomicrmw.end8629; GFX11-TRUE16-NEXT:    s_set_inst_prefetch_distance 0x28630; GFX11-TRUE16-NEXT:    s_or_b32 exec_lo, exec_lo, s18631; GFX11-TRUE16-NEXT:    v_mov_b32_e32 v0, v58632; GFX11-TRUE16-NEXT:    s_setpc_b64 s[30:31]8633;8634; GFX11-FAKE16-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__waterfall__amdgpu_no_fine_grained_memory:8635; GFX11-FAKE16:       ; %bb.0:8636; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8637; GFX11-FAKE16-NEXT:    s_mov_b32 s1, 08638; GFX11-FAKE16-NEXT:    s_mov_b32 s2, exec_lo8639; GFX11-FAKE16-NEXT:  .LBB21_1: ; =>This Inner Loop Header: Depth=18640; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s4, v08641; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s5, v18642; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s6, v28643; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s7, v38644; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)8645; GFX11-FAKE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]8646; GFX11-FAKE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]8647; GFX11-FAKE16-NEXT:    s_and_b32 s0, vcc_lo, s08648; GFX11-FAKE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)8649; GFX11-FAKE16-NEXT:    s_and_saveexec_b32 s0, s08650; GFX11-FAKE16-NEXT:    buffer_load_b32 v7, v4, s[4:7], 0 offen offset:10248651; GFX11-FAKE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s08652; GFX11-FAKE16-NEXT:    s_cbranch_execnz .LBB21_18653; GFX11-FAKE16-NEXT:  ; %bb.2:8654; GFX11-FAKE16-NEXT:    s_mov_b32 exec_lo, s28655; GFX11-FAKE16-NEXT:    v_lshlrev_b32_e32 v8, 16, v58656; GFX11-FAKE16-NEXT:    v_and_b32_e32 v9, 0xffff0000, v58657; GFX11-FAKE16-NEXT:    s_set_inst_prefetch_distance 0x18658; GFX11-FAKE16-NEXT:    .p2align 68659; GFX11-FAKE16-NEXT:  .LBB21_3: ; %atomicrmw.start8660; GFX11-FAKE16-NEXT:    ; =>This Loop Header: Depth=18661; GFX11-FAKE16-NEXT:    ; Child Loop BB21_4 Depth 28662; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0)8663; GFX11-FAKE16-NEXT:    v_and_b32_e32 v6, 0xffff0000, v78664; GFX11-FAKE16-NEXT:    v_lshlrev_b32_e32 v5, 16, v78665; GFX11-FAKE16-NEXT:    s_mov_b32 s2, exec_lo8666; GFX11-FAKE16-NEXT:    s_waitcnt_vscnt null, 0x08667; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)8668; GFX11-FAKE16-NEXT:    v_dual_min_f32 v6, v6, v9 :: v_dual_min_f32 v5, v5, v88669; GFX11-FAKE16-NEXT:    v_bfe_u32 v11, v6, 16, 18670; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_2)8671; GFX11-FAKE16-NEXT:    v_bfe_u32 v10, v5, 16, 18672; GFX11-FAKE16-NEXT:    v_or_b32_e32 v12, 0x400000, v58673; GFX11-FAKE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v5, v58674; GFX11-FAKE16-NEXT:    v_or_b32_e32 v13, 0x400000, v68675; GFX11-FAKE16-NEXT:    v_add3_u32 v11, v11, v6, 0x7fff8676; GFX11-FAKE16-NEXT:    v_add3_u32 v10, v10, v5, 0x7fff8677; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_4)8678; GFX11-FAKE16-NEXT:    v_cndmask_b32_e32 v5, v10, v12, vcc_lo8679; GFX11-FAKE16-NEXT:    v_cmp_u_f32_e32 vcc_lo, v6, v68680; GFX11-FAKE16-NEXT:    v_cndmask_b32_e32 v6, v11, v13, vcc_lo8681; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)8682; GFX11-FAKE16-NEXT:    v_perm_b32 v6, v6, v5, 0x70603028683; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v5, v68684; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v6, v78685; GFX11-FAKE16-NEXT:  .LBB21_4: ; Parent Loop BB21_3 Depth=18686; GFX11-FAKE16-NEXT:    ; => This Inner Loop Header: Depth=28687; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s4, v08688; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s5, v18689; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s6, v28690; GFX11-FAKE16-NEXT:    v_readfirstlane_b32 s7, v38691; GFX11-FAKE16-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)8692; GFX11-FAKE16-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]8693; GFX11-FAKE16-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]8694; GFX11-FAKE16-NEXT:    s_and_b32 s0, vcc_lo, s08695; GFX11-FAKE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)8696; GFX11-FAKE16-NEXT:    s_and_saveexec_b32 s0, s08697; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0)8698; GFX11-FAKE16-NEXT:    buffer_atomic_cmpswap_b32 v[5:6], v4, s[4:7], 0 offen offset:1024 glc8699; GFX11-FAKE16-NEXT:    s_xor_b32 exec_lo, exec_lo, s08700; GFX11-FAKE16-NEXT:    s_cbranch_execnz .LBB21_48701; GFX11-FAKE16-NEXT:  ; %bb.5: ; in Loop: Header=BB21_3 Depth=18702; GFX11-FAKE16-NEXT:    s_mov_b32 exec_lo, s28703; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0)8704; GFX11-FAKE16-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v5, v78705; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v7, v58706; GFX11-FAKE16-NEXT:    buffer_gl1_inv8707; GFX11-FAKE16-NEXT:    buffer_gl0_inv8708; GFX11-FAKE16-NEXT:    s_or_b32 s1, vcc_lo, s18709; GFX11-FAKE16-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)8710; GFX11-FAKE16-NEXT:    s_and_not1_b32 exec_lo, exec_lo, s18711; GFX11-FAKE16-NEXT:    s_cbranch_execnz .LBB21_38712; GFX11-FAKE16-NEXT:  ; %bb.6: ; %atomicrmw.end8713; GFX11-FAKE16-NEXT:    s_set_inst_prefetch_distance 0x28714; GFX11-FAKE16-NEXT:    s_or_b32 exec_lo, exec_lo, s18715; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v0, v58716; GFX11-FAKE16-NEXT:    s_setpc_b64 s[30:31]8717;8718; GFX10-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__waterfall__amdgpu_no_fine_grained_memory:8719; GFX10:       ; %bb.0:8720; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8721; GFX10-NEXT:    s_mov_b32 s5, 08722; GFX10-NEXT:    s_mov_b32 s6, exec_lo8723; GFX10-NEXT:  .LBB21_1: ; =>This Inner Loop Header: Depth=18724; GFX10-NEXT:    v_readfirstlane_b32 s8, v08725; GFX10-NEXT:    v_readfirstlane_b32 s9, v18726; GFX10-NEXT:    v_readfirstlane_b32 s10, v28727; GFX10-NEXT:    v_readfirstlane_b32 s11, v38728; GFX10-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[8:9], v[0:1]8729; GFX10-NEXT:    v_cmp_eq_u64_e64 s4, s[10:11], v[2:3]8730; GFX10-NEXT:    s_and_b32 s4, vcc_lo, s48731; GFX10-NEXT:    s_and_saveexec_b32 s4, s48732; GFX10-NEXT:    buffer_load_dword v7, v4, s[8:11], 0 offen offset:10248733; GFX10-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)8734; GFX10-NEXT:    s_xor_b32 exec_lo, exec_lo, s48735; GFX10-NEXT:    s_cbranch_execnz .LBB21_18736; GFX10-NEXT:  ; %bb.2:8737; GFX10-NEXT:    s_mov_b32 exec_lo, s68738; GFX10-NEXT:    v_lshlrev_b32_e32 v8, 16, v58739; GFX10-NEXT:    v_and_b32_e32 v9, 0xffff0000, v58740; GFX10-NEXT:  .LBB21_3: ; %atomicrmw.start8741; GFX10-NEXT:    ; =>This Loop Header: Depth=18742; GFX10-NEXT:    ; Child Loop BB21_4 Depth 28743; GFX10-NEXT:    s_waitcnt vmcnt(0)8744; GFX10-NEXT:    v_lshlrev_b32_e32 v5, 16, v78745; GFX10-NEXT:    v_and_b32_e32 v6, 0xffff0000, v78746; GFX10-NEXT:    s_mov_b32 s6, exec_lo8747; GFX10-NEXT:    s_waitcnt_vscnt null, 0x08748; GFX10-NEXT:    v_min_f32_e32 v5, v5, v88749; GFX10-NEXT:    v_min_f32_e32 v6, v6, v98750; GFX10-NEXT:    v_bfe_u32 v10, v5, 16, 18751; GFX10-NEXT:    v_bfe_u32 v11, v6, 16, 18752; GFX10-NEXT:    v_or_b32_e32 v12, 0x400000, v58753; GFX10-NEXT:    v_cmp_u_f32_e32 vcc_lo, v5, v58754; GFX10-NEXT:    v_or_b32_e32 v13, 0x400000, v68755; GFX10-NEXT:    v_add3_u32 v10, v10, v5, 0x7fff8756; GFX10-NEXT:    v_add3_u32 v11, v11, v6, 0x7fff8757; GFX10-NEXT:    v_cndmask_b32_e32 v5, v10, v12, vcc_lo8758; GFX10-NEXT:    v_cmp_u_f32_e32 vcc_lo, v6, v68759; GFX10-NEXT:    v_cndmask_b32_e32 v6, v11, v13, vcc_lo8760; GFX10-NEXT:    v_perm_b32 v6, v6, v5, 0x70603028761; GFX10-NEXT:    v_mov_b32_e32 v5, v68762; GFX10-NEXT:    v_mov_b32_e32 v6, v78763; GFX10-NEXT:  .LBB21_4: ; Parent Loop BB21_3 Depth=18764; GFX10-NEXT:    ; => This Inner Loop Header: Depth=28765; GFX10-NEXT:    v_readfirstlane_b32 s8, v08766; GFX10-NEXT:    v_readfirstlane_b32 s9, v18767; GFX10-NEXT:    v_readfirstlane_b32 s10, v28768; GFX10-NEXT:    v_readfirstlane_b32 s11, v38769; GFX10-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[8:9], v[0:1]8770; GFX10-NEXT:    v_cmp_eq_u64_e64 s4, s[10:11], v[2:3]8771; GFX10-NEXT:    s_and_b32 s4, vcc_lo, s48772; GFX10-NEXT:    s_and_saveexec_b32 s4, s48773; GFX10-NEXT:    s_waitcnt vmcnt(0)8774; GFX10-NEXT:    buffer_atomic_cmpswap v[5:6], v4, s[8:11], 0 offen offset:1024 glc8775; GFX10-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)8776; GFX10-NEXT:    s_xor_b32 exec_lo, exec_lo, s48777; GFX10-NEXT:    s_cbranch_execnz .LBB21_48778; GFX10-NEXT:  ; %bb.5: ; in Loop: Header=BB21_3 Depth=18779; GFX10-NEXT:    s_mov_b32 exec_lo, s68780; GFX10-NEXT:    s_waitcnt vmcnt(0)8781; GFX10-NEXT:    v_cmp_eq_u32_e32 vcc_lo, v5, v78782; GFX10-NEXT:    v_mov_b32_e32 v7, v58783; GFX10-NEXT:    buffer_gl1_inv8784; GFX10-NEXT:    buffer_gl0_inv8785; GFX10-NEXT:    s_or_b32 s5, vcc_lo, s58786; GFX10-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)8787; GFX10-NEXT:    s_andn2_b32 exec_lo, exec_lo, s58788; GFX10-NEXT:    s_cbranch_execnz .LBB21_38789; GFX10-NEXT:  ; %bb.6: ; %atomicrmw.end8790; GFX10-NEXT:    s_or_b32 exec_lo, exec_lo, s58791; GFX10-NEXT:    v_mov_b32_e32 v0, v58792; GFX10-NEXT:    s_setpc_b64 s[30:31]8793;8794; GFX90A-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__waterfall__amdgpu_no_fine_grained_memory:8795; GFX90A:       ; %bb.0:8796; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8797; GFX90A-NEXT:    s_mov_b64 s[6:7], exec8798; GFX90A-NEXT:  .LBB21_1: ; =>This Inner Loop Header: Depth=18799; GFX90A-NEXT:    v_readfirstlane_b32 s8, v08800; GFX90A-NEXT:    v_readfirstlane_b32 s9, v18801; GFX90A-NEXT:    v_readfirstlane_b32 s10, v28802; GFX90A-NEXT:    v_readfirstlane_b32 s11, v38803; GFX90A-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]8804; GFX90A-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]8805; GFX90A-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]8806; GFX90A-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]8807; GFX90A-NEXT:    s_nop 08808; GFX90A-NEXT:    buffer_load_dword v9, v4, s[8:11], 0 offen offset:10248809; GFX90A-NEXT:    s_xor_b64 exec, exec, s[4:5]8810; GFX90A-NEXT:    s_cbranch_execnz .LBB21_18811; GFX90A-NEXT:  ; %bb.2:8812; GFX90A-NEXT:    s_mov_b64 exec, s[6:7]8813; GFX90A-NEXT:    s_mov_b64 s[6:7], 08814; GFX90A-NEXT:    v_lshlrev_b32_e32 v10, 16, v58815; GFX90A-NEXT:    s_movk_i32 s14, 0x7fff8816; GFX90A-NEXT:    v_and_b32_e32 v5, 0xffff0000, v58817; GFX90A-NEXT:    s_mov_b32 s15, 0x70603028818; GFX90A-NEXT:  .LBB21_3: ; %atomicrmw.start8819; GFX90A-NEXT:    ; =>This Loop Header: Depth=18820; GFX90A-NEXT:    ; Child Loop BB21_4 Depth 28821; GFX90A-NEXT:    s_waitcnt vmcnt(0)8822; GFX90A-NEXT:    v_lshlrev_b32_e32 v6, 16, v98823; GFX90A-NEXT:    v_min_f32_e32 v6, v6, v108824; GFX90A-NEXT:    v_bfe_u32 v7, v6, 16, 18825; GFX90A-NEXT:    v_add3_u32 v7, v7, v6, s148826; GFX90A-NEXT:    v_or_b32_e32 v8, 0x400000, v68827; GFX90A-NEXT:    v_cmp_u_f32_e32 vcc, v6, v68828; GFX90A-NEXT:    v_cndmask_b32_e32 v6, v7, v8, vcc8829; GFX90A-NEXT:    v_and_b32_e32 v7, 0xffff0000, v98830; GFX90A-NEXT:    v_min_f32_e32 v7, v7, v58831; GFX90A-NEXT:    v_bfe_u32 v8, v7, 16, 18832; GFX90A-NEXT:    v_add3_u32 v8, v8, v7, s148833; GFX90A-NEXT:    v_or_b32_e32 v11, 0x400000, v78834; GFX90A-NEXT:    v_cmp_u_f32_e32 vcc, v7, v78835; GFX90A-NEXT:    v_cndmask_b32_e32 v7, v8, v11, vcc8836; GFX90A-NEXT:    v_perm_b32 v8, v7, v6, s158837; GFX90A-NEXT:    s_mov_b64 s[12:13], exec8838; GFX90A-NEXT:    v_pk_mov_b32 v[6:7], v[8:9], v[8:9] op_sel:[0,1]8839; GFX90A-NEXT:  .LBB21_4: ; Parent Loop BB21_3 Depth=18840; GFX90A-NEXT:    ; => This Inner Loop Header: Depth=28841; GFX90A-NEXT:    v_readfirstlane_b32 s8, v08842; GFX90A-NEXT:    v_readfirstlane_b32 s9, v18843; GFX90A-NEXT:    v_readfirstlane_b32 s10, v28844; GFX90A-NEXT:    v_readfirstlane_b32 s11, v38845; GFX90A-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]8846; GFX90A-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]8847; GFX90A-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]8848; GFX90A-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]8849; GFX90A-NEXT:    s_waitcnt vmcnt(0)8850; GFX90A-NEXT:    buffer_atomic_cmpswap v[6:7], v4, s[8:11], 0 offen offset:1024 glc8851; GFX90A-NEXT:    s_xor_b64 exec, exec, s[4:5]8852; GFX90A-NEXT:    s_cbranch_execnz .LBB21_48853; GFX90A-NEXT:  ; %bb.5: ; in Loop: Header=BB21_3 Depth=18854; GFX90A-NEXT:    s_mov_b64 exec, s[12:13]8855; GFX90A-NEXT:    s_waitcnt vmcnt(0)8856; GFX90A-NEXT:    v_cmp_eq_u32_e32 vcc, v6, v98857; GFX90A-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]8858; GFX90A-NEXT:    v_mov_b32_e32 v9, v68859; GFX90A-NEXT:    buffer_wbinvl18860; GFX90A-NEXT:    s_andn2_b64 exec, exec, s[6:7]8861; GFX90A-NEXT:    s_cbranch_execnz .LBB21_38862; GFX90A-NEXT:  ; %bb.6: ; %atomicrmw.end8863; GFX90A-NEXT:    s_or_b64 exec, exec, s[6:7]8864; GFX90A-NEXT:    v_mov_b32_e32 v0, v68865; GFX90A-NEXT:    s_setpc_b64 s[30:31]8866;8867; GFX908-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__waterfall__amdgpu_no_fine_grained_memory:8868; GFX908:       ; %bb.0:8869; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8870; GFX908-NEXT:    s_mov_b64 s[6:7], exec8871; GFX908-NEXT:  .LBB21_1: ; =>This Inner Loop Header: Depth=18872; GFX908-NEXT:    v_readfirstlane_b32 s8, v08873; GFX908-NEXT:    v_readfirstlane_b32 s9, v18874; GFX908-NEXT:    v_readfirstlane_b32 s10, v28875; GFX908-NEXT:    v_readfirstlane_b32 s11, v38876; GFX908-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]8877; GFX908-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]8878; GFX908-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]8879; GFX908-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]8880; GFX908-NEXT:    s_nop 08881; GFX908-NEXT:    buffer_load_dword v7, v4, s[8:11], 0 offen offset:10248882; GFX908-NEXT:    s_xor_b64 exec, exec, s[4:5]8883; GFX908-NEXT:    s_cbranch_execnz .LBB21_18884; GFX908-NEXT:  ; %bb.2:8885; GFX908-NEXT:    s_mov_b64 exec, s[6:7]8886; GFX908-NEXT:    s_mov_b64 s[6:7], 08887; GFX908-NEXT:    v_lshlrev_b32_e32 v8, 16, v58888; GFX908-NEXT:    s_movk_i32 s14, 0x7fff8889; GFX908-NEXT:    v_and_b32_e32 v9, 0xffff0000, v58890; GFX908-NEXT:    s_mov_b32 s15, 0x70603028891; GFX908-NEXT:  .LBB21_3: ; %atomicrmw.start8892; GFX908-NEXT:    ; =>This Loop Header: Depth=18893; GFX908-NEXT:    ; Child Loop BB21_4 Depth 28894; GFX908-NEXT:    s_waitcnt vmcnt(0)8895; GFX908-NEXT:    v_lshlrev_b32_e32 v5, 16, v78896; GFX908-NEXT:    v_min_f32_e32 v5, v5, v88897; GFX908-NEXT:    v_bfe_u32 v6, v5, 16, 18898; GFX908-NEXT:    v_add3_u32 v6, v6, v5, s148899; GFX908-NEXT:    v_or_b32_e32 v10, 0x400000, v58900; GFX908-NEXT:    v_cmp_u_f32_e32 vcc, v5, v58901; GFX908-NEXT:    v_cndmask_b32_e32 v5, v6, v10, vcc8902; GFX908-NEXT:    v_and_b32_e32 v6, 0xffff0000, v78903; GFX908-NEXT:    v_min_f32_e32 v6, v6, v98904; GFX908-NEXT:    v_bfe_u32 v10, v6, 16, 18905; GFX908-NEXT:    v_add3_u32 v10, v10, v6, s148906; GFX908-NEXT:    v_or_b32_e32 v11, 0x400000, v68907; GFX908-NEXT:    v_cmp_u_f32_e32 vcc, v6, v68908; GFX908-NEXT:    v_cndmask_b32_e32 v6, v10, v11, vcc8909; GFX908-NEXT:    v_perm_b32 v6, v6, v5, s158910; GFX908-NEXT:    v_mov_b32_e32 v5, v68911; GFX908-NEXT:    s_mov_b64 s[12:13], exec8912; GFX908-NEXT:    v_mov_b32_e32 v6, v78913; GFX908-NEXT:  .LBB21_4: ; Parent Loop BB21_3 Depth=18914; GFX908-NEXT:    ; => This Inner Loop Header: Depth=28915; GFX908-NEXT:    v_readfirstlane_b32 s8, v08916; GFX908-NEXT:    v_readfirstlane_b32 s9, v18917; GFX908-NEXT:    v_readfirstlane_b32 s10, v28918; GFX908-NEXT:    v_readfirstlane_b32 s11, v38919; GFX908-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]8920; GFX908-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]8921; GFX908-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]8922; GFX908-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]8923; GFX908-NEXT:    s_waitcnt vmcnt(0)8924; GFX908-NEXT:    buffer_atomic_cmpswap v[5:6], v4, s[8:11], 0 offen offset:1024 glc8925; GFX908-NEXT:    s_xor_b64 exec, exec, s[4:5]8926; GFX908-NEXT:    s_cbranch_execnz .LBB21_48927; GFX908-NEXT:  ; %bb.5: ; in Loop: Header=BB21_3 Depth=18928; GFX908-NEXT:    s_mov_b64 exec, s[12:13]8929; GFX908-NEXT:    s_waitcnt vmcnt(0)8930; GFX908-NEXT:    v_cmp_eq_u32_e32 vcc, v5, v78931; GFX908-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]8932; GFX908-NEXT:    v_mov_b32_e32 v7, v58933; GFX908-NEXT:    buffer_wbinvl18934; GFX908-NEXT:    s_andn2_b64 exec, exec, s[6:7]8935; GFX908-NEXT:    s_cbranch_execnz .LBB21_38936; GFX908-NEXT:  ; %bb.6: ; %atomicrmw.end8937; GFX908-NEXT:    s_or_b64 exec, exec, s[6:7]8938; GFX908-NEXT:    v_mov_b32_e32 v0, v58939; GFX908-NEXT:    s_setpc_b64 s[30:31]8940;8941; GFX8-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__waterfall__amdgpu_no_fine_grained_memory:8942; GFX8:       ; %bb.0:8943; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)8944; GFX8-NEXT:    s_mov_b64 s[6:7], exec8945; GFX8-NEXT:  .LBB21_1: ; =>This Inner Loop Header: Depth=18946; GFX8-NEXT:    v_readfirstlane_b32 s8, v08947; GFX8-NEXT:    v_readfirstlane_b32 s9, v18948; GFX8-NEXT:    v_readfirstlane_b32 s10, v28949; GFX8-NEXT:    v_readfirstlane_b32 s11, v38950; GFX8-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]8951; GFX8-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]8952; GFX8-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]8953; GFX8-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]8954; GFX8-NEXT:    s_nop 08955; GFX8-NEXT:    buffer_load_dword v7, v4, s[8:11], 0 offen offset:10248956; GFX8-NEXT:    s_xor_b64 exec, exec, s[4:5]8957; GFX8-NEXT:    s_cbranch_execnz .LBB21_18958; GFX8-NEXT:  ; %bb.2:8959; GFX8-NEXT:    s_mov_b64 exec, s[6:7]8960; GFX8-NEXT:    s_mov_b64 s[6:7], 08961; GFX8-NEXT:    v_lshlrev_b32_e32 v8, 16, v58962; GFX8-NEXT:    v_and_b32_e32 v9, 0xffff0000, v58963; GFX8-NEXT:  .LBB21_3: ; %atomicrmw.start8964; GFX8-NEXT:    ; =>This Loop Header: Depth=18965; GFX8-NEXT:    ; Child Loop BB21_4 Depth 28966; GFX8-NEXT:    s_waitcnt vmcnt(0)8967; GFX8-NEXT:    v_lshlrev_b32_e32 v5, 16, v78968; GFX8-NEXT:    v_min_f32_e32 v5, v5, v88969; GFX8-NEXT:    v_bfe_u32 v6, v5, 16, 18970; GFX8-NEXT:    v_add_u32_e32 v6, vcc, v6, v58971; GFX8-NEXT:    v_add_u32_e32 v6, vcc, 0x7fff, v68972; GFX8-NEXT:    v_or_b32_e32 v10, 0x400000, v58973; GFX8-NEXT:    v_cmp_u_f32_e32 vcc, v5, v58974; GFX8-NEXT:    v_cndmask_b32_e32 v5, v6, v10, vcc8975; GFX8-NEXT:    v_and_b32_e32 v6, 0xffff0000, v78976; GFX8-NEXT:    v_min_f32_e32 v6, v6, v98977; GFX8-NEXT:    v_bfe_u32 v10, v6, 16, 18978; GFX8-NEXT:    v_add_u32_e32 v10, vcc, v10, v68979; GFX8-NEXT:    v_add_u32_e32 v10, vcc, 0x7fff, v108980; GFX8-NEXT:    v_or_b32_e32 v11, 0x400000, v68981; GFX8-NEXT:    v_cmp_u_f32_e32 vcc, v6, v68982; GFX8-NEXT:    v_cndmask_b32_e32 v6, v10, v11, vcc8983; GFX8-NEXT:    v_lshrrev_b32_e32 v6, 16, v68984; GFX8-NEXT:    v_alignbit_b32 v6, v6, v5, 168985; GFX8-NEXT:    v_mov_b32_e32 v5, v68986; GFX8-NEXT:    s_mov_b64 s[12:13], exec8987; GFX8-NEXT:    v_mov_b32_e32 v6, v78988; GFX8-NEXT:  .LBB21_4: ; Parent Loop BB21_3 Depth=18989; GFX8-NEXT:    ; => This Inner Loop Header: Depth=28990; GFX8-NEXT:    v_readfirstlane_b32 s8, v08991; GFX8-NEXT:    v_readfirstlane_b32 s9, v18992; GFX8-NEXT:    v_readfirstlane_b32 s10, v28993; GFX8-NEXT:    v_readfirstlane_b32 s11, v38994; GFX8-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]8995; GFX8-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]8996; GFX8-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]8997; GFX8-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]8998; GFX8-NEXT:    s_waitcnt vmcnt(0)8999; GFX8-NEXT:    buffer_atomic_cmpswap v[5:6], v4, s[8:11], 0 offen offset:1024 glc9000; GFX8-NEXT:    s_xor_b64 exec, exec, s[4:5]9001; GFX8-NEXT:    s_cbranch_execnz .LBB21_49002; GFX8-NEXT:  ; %bb.5: ; in Loop: Header=BB21_3 Depth=19003; GFX8-NEXT:    s_mov_b64 exec, s[12:13]9004; GFX8-NEXT:    s_waitcnt vmcnt(0)9005; GFX8-NEXT:    v_cmp_eq_u32_e32 vcc, v5, v79006; GFX8-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]9007; GFX8-NEXT:    v_mov_b32_e32 v7, v59008; GFX8-NEXT:    buffer_wbinvl19009; GFX8-NEXT:    s_andn2_b64 exec, exec, s[6:7]9010; GFX8-NEXT:    s_cbranch_execnz .LBB21_39011; GFX8-NEXT:  ; %bb.6: ; %atomicrmw.end9012; GFX8-NEXT:    s_or_b64 exec, exec, s[6:7]9013; GFX8-NEXT:    v_mov_b32_e32 v0, v59014; GFX8-NEXT:    s_setpc_b64 s[30:31]9015;9016; GFX7-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__waterfall__amdgpu_no_fine_grained_memory:9017; GFX7:       ; %bb.0:9018; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9019; GFX7-NEXT:    s_mov_b64 s[6:7], exec9020; GFX7-NEXT:  .LBB21_1: ; =>This Inner Loop Header: Depth=19021; GFX7-NEXT:    v_readfirstlane_b32 s8, v09022; GFX7-NEXT:    v_readfirstlane_b32 s9, v19023; GFX7-NEXT:    v_readfirstlane_b32 s10, v29024; GFX7-NEXT:    v_readfirstlane_b32 s11, v39025; GFX7-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]9026; GFX7-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]9027; GFX7-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]9028; GFX7-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]9029; GFX7-NEXT:    buffer_load_dword v8, v4, s[8:11], 0 offen offset:10249030; GFX7-NEXT:    s_xor_b64 exec, exec, s[4:5]9031; GFX7-NEXT:    s_cbranch_execnz .LBB21_19032; GFX7-NEXT:  ; %bb.2:9033; GFX7-NEXT:    s_mov_b64 exec, s[6:7]9034; GFX7-NEXT:    v_mul_f32_e32 v6, 1.0, v69035; GFX7-NEXT:    v_mul_f32_e32 v5, 1.0, v59036; GFX7-NEXT:    s_waitcnt vmcnt(0)9037; GFX7-NEXT:    v_and_b32_e32 v7, 0xffff0000, v89038; GFX7-NEXT:    v_lshlrev_b32_e32 v8, 16, v89039; GFX7-NEXT:    s_mov_b64 s[6:7], 09040; GFX7-NEXT:    v_and_b32_e32 v10, 0xffff0000, v69041; GFX7-NEXT:    v_and_b32_e32 v11, 0xffff0000, v59042; GFX7-NEXT:  .LBB21_3: ; %atomicrmw.start9043; GFX7-NEXT:    ; =>This Loop Header: Depth=19044; GFX7-NEXT:    ; Child Loop BB21_4 Depth 29045; GFX7-NEXT:    v_mul_f32_e32 v6, 1.0, v79046; GFX7-NEXT:    v_and_b32_e32 v5, 0xffff0000, v69047; GFX7-NEXT:    v_mul_f32_e32 v7, 1.0, v89048; GFX7-NEXT:    v_min_f32_e32 v5, v5, v109049; GFX7-NEXT:    v_and_b32_e32 v8, 0xffff0000, v79050; GFX7-NEXT:    v_lshrrev_b32_e32 v6, 16, v69051; GFX7-NEXT:    v_lshrrev_b32_e32 v5, 16, v59052; GFX7-NEXT:    v_min_f32_e32 v8, v8, v119053; GFX7-NEXT:    v_alignbit_b32 v6, v6, v7, 169054; GFX7-NEXT:    v_alignbit_b32 v5, v5, v8, 169055; GFX7-NEXT:    v_mov_b32_e32 v9, v69056; GFX7-NEXT:    s_mov_b64 s[12:13], exec9057; GFX7-NEXT:    v_mov_b32_e32 v8, v59058; GFX7-NEXT:  .LBB21_4: ; Parent Loop BB21_3 Depth=19059; GFX7-NEXT:    ; => This Inner Loop Header: Depth=29060; GFX7-NEXT:    v_readfirstlane_b32 s8, v09061; GFX7-NEXT:    v_readfirstlane_b32 s9, v19062; GFX7-NEXT:    v_readfirstlane_b32 s10, v29063; GFX7-NEXT:    v_readfirstlane_b32 s11, v39064; GFX7-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]9065; GFX7-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]9066; GFX7-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]9067; GFX7-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]9068; GFX7-NEXT:    s_waitcnt vmcnt(0)9069; GFX7-NEXT:    buffer_atomic_cmpswap v[8:9], v4, s[8:11], 0 offen offset:1024 glc9070; GFX7-NEXT:    s_xor_b64 exec, exec, s[4:5]9071; GFX7-NEXT:    s_cbranch_execnz .LBB21_49072; GFX7-NEXT:  ; %bb.5: ; in Loop: Header=BB21_3 Depth=19073; GFX7-NEXT:    s_mov_b64 exec, s[12:13]9074; GFX7-NEXT:    s_waitcnt vmcnt(0)9075; GFX7-NEXT:    v_cmp_eq_u32_e32 vcc, v8, v69076; GFX7-NEXT:    v_and_b32_e32 v7, 0xffff0000, v89077; GFX7-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]9078; GFX7-NEXT:    v_lshlrev_b32_e32 v8, 16, v89079; GFX7-NEXT:    buffer_wbinvl19080; GFX7-NEXT:    s_andn2_b64 exec, exec, s[6:7]9081; GFX7-NEXT:    s_cbranch_execnz .LBB21_39082; GFX7-NEXT:  ; %bb.6: ; %atomicrmw.end9083; GFX7-NEXT:    s_or_b64 exec, exec, s[6:7]9084; GFX7-NEXT:    v_mov_b32_e32 v0, v89085; GFX7-NEXT:    v_mov_b32_e32 v1, v79086; GFX7-NEXT:    s_setpc_b64 s[30:31]9087;9088; GFX6-LABEL: buffer_fat_ptr_agent_atomic_fmin_ret_v2bf16__offset__waterfall__amdgpu_no_fine_grained_memory:9089; GFX6:       ; %bb.0:9090; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9091; GFX6-NEXT:    v_add_i32_e32 v8, vcc, 0x400, v49092; GFX6-NEXT:    s_mov_b64 s[6:7], exec9093; GFX6-NEXT:  .LBB21_1: ; =>This Inner Loop Header: Depth=19094; GFX6-NEXT:    v_readfirstlane_b32 s8, v09095; GFX6-NEXT:    v_readfirstlane_b32 s9, v19096; GFX6-NEXT:    v_readfirstlane_b32 s10, v29097; GFX6-NEXT:    v_readfirstlane_b32 s11, v39098; GFX6-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]9099; GFX6-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]9100; GFX6-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]9101; GFX6-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]9102; GFX6-NEXT:    buffer_load_dword v7, v4, s[8:11], 0 offen offset:10249103; GFX6-NEXT:    ; implicit-def: $vgpr49104; GFX6-NEXT:    s_xor_b64 exec, exec, s[4:5]9105; GFX6-NEXT:    s_cbranch_execnz .LBB21_19106; GFX6-NEXT:  ; %bb.2:9107; GFX6-NEXT:    s_mov_b64 exec, s[6:7]9108; GFX6-NEXT:    v_mul_f32_e32 v6, 1.0, v69109; GFX6-NEXT:    v_mul_f32_e32 v5, 1.0, v59110; GFX6-NEXT:    s_waitcnt vmcnt(0)9111; GFX6-NEXT:    v_and_b32_e32 v4, 0xffff0000, v79112; GFX6-NEXT:    v_lshlrev_b32_e32 v7, 16, v79113; GFX6-NEXT:    s_mov_b64 s[6:7], 09114; GFX6-NEXT:    v_and_b32_e32 v9, 0xffff0000, v69115; GFX6-NEXT:    v_and_b32_e32 v10, 0xffff0000, v59116; GFX6-NEXT:  .LBB21_3: ; %atomicrmw.start9117; GFX6-NEXT:    ; =>This Loop Header: Depth=19118; GFX6-NEXT:    ; Child Loop BB21_4 Depth 29119; GFX6-NEXT:    v_mul_f32_e32 v5, 1.0, v49120; GFX6-NEXT:    v_and_b32_e32 v4, 0xffff0000, v59121; GFX6-NEXT:    v_mul_f32_e32 v6, 1.0, v79122; GFX6-NEXT:    v_min_f32_e32 v4, v4, v99123; GFX6-NEXT:    v_and_b32_e32 v7, 0xffff0000, v69124; GFX6-NEXT:    v_lshrrev_b32_e32 v5, 16, v59125; GFX6-NEXT:    v_lshrrev_b32_e32 v4, 16, v49126; GFX6-NEXT:    v_min_f32_e32 v7, v7, v109127; GFX6-NEXT:    v_alignbit_b32 v5, v5, v6, 169128; GFX6-NEXT:    v_alignbit_b32 v4, v4, v7, 169129; GFX6-NEXT:    v_mov_b32_e32 v7, v59130; GFX6-NEXT:    s_mov_b64 s[12:13], exec9131; GFX6-NEXT:    v_mov_b32_e32 v6, v49132; GFX6-NEXT:  .LBB21_4: ; Parent Loop BB21_3 Depth=19133; GFX6-NEXT:    ; => This Inner Loop Header: Depth=29134; GFX6-NEXT:    v_readfirstlane_b32 s8, v09135; GFX6-NEXT:    v_readfirstlane_b32 s9, v19136; GFX6-NEXT:    v_readfirstlane_b32 s10, v29137; GFX6-NEXT:    v_readfirstlane_b32 s11, v39138; GFX6-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]9139; GFX6-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]9140; GFX6-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]9141; GFX6-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]9142; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0)9143; GFX6-NEXT:    buffer_atomic_cmpswap v[6:7], v8, s[8:11], 0 offen glc9144; GFX6-NEXT:    s_xor_b64 exec, exec, s[4:5]9145; GFX6-NEXT:    s_cbranch_execnz .LBB21_49146; GFX6-NEXT:  ; %bb.5: ; in Loop: Header=BB21_3 Depth=19147; GFX6-NEXT:    s_mov_b64 exec, s[12:13]9148; GFX6-NEXT:    s_waitcnt vmcnt(0)9149; GFX6-NEXT:    v_cmp_eq_u32_e32 vcc, v6, v59150; GFX6-NEXT:    v_and_b32_e32 v4, 0xffff0000, v69151; GFX6-NEXT:    s_or_b64 s[6:7], vcc, s[6:7]9152; GFX6-NEXT:    s_waitcnt expcnt(0)9153; GFX6-NEXT:    v_lshlrev_b32_e32 v7, 16, v69154; GFX6-NEXT:    buffer_wbinvl19155; GFX6-NEXT:    s_andn2_b64 exec, exec, s[6:7]9156; GFX6-NEXT:    s_cbranch_execnz .LBB21_39157; GFX6-NEXT:  ; %bb.6: ; %atomicrmw.end9158; GFX6-NEXT:    s_or_b64 exec, exec, s[6:7]9159; GFX6-NEXT:    v_mov_b32_e32 v0, v79160; GFX6-NEXT:    v_mov_b32_e32 v1, v49161; GFX6-NEXT:    s_setpc_b64 s[30:31]9162  %gep = getelementptr <2 x bfloat>, ptr addrspace(7) %ptr, i32 2569163  %result = atomicrmw fmin ptr addrspace(7) %gep, <2 x bfloat> %val syncscope("agent") seq_cst, !amdgpu.no.fine.grained.memory !09164  ret <2 x bfloat> %result9165}9166 9167; --------------------------------------------------------------------9168; misc9169; --------------------------------------------------------------------9170 9171define float @buffer_fat_ptr_system_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory(ptr addrspace(7) inreg %ptr, float %val) #0 {9172; GFX12-LABEL: buffer_fat_ptr_system_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory:9173; GFX12:       ; %bb.0:9174; GFX12-NEXT:    s_wait_loadcnt_dscnt 0x09175; GFX12-NEXT:    s_wait_expcnt 0x09176; GFX12-NEXT:    s_wait_samplecnt 0x09177; GFX12-NEXT:    s_wait_bvhcnt 0x09178; GFX12-NEXT:    s_wait_kmcnt 0x09179; GFX12-NEXT:    v_mov_b32_e32 v1, s169180; GFX12-NEXT:    global_wb scope:SCOPE_SYS9181; GFX12-NEXT:    s_wait_storecnt 0x09182; GFX12-NEXT:    buffer_atomic_min_num_f32 v0, v1, s[0:3], null offen offset:1024 th:TH_ATOMIC_RETURN9183; GFX12-NEXT:    s_wait_loadcnt 0x09184; GFX12-NEXT:    global_inv scope:SCOPE_SYS9185; GFX12-NEXT:    s_wait_loadcnt 0x09186; GFX12-NEXT:    s_setpc_b64 s[30:31]9187;9188; GFX942-LABEL: buffer_fat_ptr_system_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory:9189; GFX942:       ; %bb.0:9190; GFX942-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9191; GFX942-NEXT:    v_mov_b32_e32 v1, v09192; GFX942-NEXT:    v_mov_b32_e32 v0, s169193; GFX942-NEXT:    buffer_load_dword v0, v0, s[0:3], 0 offen offset:10249194; GFX942-NEXT:    s_mov_b64 s[4:5], 09195; GFX942-NEXT:    v_max_f32_e32 v2, v1, v19196; GFX942-NEXT:    v_mov_b32_e32 v3, s169197; GFX942-NEXT:  .LBB22_1: ; %atomicrmw.start9198; GFX942-NEXT:    ; =>This Inner Loop Header: Depth=19199; GFX942-NEXT:    s_waitcnt vmcnt(0)9200; GFX942-NEXT:    v_mov_b32_e32 v5, v09201; GFX942-NEXT:    v_max_f32_e32 v0, v5, v59202; GFX942-NEXT:    v_min_f32_e32 v4, v0, v29203; GFX942-NEXT:    v_mov_b64_e32 v[0:1], v[4:5]9204; GFX942-NEXT:    buffer_wbl2 sc0 sc19205; GFX942-NEXT:    buffer_atomic_cmpswap v[0:1], v3, s[0:3], 0 offen offset:1024 sc09206; GFX942-NEXT:    s_waitcnt vmcnt(0)9207; GFX942-NEXT:    buffer_inv sc0 sc19208; GFX942-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v59209; GFX942-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]9210; GFX942-NEXT:    s_andn2_b64 exec, exec, s[4:5]9211; GFX942-NEXT:    s_cbranch_execnz .LBB22_19212; GFX942-NEXT:  ; %bb.2: ; %atomicrmw.end9213; GFX942-NEXT:    s_or_b64 exec, exec, s[4:5]9214; GFX942-NEXT:    s_setpc_b64 s[30:31]9215;9216; GFX11-LABEL: buffer_fat_ptr_system_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory:9217; GFX11:       ; %bb.0:9218; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9219; GFX11-NEXT:    v_mov_b32_e32 v1, s169220; GFX11-NEXT:    s_waitcnt_vscnt null, 0x09221; GFX11-NEXT:    buffer_atomic_min_f32 v0, v1, s[0:3], 0 offen offset:1024 glc9222; GFX11-NEXT:    s_waitcnt vmcnt(0)9223; GFX11-NEXT:    buffer_gl1_inv9224; GFX11-NEXT:    buffer_gl0_inv9225; GFX11-NEXT:    s_setpc_b64 s[30:31]9226;9227; GFX10-LABEL: buffer_fat_ptr_system_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory:9228; GFX10:       ; %bb.0:9229; GFX10-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9230; GFX10-NEXT:    v_mov_b32_e32 v1, s209231; GFX10-NEXT:    s_waitcnt_vscnt null, 0x09232; GFX10-NEXT:    buffer_atomic_fmin v0, v1, s[16:19], 0 offen offset:1024 glc9233; GFX10-NEXT:    s_waitcnt vmcnt(0)9234; GFX10-NEXT:    buffer_gl1_inv9235; GFX10-NEXT:    buffer_gl0_inv9236; GFX10-NEXT:    s_setpc_b64 s[30:31]9237;9238; GFX90A-LABEL: buffer_fat_ptr_system_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory:9239; GFX90A:       ; %bb.0:9240; GFX90A-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9241; GFX90A-NEXT:    v_mov_b32_e32 v1, v09242; GFX90A-NEXT:    v_mov_b32_e32 v0, s209243; GFX90A-NEXT:    buffer_load_dword v0, v0, s[16:19], 0 offen offset:10249244; GFX90A-NEXT:    s_mov_b64 s[4:5], 09245; GFX90A-NEXT:    v_max_f32_e32 v2, v1, v19246; GFX90A-NEXT:    v_mov_b32_e32 v3, s209247; GFX90A-NEXT:  .LBB22_1: ; %atomicrmw.start9248; GFX90A-NEXT:    ; =>This Inner Loop Header: Depth=19249; GFX90A-NEXT:    s_waitcnt vmcnt(0)9250; GFX90A-NEXT:    v_mov_b32_e32 v5, v09251; GFX90A-NEXT:    v_max_f32_e32 v0, v5, v59252; GFX90A-NEXT:    v_min_f32_e32 v4, v0, v29253; GFX90A-NEXT:    v_pk_mov_b32 v[0:1], v[4:5], v[4:5] op_sel:[0,1]9254; GFX90A-NEXT:    buffer_wbl29255; GFX90A-NEXT:    buffer_atomic_cmpswap v[0:1], v3, s[16:19], 0 offen offset:1024 glc9256; GFX90A-NEXT:    s_waitcnt vmcnt(0)9257; GFX90A-NEXT:    buffer_invl29258; GFX90A-NEXT:    buffer_wbinvl19259; GFX90A-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v59260; GFX90A-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]9261; GFX90A-NEXT:    s_andn2_b64 exec, exec, s[4:5]9262; GFX90A-NEXT:    s_cbranch_execnz .LBB22_19263; GFX90A-NEXT:  ; %bb.2: ; %atomicrmw.end9264; GFX90A-NEXT:    s_or_b64 exec, exec, s[4:5]9265; GFX90A-NEXT:    s_setpc_b64 s[30:31]9266;9267; GFX908-LABEL: buffer_fat_ptr_system_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory:9268; GFX908:       ; %bb.0:9269; GFX908-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9270; GFX908-NEXT:    v_mov_b32_e32 v1, v09271; GFX908-NEXT:    v_mov_b32_e32 v0, s209272; GFX908-NEXT:    buffer_load_dword v0, v0, s[16:19], 0 offen offset:10249273; GFX908-NEXT:    s_mov_b64 s[4:5], 09274; GFX908-NEXT:    v_max_f32_e32 v2, v1, v19275; GFX908-NEXT:    v_mov_b32_e32 v3, s209276; GFX908-NEXT:  .LBB22_1: ; %atomicrmw.start9277; GFX908-NEXT:    ; =>This Inner Loop Header: Depth=19278; GFX908-NEXT:    s_waitcnt vmcnt(0)9279; GFX908-NEXT:    v_mov_b32_e32 v5, v09280; GFX908-NEXT:    v_max_f32_e32 v0, v5, v59281; GFX908-NEXT:    v_min_f32_e32 v4, v0, v29282; GFX908-NEXT:    v_mov_b32_e32 v0, v49283; GFX908-NEXT:    v_mov_b32_e32 v1, v59284; GFX908-NEXT:    buffer_atomic_cmpswap v[0:1], v3, s[16:19], 0 offen offset:1024 glc9285; GFX908-NEXT:    s_waitcnt vmcnt(0)9286; GFX908-NEXT:    buffer_wbinvl19287; GFX908-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v59288; GFX908-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]9289; GFX908-NEXT:    s_andn2_b64 exec, exec, s[4:5]9290; GFX908-NEXT:    s_cbranch_execnz .LBB22_19291; GFX908-NEXT:  ; %bb.2: ; %atomicrmw.end9292; GFX908-NEXT:    s_or_b64 exec, exec, s[4:5]9293; GFX908-NEXT:    s_setpc_b64 s[30:31]9294;9295; GFX8-LABEL: buffer_fat_ptr_system_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory:9296; GFX8:       ; %bb.0:9297; GFX8-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9298; GFX8-NEXT:    v_mov_b32_e32 v1, v09299; GFX8-NEXT:    v_mov_b32_e32 v0, s209300; GFX8-NEXT:    buffer_load_dword v0, v0, s[16:19], 0 offen offset:10249301; GFX8-NEXT:    s_mov_b64 s[4:5], 09302; GFX8-NEXT:    v_mul_f32_e32 v2, 1.0, v19303; GFX8-NEXT:    v_mov_b32_e32 v3, s209304; GFX8-NEXT:  .LBB22_1: ; %atomicrmw.start9305; GFX8-NEXT:    ; =>This Inner Loop Header: Depth=19306; GFX8-NEXT:    s_waitcnt vmcnt(0)9307; GFX8-NEXT:    v_mov_b32_e32 v5, v09308; GFX8-NEXT:    v_mul_f32_e32 v0, 1.0, v59309; GFX8-NEXT:    v_min_f32_e32 v4, v0, v29310; GFX8-NEXT:    v_mov_b32_e32 v0, v49311; GFX8-NEXT:    v_mov_b32_e32 v1, v59312; GFX8-NEXT:    buffer_atomic_cmpswap v[0:1], v3, s[16:19], 0 offen offset:1024 glc9313; GFX8-NEXT:    s_waitcnt vmcnt(0)9314; GFX8-NEXT:    buffer_wbinvl19315; GFX8-NEXT:    v_cmp_eq_u32_e32 vcc, v0, v59316; GFX8-NEXT:    s_or_b64 s[4:5], vcc, s[4:5]9317; GFX8-NEXT:    s_andn2_b64 exec, exec, s[4:5]9318; GFX8-NEXT:    s_cbranch_execnz .LBB22_19319; GFX8-NEXT:  ; %bb.2: ; %atomicrmw.end9320; GFX8-NEXT:    s_or_b64 exec, exec, s[4:5]9321; GFX8-NEXT:    s_setpc_b64 s[30:31]9322;9323; GFX7-LABEL: buffer_fat_ptr_system_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory:9324; GFX7:       ; %bb.0:9325; GFX7-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9326; GFX7-NEXT:    v_mov_b32_e32 v1, s209327; GFX7-NEXT:    buffer_atomic_fmin v0, v1, s[16:19], 0 offen offset:1024 glc9328; GFX7-NEXT:    s_waitcnt vmcnt(0)9329; GFX7-NEXT:    buffer_wbinvl19330; GFX7-NEXT:    s_setpc_b64 s[30:31]9331;9332; GFX6-LABEL: buffer_fat_ptr_system_atomic_fmin_ret_f32__offset__amdgpu_no_fine_grained_memory:9333; GFX6:       ; %bb.0:9334; GFX6-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)9335; GFX6-NEXT:    v_mov_b32_e32 v1, s209336; GFX6-NEXT:    buffer_atomic_fmin v0, v1, s[16:19], 0 offen offset:1024 glc9337; GFX6-NEXT:    s_waitcnt vmcnt(0)9338; GFX6-NEXT:    buffer_wbinvl19339; GFX6-NEXT:    s_waitcnt expcnt(0)9340; GFX6-NEXT:    s_setpc_b64 s[30:31]9341  %gep = getelementptr float, ptr addrspace(7) %ptr, i32 2569342  %result = atomicrmw fmin ptr addrspace(7) %gep, float %val seq_cst, !amdgpu.no.fine.grained.memory !09343  ret float %result9344}9345 9346attributes #0 = { nounwind }9347 9348!0 = !{}9349