brintos

brintos / llvm-project-archived public Read only

0
0
Text · 137.1 KiB · 127788e Raw
4152 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx600 < %s | FileCheck --check-prefixes=GFX6 %s3; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx700 < %s | FileCheck --check-prefixes=GFX7 %s4; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx1010 < %s | FileCheck --check-prefixes=GFX10-WGP %s5; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx1010 -mattr=+cumode < %s | FileCheck --check-prefixes=GFX10-CU %s6; RUN: llc -mtriple=amdgcn-amd-amdpal -O0 -mcpu=gfx700 -amdgcn-skip-cache-invalidations < %s | FileCheck --check-prefixes=SKIP-CACHE-INV %s7; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx90a < %s | FileCheck -check-prefixes=GFX90A-NOTTGSPLIT %s8; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx90a -mattr=+tgsplit < %s | FileCheck -check-prefixes=GFX90A-TGSPLIT %s9; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx942 < %s | FileCheck -check-prefixes=GFX942-NOTTGSPLIT %s10; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx942 -mattr=+tgsplit < %s | FileCheck -check-prefixes=GFX942-TGSPLIT %s11; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx1100 < %s | FileCheck --check-prefixes=GFX11-WGP %s12; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx1100 -mattr=+cumode < %s | FileCheck --check-prefixes=GFX11-CU %s13; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx1200 < %s | FileCheck --check-prefixes=GFX12-WGP %s14; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx1200 -mattr=+cumode < %s | FileCheck --check-prefixes=GFX12-CU %s15; RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -mcpu=gfx1250 < %s | FileCheck --check-prefixes=GFX1250 %s16 17define amdgpu_kernel void @singlethread_acquire_fence() {18; GFX6-LABEL: singlethread_acquire_fence:19; GFX6:       ; %bb.0: ; %entry20; GFX6-NEXT:    s_endpgm21;22; GFX7-LABEL: singlethread_acquire_fence:23; GFX7:       ; %bb.0: ; %entry24; GFX7-NEXT:    s_endpgm25;26; GFX10-WGP-LABEL: singlethread_acquire_fence:27; GFX10-WGP:       ; %bb.0: ; %entry28; GFX10-WGP-NEXT:    s_endpgm29;30; GFX10-CU-LABEL: singlethread_acquire_fence:31; GFX10-CU:       ; %bb.0: ; %entry32; GFX10-CU-NEXT:    s_endpgm33;34; SKIP-CACHE-INV-LABEL: singlethread_acquire_fence:35; SKIP-CACHE-INV:       ; %bb.0: ; %entry36; SKIP-CACHE-INV-NEXT:    s_endpgm37;38; GFX90A-NOTTGSPLIT-LABEL: singlethread_acquire_fence:39; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry40; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm41;42; GFX90A-TGSPLIT-LABEL: singlethread_acquire_fence:43; GFX90A-TGSPLIT:       ; %bb.0: ; %entry44; GFX90A-TGSPLIT-NEXT:    s_endpgm45;46; GFX942-NOTTGSPLIT-LABEL: singlethread_acquire_fence:47; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry48; GFX942-NOTTGSPLIT-NEXT:    s_endpgm49;50; GFX942-TGSPLIT-LABEL: singlethread_acquire_fence:51; GFX942-TGSPLIT:       ; %bb.0: ; %entry52; GFX942-TGSPLIT-NEXT:    s_endpgm53;54; GFX11-WGP-LABEL: singlethread_acquire_fence:55; GFX11-WGP:       ; %bb.0: ; %entry56; GFX11-WGP-NEXT:    s_endpgm57;58; GFX11-CU-LABEL: singlethread_acquire_fence:59; GFX11-CU:       ; %bb.0: ; %entry60; GFX11-CU-NEXT:    s_endpgm61;62; GFX12-WGP-LABEL: singlethread_acquire_fence:63; GFX12-WGP:       ; %bb.0: ; %entry64; GFX12-WGP-NEXT:    s_endpgm65;66; GFX12-CU-LABEL: singlethread_acquire_fence:67; GFX12-CU:       ; %bb.0: ; %entry68; GFX12-CU-NEXT:    s_endpgm69;70; GFX1250-LABEL: singlethread_acquire_fence:71; GFX1250:       ; %bb.0: ; %entry72; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 173; GFX1250-NEXT:    s_endpgm74entry:75  fence syncscope("singlethread") acquire76  ret void77}78 79define amdgpu_kernel void @singlethread_release_fence() {80; GFX6-LABEL: singlethread_release_fence:81; GFX6:       ; %bb.0: ; %entry82; GFX6-NEXT:    s_endpgm83;84; GFX7-LABEL: singlethread_release_fence:85; GFX7:       ; %bb.0: ; %entry86; GFX7-NEXT:    s_endpgm87;88; GFX10-WGP-LABEL: singlethread_release_fence:89; GFX10-WGP:       ; %bb.0: ; %entry90; GFX10-WGP-NEXT:    s_endpgm91;92; GFX10-CU-LABEL: singlethread_release_fence:93; GFX10-CU:       ; %bb.0: ; %entry94; GFX10-CU-NEXT:    s_endpgm95;96; SKIP-CACHE-INV-LABEL: singlethread_release_fence:97; SKIP-CACHE-INV:       ; %bb.0: ; %entry98; SKIP-CACHE-INV-NEXT:    s_endpgm99;100; GFX90A-NOTTGSPLIT-LABEL: singlethread_release_fence:101; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry102; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm103;104; GFX90A-TGSPLIT-LABEL: singlethread_release_fence:105; GFX90A-TGSPLIT:       ; %bb.0: ; %entry106; GFX90A-TGSPLIT-NEXT:    s_endpgm107;108; GFX942-NOTTGSPLIT-LABEL: singlethread_release_fence:109; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry110; GFX942-NOTTGSPLIT-NEXT:    s_endpgm111;112; GFX942-TGSPLIT-LABEL: singlethread_release_fence:113; GFX942-TGSPLIT:       ; %bb.0: ; %entry114; GFX942-TGSPLIT-NEXT:    s_endpgm115;116; GFX11-WGP-LABEL: singlethread_release_fence:117; GFX11-WGP:       ; %bb.0: ; %entry118; GFX11-WGP-NEXT:    s_endpgm119;120; GFX11-CU-LABEL: singlethread_release_fence:121; GFX11-CU:       ; %bb.0: ; %entry122; GFX11-CU-NEXT:    s_endpgm123;124; GFX12-WGP-LABEL: singlethread_release_fence:125; GFX12-WGP:       ; %bb.0: ; %entry126; GFX12-WGP-NEXT:    s_endpgm127;128; GFX12-CU-LABEL: singlethread_release_fence:129; GFX12-CU:       ; %bb.0: ; %entry130; GFX12-CU-NEXT:    s_endpgm131;132; GFX1250-LABEL: singlethread_release_fence:133; GFX1250:       ; %bb.0: ; %entry134; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1135; GFX1250-NEXT:    s_endpgm136entry:137  fence syncscope("singlethread") release138  ret void139}140 141define amdgpu_kernel void @singlethread_acq_rel_fence() {142; GFX6-LABEL: singlethread_acq_rel_fence:143; GFX6:       ; %bb.0: ; %entry144; GFX6-NEXT:    s_endpgm145;146; GFX7-LABEL: singlethread_acq_rel_fence:147; GFX7:       ; %bb.0: ; %entry148; GFX7-NEXT:    s_endpgm149;150; GFX10-WGP-LABEL: singlethread_acq_rel_fence:151; GFX10-WGP:       ; %bb.0: ; %entry152; GFX10-WGP-NEXT:    s_endpgm153;154; GFX10-CU-LABEL: singlethread_acq_rel_fence:155; GFX10-CU:       ; %bb.0: ; %entry156; GFX10-CU-NEXT:    s_endpgm157;158; SKIP-CACHE-INV-LABEL: singlethread_acq_rel_fence:159; SKIP-CACHE-INV:       ; %bb.0: ; %entry160; SKIP-CACHE-INV-NEXT:    s_endpgm161;162; GFX90A-NOTTGSPLIT-LABEL: singlethread_acq_rel_fence:163; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry164; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm165;166; GFX90A-TGSPLIT-LABEL: singlethread_acq_rel_fence:167; GFX90A-TGSPLIT:       ; %bb.0: ; %entry168; GFX90A-TGSPLIT-NEXT:    s_endpgm169;170; GFX942-NOTTGSPLIT-LABEL: singlethread_acq_rel_fence:171; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry172; GFX942-NOTTGSPLIT-NEXT:    s_endpgm173;174; GFX942-TGSPLIT-LABEL: singlethread_acq_rel_fence:175; GFX942-TGSPLIT:       ; %bb.0: ; %entry176; GFX942-TGSPLIT-NEXT:    s_endpgm177;178; GFX11-WGP-LABEL: singlethread_acq_rel_fence:179; GFX11-WGP:       ; %bb.0: ; %entry180; GFX11-WGP-NEXT:    s_endpgm181;182; GFX11-CU-LABEL: singlethread_acq_rel_fence:183; GFX11-CU:       ; %bb.0: ; %entry184; GFX11-CU-NEXT:    s_endpgm185;186; GFX12-WGP-LABEL: singlethread_acq_rel_fence:187; GFX12-WGP:       ; %bb.0: ; %entry188; GFX12-WGP-NEXT:    s_endpgm189;190; GFX12-CU-LABEL: singlethread_acq_rel_fence:191; GFX12-CU:       ; %bb.0: ; %entry192; GFX12-CU-NEXT:    s_endpgm193;194; GFX1250-LABEL: singlethread_acq_rel_fence:195; GFX1250:       ; %bb.0: ; %entry196; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1197; GFX1250-NEXT:    s_endpgm198entry:199  fence syncscope("singlethread") acq_rel200  ret void201}202 203define amdgpu_kernel void @singlethread_seq_cst_fence() {204; GFX6-LABEL: singlethread_seq_cst_fence:205; GFX6:       ; %bb.0: ; %entry206; GFX6-NEXT:    s_endpgm207;208; GFX7-LABEL: singlethread_seq_cst_fence:209; GFX7:       ; %bb.0: ; %entry210; GFX7-NEXT:    s_endpgm211;212; GFX10-WGP-LABEL: singlethread_seq_cst_fence:213; GFX10-WGP:       ; %bb.0: ; %entry214; GFX10-WGP-NEXT:    s_endpgm215;216; GFX10-CU-LABEL: singlethread_seq_cst_fence:217; GFX10-CU:       ; %bb.0: ; %entry218; GFX10-CU-NEXT:    s_endpgm219;220; SKIP-CACHE-INV-LABEL: singlethread_seq_cst_fence:221; SKIP-CACHE-INV:       ; %bb.0: ; %entry222; SKIP-CACHE-INV-NEXT:    s_endpgm223;224; GFX90A-NOTTGSPLIT-LABEL: singlethread_seq_cst_fence:225; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry226; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm227;228; GFX90A-TGSPLIT-LABEL: singlethread_seq_cst_fence:229; GFX90A-TGSPLIT:       ; %bb.0: ; %entry230; GFX90A-TGSPLIT-NEXT:    s_endpgm231;232; GFX942-NOTTGSPLIT-LABEL: singlethread_seq_cst_fence:233; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry234; GFX942-NOTTGSPLIT-NEXT:    s_endpgm235;236; GFX942-TGSPLIT-LABEL: singlethread_seq_cst_fence:237; GFX942-TGSPLIT:       ; %bb.0: ; %entry238; GFX942-TGSPLIT-NEXT:    s_endpgm239;240; GFX11-WGP-LABEL: singlethread_seq_cst_fence:241; GFX11-WGP:       ; %bb.0: ; %entry242; GFX11-WGP-NEXT:    s_endpgm243;244; GFX11-CU-LABEL: singlethread_seq_cst_fence:245; GFX11-CU:       ; %bb.0: ; %entry246; GFX11-CU-NEXT:    s_endpgm247;248; GFX12-WGP-LABEL: singlethread_seq_cst_fence:249; GFX12-WGP:       ; %bb.0: ; %entry250; GFX12-WGP-NEXT:    s_endpgm251;252; GFX12-CU-LABEL: singlethread_seq_cst_fence:253; GFX12-CU:       ; %bb.0: ; %entry254; GFX12-CU-NEXT:    s_endpgm255;256; GFX1250-LABEL: singlethread_seq_cst_fence:257; GFX1250:       ; %bb.0: ; %entry258; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1259; GFX1250-NEXT:    s_endpgm260entry:261  fence syncscope("singlethread") seq_cst262  ret void263}264 265define amdgpu_kernel void @singlethread_one_as_acquire_fence() {266; GFX6-LABEL: singlethread_one_as_acquire_fence:267; GFX6:       ; %bb.0: ; %entry268; GFX6-NEXT:    s_endpgm269;270; GFX7-LABEL: singlethread_one_as_acquire_fence:271; GFX7:       ; %bb.0: ; %entry272; GFX7-NEXT:    s_endpgm273;274; GFX10-WGP-LABEL: singlethread_one_as_acquire_fence:275; GFX10-WGP:       ; %bb.0: ; %entry276; GFX10-WGP-NEXT:    s_endpgm277;278; GFX10-CU-LABEL: singlethread_one_as_acquire_fence:279; GFX10-CU:       ; %bb.0: ; %entry280; GFX10-CU-NEXT:    s_endpgm281;282; SKIP-CACHE-INV-LABEL: singlethread_one_as_acquire_fence:283; SKIP-CACHE-INV:       ; %bb.0: ; %entry284; SKIP-CACHE-INV-NEXT:    s_endpgm285;286; GFX90A-NOTTGSPLIT-LABEL: singlethread_one_as_acquire_fence:287; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry288; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm289;290; GFX90A-TGSPLIT-LABEL: singlethread_one_as_acquire_fence:291; GFX90A-TGSPLIT:       ; %bb.0: ; %entry292; GFX90A-TGSPLIT-NEXT:    s_endpgm293;294; GFX942-NOTTGSPLIT-LABEL: singlethread_one_as_acquire_fence:295; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry296; GFX942-NOTTGSPLIT-NEXT:    s_endpgm297;298; GFX942-TGSPLIT-LABEL: singlethread_one_as_acquire_fence:299; GFX942-TGSPLIT:       ; %bb.0: ; %entry300; GFX942-TGSPLIT-NEXT:    s_endpgm301;302; GFX11-WGP-LABEL: singlethread_one_as_acquire_fence:303; GFX11-WGP:       ; %bb.0: ; %entry304; GFX11-WGP-NEXT:    s_endpgm305;306; GFX11-CU-LABEL: singlethread_one_as_acquire_fence:307; GFX11-CU:       ; %bb.0: ; %entry308; GFX11-CU-NEXT:    s_endpgm309;310; GFX12-WGP-LABEL: singlethread_one_as_acquire_fence:311; GFX12-WGP:       ; %bb.0: ; %entry312; GFX12-WGP-NEXT:    s_endpgm313;314; GFX12-CU-LABEL: singlethread_one_as_acquire_fence:315; GFX12-CU:       ; %bb.0: ; %entry316; GFX12-CU-NEXT:    s_endpgm317;318; GFX1250-LABEL: singlethread_one_as_acquire_fence:319; GFX1250:       ; %bb.0: ; %entry320; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1321; GFX1250-NEXT:    s_endpgm322entry:323  fence syncscope("singlethread-one-as") acquire324  ret void325}326 327define amdgpu_kernel void @singlethread_one_as_release_fence() {328; GFX6-LABEL: singlethread_one_as_release_fence:329; GFX6:       ; %bb.0: ; %entry330; GFX6-NEXT:    s_endpgm331;332; GFX7-LABEL: singlethread_one_as_release_fence:333; GFX7:       ; %bb.0: ; %entry334; GFX7-NEXT:    s_endpgm335;336; GFX10-WGP-LABEL: singlethread_one_as_release_fence:337; GFX10-WGP:       ; %bb.0: ; %entry338; GFX10-WGP-NEXT:    s_endpgm339;340; GFX10-CU-LABEL: singlethread_one_as_release_fence:341; GFX10-CU:       ; %bb.0: ; %entry342; GFX10-CU-NEXT:    s_endpgm343;344; SKIP-CACHE-INV-LABEL: singlethread_one_as_release_fence:345; SKIP-CACHE-INV:       ; %bb.0: ; %entry346; SKIP-CACHE-INV-NEXT:    s_endpgm347;348; GFX90A-NOTTGSPLIT-LABEL: singlethread_one_as_release_fence:349; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry350; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm351;352; GFX90A-TGSPLIT-LABEL: singlethread_one_as_release_fence:353; GFX90A-TGSPLIT:       ; %bb.0: ; %entry354; GFX90A-TGSPLIT-NEXT:    s_endpgm355;356; GFX942-NOTTGSPLIT-LABEL: singlethread_one_as_release_fence:357; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry358; GFX942-NOTTGSPLIT-NEXT:    s_endpgm359;360; GFX942-TGSPLIT-LABEL: singlethread_one_as_release_fence:361; GFX942-TGSPLIT:       ; %bb.0: ; %entry362; GFX942-TGSPLIT-NEXT:    s_endpgm363;364; GFX11-WGP-LABEL: singlethread_one_as_release_fence:365; GFX11-WGP:       ; %bb.0: ; %entry366; GFX11-WGP-NEXT:    s_endpgm367;368; GFX11-CU-LABEL: singlethread_one_as_release_fence:369; GFX11-CU:       ; %bb.0: ; %entry370; GFX11-CU-NEXT:    s_endpgm371;372; GFX12-WGP-LABEL: singlethread_one_as_release_fence:373; GFX12-WGP:       ; %bb.0: ; %entry374; GFX12-WGP-NEXT:    s_endpgm375;376; GFX12-CU-LABEL: singlethread_one_as_release_fence:377; GFX12-CU:       ; %bb.0: ; %entry378; GFX12-CU-NEXT:    s_endpgm379;380; GFX1250-LABEL: singlethread_one_as_release_fence:381; GFX1250:       ; %bb.0: ; %entry382; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1383; GFX1250-NEXT:    s_endpgm384entry:385  fence syncscope("singlethread-one-as") release386  ret void387}388 389define amdgpu_kernel void @singlethread_one_as_acq_rel_fence() {390; GFX6-LABEL: singlethread_one_as_acq_rel_fence:391; GFX6:       ; %bb.0: ; %entry392; GFX6-NEXT:    s_endpgm393;394; GFX7-LABEL: singlethread_one_as_acq_rel_fence:395; GFX7:       ; %bb.0: ; %entry396; GFX7-NEXT:    s_endpgm397;398; GFX10-WGP-LABEL: singlethread_one_as_acq_rel_fence:399; GFX10-WGP:       ; %bb.0: ; %entry400; GFX10-WGP-NEXT:    s_endpgm401;402; GFX10-CU-LABEL: singlethread_one_as_acq_rel_fence:403; GFX10-CU:       ; %bb.0: ; %entry404; GFX10-CU-NEXT:    s_endpgm405;406; SKIP-CACHE-INV-LABEL: singlethread_one_as_acq_rel_fence:407; SKIP-CACHE-INV:       ; %bb.0: ; %entry408; SKIP-CACHE-INV-NEXT:    s_endpgm409;410; GFX90A-NOTTGSPLIT-LABEL: singlethread_one_as_acq_rel_fence:411; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry412; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm413;414; GFX90A-TGSPLIT-LABEL: singlethread_one_as_acq_rel_fence:415; GFX90A-TGSPLIT:       ; %bb.0: ; %entry416; GFX90A-TGSPLIT-NEXT:    s_endpgm417;418; GFX942-NOTTGSPLIT-LABEL: singlethread_one_as_acq_rel_fence:419; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry420; GFX942-NOTTGSPLIT-NEXT:    s_endpgm421;422; GFX942-TGSPLIT-LABEL: singlethread_one_as_acq_rel_fence:423; GFX942-TGSPLIT:       ; %bb.0: ; %entry424; GFX942-TGSPLIT-NEXT:    s_endpgm425;426; GFX11-WGP-LABEL: singlethread_one_as_acq_rel_fence:427; GFX11-WGP:       ; %bb.0: ; %entry428; GFX11-WGP-NEXT:    s_endpgm429;430; GFX11-CU-LABEL: singlethread_one_as_acq_rel_fence:431; GFX11-CU:       ; %bb.0: ; %entry432; GFX11-CU-NEXT:    s_endpgm433;434; GFX12-WGP-LABEL: singlethread_one_as_acq_rel_fence:435; GFX12-WGP:       ; %bb.0: ; %entry436; GFX12-WGP-NEXT:    s_endpgm437;438; GFX12-CU-LABEL: singlethread_one_as_acq_rel_fence:439; GFX12-CU:       ; %bb.0: ; %entry440; GFX12-CU-NEXT:    s_endpgm441;442; GFX1250-LABEL: singlethread_one_as_acq_rel_fence:443; GFX1250:       ; %bb.0: ; %entry444; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1445; GFX1250-NEXT:    s_endpgm446entry:447  fence syncscope("singlethread-one-as") acq_rel448  ret void449}450 451define amdgpu_kernel void @singlethread_one_as_seq_cst_fence() {452; GFX6-LABEL: singlethread_one_as_seq_cst_fence:453; GFX6:       ; %bb.0: ; %entry454; GFX6-NEXT:    s_endpgm455;456; GFX7-LABEL: singlethread_one_as_seq_cst_fence:457; GFX7:       ; %bb.0: ; %entry458; GFX7-NEXT:    s_endpgm459;460; GFX10-WGP-LABEL: singlethread_one_as_seq_cst_fence:461; GFX10-WGP:       ; %bb.0: ; %entry462; GFX10-WGP-NEXT:    s_endpgm463;464; GFX10-CU-LABEL: singlethread_one_as_seq_cst_fence:465; GFX10-CU:       ; %bb.0: ; %entry466; GFX10-CU-NEXT:    s_endpgm467;468; SKIP-CACHE-INV-LABEL: singlethread_one_as_seq_cst_fence:469; SKIP-CACHE-INV:       ; %bb.0: ; %entry470; SKIP-CACHE-INV-NEXT:    s_endpgm471;472; GFX90A-NOTTGSPLIT-LABEL: singlethread_one_as_seq_cst_fence:473; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry474; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm475;476; GFX90A-TGSPLIT-LABEL: singlethread_one_as_seq_cst_fence:477; GFX90A-TGSPLIT:       ; %bb.0: ; %entry478; GFX90A-TGSPLIT-NEXT:    s_endpgm479;480; GFX942-NOTTGSPLIT-LABEL: singlethread_one_as_seq_cst_fence:481; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry482; GFX942-NOTTGSPLIT-NEXT:    s_endpgm483;484; GFX942-TGSPLIT-LABEL: singlethread_one_as_seq_cst_fence:485; GFX942-TGSPLIT:       ; %bb.0: ; %entry486; GFX942-TGSPLIT-NEXT:    s_endpgm487;488; GFX11-WGP-LABEL: singlethread_one_as_seq_cst_fence:489; GFX11-WGP:       ; %bb.0: ; %entry490; GFX11-WGP-NEXT:    s_endpgm491;492; GFX11-CU-LABEL: singlethread_one_as_seq_cst_fence:493; GFX11-CU:       ; %bb.0: ; %entry494; GFX11-CU-NEXT:    s_endpgm495;496; GFX12-WGP-LABEL: singlethread_one_as_seq_cst_fence:497; GFX12-WGP:       ; %bb.0: ; %entry498; GFX12-WGP-NEXT:    s_endpgm499;500; GFX12-CU-LABEL: singlethread_one_as_seq_cst_fence:501; GFX12-CU:       ; %bb.0: ; %entry502; GFX12-CU-NEXT:    s_endpgm503;504; GFX1250-LABEL: singlethread_one_as_seq_cst_fence:505; GFX1250:       ; %bb.0: ; %entry506; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1507; GFX1250-NEXT:    s_endpgm508entry:509  fence syncscope("singlethread-one-as") seq_cst510  ret void511}512 513define amdgpu_kernel void @wavefront_acquire_fence() {514; GFX6-LABEL: wavefront_acquire_fence:515; GFX6:       ; %bb.0: ; %entry516; GFX6-NEXT:    s_endpgm517;518; GFX7-LABEL: wavefront_acquire_fence:519; GFX7:       ; %bb.0: ; %entry520; GFX7-NEXT:    s_endpgm521;522; GFX10-WGP-LABEL: wavefront_acquire_fence:523; GFX10-WGP:       ; %bb.0: ; %entry524; GFX10-WGP-NEXT:    s_endpgm525;526; GFX10-CU-LABEL: wavefront_acquire_fence:527; GFX10-CU:       ; %bb.0: ; %entry528; GFX10-CU-NEXT:    s_endpgm529;530; SKIP-CACHE-INV-LABEL: wavefront_acquire_fence:531; SKIP-CACHE-INV:       ; %bb.0: ; %entry532; SKIP-CACHE-INV-NEXT:    s_endpgm533;534; GFX90A-NOTTGSPLIT-LABEL: wavefront_acquire_fence:535; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry536; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm537;538; GFX90A-TGSPLIT-LABEL: wavefront_acquire_fence:539; GFX90A-TGSPLIT:       ; %bb.0: ; %entry540; GFX90A-TGSPLIT-NEXT:    s_endpgm541;542; GFX942-NOTTGSPLIT-LABEL: wavefront_acquire_fence:543; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry544; GFX942-NOTTGSPLIT-NEXT:    s_endpgm545;546; GFX942-TGSPLIT-LABEL: wavefront_acquire_fence:547; GFX942-TGSPLIT:       ; %bb.0: ; %entry548; GFX942-TGSPLIT-NEXT:    s_endpgm549;550; GFX11-WGP-LABEL: wavefront_acquire_fence:551; GFX11-WGP:       ; %bb.0: ; %entry552; GFX11-WGP-NEXT:    s_endpgm553;554; GFX11-CU-LABEL: wavefront_acquire_fence:555; GFX11-CU:       ; %bb.0: ; %entry556; GFX11-CU-NEXT:    s_endpgm557;558; GFX12-WGP-LABEL: wavefront_acquire_fence:559; GFX12-WGP:       ; %bb.0: ; %entry560; GFX12-WGP-NEXT:    s_endpgm561;562; GFX12-CU-LABEL: wavefront_acquire_fence:563; GFX12-CU:       ; %bb.0: ; %entry564; GFX12-CU-NEXT:    s_endpgm565;566; GFX1250-LABEL: wavefront_acquire_fence:567; GFX1250:       ; %bb.0: ; %entry568; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1569; GFX1250-NEXT:    s_endpgm570entry:571  fence syncscope("wavefront") acquire572  ret void573}574 575define amdgpu_kernel void @wavefront_release_fence() {576; GFX6-LABEL: wavefront_release_fence:577; GFX6:       ; %bb.0: ; %entry578; GFX6-NEXT:    s_endpgm579;580; GFX7-LABEL: wavefront_release_fence:581; GFX7:       ; %bb.0: ; %entry582; GFX7-NEXT:    s_endpgm583;584; GFX10-WGP-LABEL: wavefront_release_fence:585; GFX10-WGP:       ; %bb.0: ; %entry586; GFX10-WGP-NEXT:    s_endpgm587;588; GFX10-CU-LABEL: wavefront_release_fence:589; GFX10-CU:       ; %bb.0: ; %entry590; GFX10-CU-NEXT:    s_endpgm591;592; SKIP-CACHE-INV-LABEL: wavefront_release_fence:593; SKIP-CACHE-INV:       ; %bb.0: ; %entry594; SKIP-CACHE-INV-NEXT:    s_endpgm595;596; GFX90A-NOTTGSPLIT-LABEL: wavefront_release_fence:597; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry598; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm599;600; GFX90A-TGSPLIT-LABEL: wavefront_release_fence:601; GFX90A-TGSPLIT:       ; %bb.0: ; %entry602; GFX90A-TGSPLIT-NEXT:    s_endpgm603;604; GFX942-NOTTGSPLIT-LABEL: wavefront_release_fence:605; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry606; GFX942-NOTTGSPLIT-NEXT:    s_endpgm607;608; GFX942-TGSPLIT-LABEL: wavefront_release_fence:609; GFX942-TGSPLIT:       ; %bb.0: ; %entry610; GFX942-TGSPLIT-NEXT:    s_endpgm611;612; GFX11-WGP-LABEL: wavefront_release_fence:613; GFX11-WGP:       ; %bb.0: ; %entry614; GFX11-WGP-NEXT:    s_endpgm615;616; GFX11-CU-LABEL: wavefront_release_fence:617; GFX11-CU:       ; %bb.0: ; %entry618; GFX11-CU-NEXT:    s_endpgm619;620; GFX12-WGP-LABEL: wavefront_release_fence:621; GFX12-WGP:       ; %bb.0: ; %entry622; GFX12-WGP-NEXT:    s_endpgm623;624; GFX12-CU-LABEL: wavefront_release_fence:625; GFX12-CU:       ; %bb.0: ; %entry626; GFX12-CU-NEXT:    s_endpgm627;628; GFX1250-LABEL: wavefront_release_fence:629; GFX1250:       ; %bb.0: ; %entry630; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1631; GFX1250-NEXT:    s_endpgm632entry:633  fence syncscope("wavefront") release634  ret void635}636 637define amdgpu_kernel void @wavefront_acq_rel_fence() {638; GFX6-LABEL: wavefront_acq_rel_fence:639; GFX6:       ; %bb.0: ; %entry640; GFX6-NEXT:    s_endpgm641;642; GFX7-LABEL: wavefront_acq_rel_fence:643; GFX7:       ; %bb.0: ; %entry644; GFX7-NEXT:    s_endpgm645;646; GFX10-WGP-LABEL: wavefront_acq_rel_fence:647; GFX10-WGP:       ; %bb.0: ; %entry648; GFX10-WGP-NEXT:    s_endpgm649;650; GFX10-CU-LABEL: wavefront_acq_rel_fence:651; GFX10-CU:       ; %bb.0: ; %entry652; GFX10-CU-NEXT:    s_endpgm653;654; SKIP-CACHE-INV-LABEL: wavefront_acq_rel_fence:655; SKIP-CACHE-INV:       ; %bb.0: ; %entry656; SKIP-CACHE-INV-NEXT:    s_endpgm657;658; GFX90A-NOTTGSPLIT-LABEL: wavefront_acq_rel_fence:659; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry660; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm661;662; GFX90A-TGSPLIT-LABEL: wavefront_acq_rel_fence:663; GFX90A-TGSPLIT:       ; %bb.0: ; %entry664; GFX90A-TGSPLIT-NEXT:    s_endpgm665;666; GFX942-NOTTGSPLIT-LABEL: wavefront_acq_rel_fence:667; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry668; GFX942-NOTTGSPLIT-NEXT:    s_endpgm669;670; GFX942-TGSPLIT-LABEL: wavefront_acq_rel_fence:671; GFX942-TGSPLIT:       ; %bb.0: ; %entry672; GFX942-TGSPLIT-NEXT:    s_endpgm673;674; GFX11-WGP-LABEL: wavefront_acq_rel_fence:675; GFX11-WGP:       ; %bb.0: ; %entry676; GFX11-WGP-NEXT:    s_endpgm677;678; GFX11-CU-LABEL: wavefront_acq_rel_fence:679; GFX11-CU:       ; %bb.0: ; %entry680; GFX11-CU-NEXT:    s_endpgm681;682; GFX12-WGP-LABEL: wavefront_acq_rel_fence:683; GFX12-WGP:       ; %bb.0: ; %entry684; GFX12-WGP-NEXT:    s_endpgm685;686; GFX12-CU-LABEL: wavefront_acq_rel_fence:687; GFX12-CU:       ; %bb.0: ; %entry688; GFX12-CU-NEXT:    s_endpgm689;690; GFX1250-LABEL: wavefront_acq_rel_fence:691; GFX1250:       ; %bb.0: ; %entry692; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1693; GFX1250-NEXT:    s_endpgm694entry:695  fence syncscope("wavefront") acq_rel696  ret void697}698 699define amdgpu_kernel void @wavefront_seq_cst_fence() {700; GFX6-LABEL: wavefront_seq_cst_fence:701; GFX6:       ; %bb.0: ; %entry702; GFX6-NEXT:    s_endpgm703;704; GFX7-LABEL: wavefront_seq_cst_fence:705; GFX7:       ; %bb.0: ; %entry706; GFX7-NEXT:    s_endpgm707;708; GFX10-WGP-LABEL: wavefront_seq_cst_fence:709; GFX10-WGP:       ; %bb.0: ; %entry710; GFX10-WGP-NEXT:    s_endpgm711;712; GFX10-CU-LABEL: wavefront_seq_cst_fence:713; GFX10-CU:       ; %bb.0: ; %entry714; GFX10-CU-NEXT:    s_endpgm715;716; SKIP-CACHE-INV-LABEL: wavefront_seq_cst_fence:717; SKIP-CACHE-INV:       ; %bb.0: ; %entry718; SKIP-CACHE-INV-NEXT:    s_endpgm719;720; GFX90A-NOTTGSPLIT-LABEL: wavefront_seq_cst_fence:721; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry722; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm723;724; GFX90A-TGSPLIT-LABEL: wavefront_seq_cst_fence:725; GFX90A-TGSPLIT:       ; %bb.0: ; %entry726; GFX90A-TGSPLIT-NEXT:    s_endpgm727;728; GFX942-NOTTGSPLIT-LABEL: wavefront_seq_cst_fence:729; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry730; GFX942-NOTTGSPLIT-NEXT:    s_endpgm731;732; GFX942-TGSPLIT-LABEL: wavefront_seq_cst_fence:733; GFX942-TGSPLIT:       ; %bb.0: ; %entry734; GFX942-TGSPLIT-NEXT:    s_endpgm735;736; GFX11-WGP-LABEL: wavefront_seq_cst_fence:737; GFX11-WGP:       ; %bb.0: ; %entry738; GFX11-WGP-NEXT:    s_endpgm739;740; GFX11-CU-LABEL: wavefront_seq_cst_fence:741; GFX11-CU:       ; %bb.0: ; %entry742; GFX11-CU-NEXT:    s_endpgm743;744; GFX12-WGP-LABEL: wavefront_seq_cst_fence:745; GFX12-WGP:       ; %bb.0: ; %entry746; GFX12-WGP-NEXT:    s_endpgm747;748; GFX12-CU-LABEL: wavefront_seq_cst_fence:749; GFX12-CU:       ; %bb.0: ; %entry750; GFX12-CU-NEXT:    s_endpgm751;752; GFX1250-LABEL: wavefront_seq_cst_fence:753; GFX1250:       ; %bb.0: ; %entry754; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1755; GFX1250-NEXT:    s_endpgm756entry:757  fence syncscope("wavefront") seq_cst758  ret void759}760 761define amdgpu_kernel void @wavefront_one_as_acquire_fence() {762; GFX6-LABEL: wavefront_one_as_acquire_fence:763; GFX6:       ; %bb.0: ; %entry764; GFX6-NEXT:    s_endpgm765;766; GFX7-LABEL: wavefront_one_as_acquire_fence:767; GFX7:       ; %bb.0: ; %entry768; GFX7-NEXT:    s_endpgm769;770; GFX10-WGP-LABEL: wavefront_one_as_acquire_fence:771; GFX10-WGP:       ; %bb.0: ; %entry772; GFX10-WGP-NEXT:    s_endpgm773;774; GFX10-CU-LABEL: wavefront_one_as_acquire_fence:775; GFX10-CU:       ; %bb.0: ; %entry776; GFX10-CU-NEXT:    s_endpgm777;778; SKIP-CACHE-INV-LABEL: wavefront_one_as_acquire_fence:779; SKIP-CACHE-INV:       ; %bb.0: ; %entry780; SKIP-CACHE-INV-NEXT:    s_endpgm781;782; GFX90A-NOTTGSPLIT-LABEL: wavefront_one_as_acquire_fence:783; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry784; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm785;786; GFX90A-TGSPLIT-LABEL: wavefront_one_as_acquire_fence:787; GFX90A-TGSPLIT:       ; %bb.0: ; %entry788; GFX90A-TGSPLIT-NEXT:    s_endpgm789;790; GFX942-NOTTGSPLIT-LABEL: wavefront_one_as_acquire_fence:791; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry792; GFX942-NOTTGSPLIT-NEXT:    s_endpgm793;794; GFX942-TGSPLIT-LABEL: wavefront_one_as_acquire_fence:795; GFX942-TGSPLIT:       ; %bb.0: ; %entry796; GFX942-TGSPLIT-NEXT:    s_endpgm797;798; GFX11-WGP-LABEL: wavefront_one_as_acquire_fence:799; GFX11-WGP:       ; %bb.0: ; %entry800; GFX11-WGP-NEXT:    s_endpgm801;802; GFX11-CU-LABEL: wavefront_one_as_acquire_fence:803; GFX11-CU:       ; %bb.0: ; %entry804; GFX11-CU-NEXT:    s_endpgm805;806; GFX12-WGP-LABEL: wavefront_one_as_acquire_fence:807; GFX12-WGP:       ; %bb.0: ; %entry808; GFX12-WGP-NEXT:    s_endpgm809;810; GFX12-CU-LABEL: wavefront_one_as_acquire_fence:811; GFX12-CU:       ; %bb.0: ; %entry812; GFX12-CU-NEXT:    s_endpgm813;814; GFX1250-LABEL: wavefront_one_as_acquire_fence:815; GFX1250:       ; %bb.0: ; %entry816; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1817; GFX1250-NEXT:    s_endpgm818entry:819  fence syncscope("wavefront-one-as") acquire820  ret void821}822 823define amdgpu_kernel void @wavefront_one_as_release_fence() {824; GFX6-LABEL: wavefront_one_as_release_fence:825; GFX6:       ; %bb.0: ; %entry826; GFX6-NEXT:    s_endpgm827;828; GFX7-LABEL: wavefront_one_as_release_fence:829; GFX7:       ; %bb.0: ; %entry830; GFX7-NEXT:    s_endpgm831;832; GFX10-WGP-LABEL: wavefront_one_as_release_fence:833; GFX10-WGP:       ; %bb.0: ; %entry834; GFX10-WGP-NEXT:    s_endpgm835;836; GFX10-CU-LABEL: wavefront_one_as_release_fence:837; GFX10-CU:       ; %bb.0: ; %entry838; GFX10-CU-NEXT:    s_endpgm839;840; SKIP-CACHE-INV-LABEL: wavefront_one_as_release_fence:841; SKIP-CACHE-INV:       ; %bb.0: ; %entry842; SKIP-CACHE-INV-NEXT:    s_endpgm843;844; GFX90A-NOTTGSPLIT-LABEL: wavefront_one_as_release_fence:845; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry846; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm847;848; GFX90A-TGSPLIT-LABEL: wavefront_one_as_release_fence:849; GFX90A-TGSPLIT:       ; %bb.0: ; %entry850; GFX90A-TGSPLIT-NEXT:    s_endpgm851;852; GFX942-NOTTGSPLIT-LABEL: wavefront_one_as_release_fence:853; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry854; GFX942-NOTTGSPLIT-NEXT:    s_endpgm855;856; GFX942-TGSPLIT-LABEL: wavefront_one_as_release_fence:857; GFX942-TGSPLIT:       ; %bb.0: ; %entry858; GFX942-TGSPLIT-NEXT:    s_endpgm859;860; GFX11-WGP-LABEL: wavefront_one_as_release_fence:861; GFX11-WGP:       ; %bb.0: ; %entry862; GFX11-WGP-NEXT:    s_endpgm863;864; GFX11-CU-LABEL: wavefront_one_as_release_fence:865; GFX11-CU:       ; %bb.0: ; %entry866; GFX11-CU-NEXT:    s_endpgm867;868; GFX12-WGP-LABEL: wavefront_one_as_release_fence:869; GFX12-WGP:       ; %bb.0: ; %entry870; GFX12-WGP-NEXT:    s_endpgm871;872; GFX12-CU-LABEL: wavefront_one_as_release_fence:873; GFX12-CU:       ; %bb.0: ; %entry874; GFX12-CU-NEXT:    s_endpgm875;876; GFX1250-LABEL: wavefront_one_as_release_fence:877; GFX1250:       ; %bb.0: ; %entry878; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1879; GFX1250-NEXT:    s_endpgm880entry:881  fence syncscope("wavefront-one-as") release882  ret void883}884 885define amdgpu_kernel void @wavefront_one_as_acq_rel_fence() {886; GFX6-LABEL: wavefront_one_as_acq_rel_fence:887; GFX6:       ; %bb.0: ; %entry888; GFX6-NEXT:    s_endpgm889;890; GFX7-LABEL: wavefront_one_as_acq_rel_fence:891; GFX7:       ; %bb.0: ; %entry892; GFX7-NEXT:    s_endpgm893;894; GFX10-WGP-LABEL: wavefront_one_as_acq_rel_fence:895; GFX10-WGP:       ; %bb.0: ; %entry896; GFX10-WGP-NEXT:    s_endpgm897;898; GFX10-CU-LABEL: wavefront_one_as_acq_rel_fence:899; GFX10-CU:       ; %bb.0: ; %entry900; GFX10-CU-NEXT:    s_endpgm901;902; SKIP-CACHE-INV-LABEL: wavefront_one_as_acq_rel_fence:903; SKIP-CACHE-INV:       ; %bb.0: ; %entry904; SKIP-CACHE-INV-NEXT:    s_endpgm905;906; GFX90A-NOTTGSPLIT-LABEL: wavefront_one_as_acq_rel_fence:907; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry908; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm909;910; GFX90A-TGSPLIT-LABEL: wavefront_one_as_acq_rel_fence:911; GFX90A-TGSPLIT:       ; %bb.0: ; %entry912; GFX90A-TGSPLIT-NEXT:    s_endpgm913;914; GFX942-NOTTGSPLIT-LABEL: wavefront_one_as_acq_rel_fence:915; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry916; GFX942-NOTTGSPLIT-NEXT:    s_endpgm917;918; GFX942-TGSPLIT-LABEL: wavefront_one_as_acq_rel_fence:919; GFX942-TGSPLIT:       ; %bb.0: ; %entry920; GFX942-TGSPLIT-NEXT:    s_endpgm921;922; GFX11-WGP-LABEL: wavefront_one_as_acq_rel_fence:923; GFX11-WGP:       ; %bb.0: ; %entry924; GFX11-WGP-NEXT:    s_endpgm925;926; GFX11-CU-LABEL: wavefront_one_as_acq_rel_fence:927; GFX11-CU:       ; %bb.0: ; %entry928; GFX11-CU-NEXT:    s_endpgm929;930; GFX12-WGP-LABEL: wavefront_one_as_acq_rel_fence:931; GFX12-WGP:       ; %bb.0: ; %entry932; GFX12-WGP-NEXT:    s_endpgm933;934; GFX12-CU-LABEL: wavefront_one_as_acq_rel_fence:935; GFX12-CU:       ; %bb.0: ; %entry936; GFX12-CU-NEXT:    s_endpgm937;938; GFX1250-LABEL: wavefront_one_as_acq_rel_fence:939; GFX1250:       ; %bb.0: ; %entry940; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1941; GFX1250-NEXT:    s_endpgm942entry:943  fence syncscope("wavefront-one-as") acq_rel944  ret void945}946 947define amdgpu_kernel void @wavefront_one_as_seq_cst_fence() {948; GFX6-LABEL: wavefront_one_as_seq_cst_fence:949; GFX6:       ; %bb.0: ; %entry950; GFX6-NEXT:    s_endpgm951;952; GFX7-LABEL: wavefront_one_as_seq_cst_fence:953; GFX7:       ; %bb.0: ; %entry954; GFX7-NEXT:    s_endpgm955;956; GFX10-WGP-LABEL: wavefront_one_as_seq_cst_fence:957; GFX10-WGP:       ; %bb.0: ; %entry958; GFX10-WGP-NEXT:    s_endpgm959;960; GFX10-CU-LABEL: wavefront_one_as_seq_cst_fence:961; GFX10-CU:       ; %bb.0: ; %entry962; GFX10-CU-NEXT:    s_endpgm963;964; SKIP-CACHE-INV-LABEL: wavefront_one_as_seq_cst_fence:965; SKIP-CACHE-INV:       ; %bb.0: ; %entry966; SKIP-CACHE-INV-NEXT:    s_endpgm967;968; GFX90A-NOTTGSPLIT-LABEL: wavefront_one_as_seq_cst_fence:969; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry970; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm971;972; GFX90A-TGSPLIT-LABEL: wavefront_one_as_seq_cst_fence:973; GFX90A-TGSPLIT:       ; %bb.0: ; %entry974; GFX90A-TGSPLIT-NEXT:    s_endpgm975;976; GFX942-NOTTGSPLIT-LABEL: wavefront_one_as_seq_cst_fence:977; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry978; GFX942-NOTTGSPLIT-NEXT:    s_endpgm979;980; GFX942-TGSPLIT-LABEL: wavefront_one_as_seq_cst_fence:981; GFX942-TGSPLIT:       ; %bb.0: ; %entry982; GFX942-TGSPLIT-NEXT:    s_endpgm983;984; GFX11-WGP-LABEL: wavefront_one_as_seq_cst_fence:985; GFX11-WGP:       ; %bb.0: ; %entry986; GFX11-WGP-NEXT:    s_endpgm987;988; GFX11-CU-LABEL: wavefront_one_as_seq_cst_fence:989; GFX11-CU:       ; %bb.0: ; %entry990; GFX11-CU-NEXT:    s_endpgm991;992; GFX12-WGP-LABEL: wavefront_one_as_seq_cst_fence:993; GFX12-WGP:       ; %bb.0: ; %entry994; GFX12-WGP-NEXT:    s_endpgm995;996; GFX12-CU-LABEL: wavefront_one_as_seq_cst_fence:997; GFX12-CU:       ; %bb.0: ; %entry998; GFX12-CU-NEXT:    s_endpgm999;1000; GFX1250-LABEL: wavefront_one_as_seq_cst_fence:1001; GFX1250:       ; %bb.0: ; %entry1002; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11003; GFX1250-NEXT:    s_endpgm1004entry:1005  fence syncscope("wavefront-one-as") seq_cst1006  ret void1007}1008 1009define amdgpu_kernel void @workgroup_acquire_fence() {1010; GFX6-LABEL: workgroup_acquire_fence:1011; GFX6:       ; %bb.0: ; %entry1012; GFX6-NEXT:    s_waitcnt lgkmcnt(0)1013; GFX6-NEXT:    s_endpgm1014;1015; GFX7-LABEL: workgroup_acquire_fence:1016; GFX7:       ; %bb.0: ; %entry1017; GFX7-NEXT:    s_waitcnt lgkmcnt(0)1018; GFX7-NEXT:    s_endpgm1019;1020; GFX10-WGP-LABEL: workgroup_acquire_fence:1021; GFX10-WGP:       ; %bb.0: ; %entry1022; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1023; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x01024; GFX10-WGP-NEXT:    buffer_gl0_inv1025; GFX10-WGP-NEXT:    s_endpgm1026;1027; GFX10-CU-LABEL: workgroup_acquire_fence:1028; GFX10-CU:       ; %bb.0: ; %entry1029; GFX10-CU-NEXT:    s_waitcnt lgkmcnt(0)1030; GFX10-CU-NEXT:    s_endpgm1031;1032; SKIP-CACHE-INV-LABEL: workgroup_acquire_fence:1033; SKIP-CACHE-INV:       ; %bb.0: ; %entry1034; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)1035; SKIP-CACHE-INV-NEXT:    s_endpgm1036;1037; GFX90A-NOTTGSPLIT-LABEL: workgroup_acquire_fence:1038; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry1039; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)1040; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm1041;1042; GFX90A-TGSPLIT-LABEL: workgroup_acquire_fence:1043; GFX90A-TGSPLIT:       ; %bb.0: ; %entry1044; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1045; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol1046; GFX90A-TGSPLIT-NEXT:    s_endpgm1047;1048; GFX942-NOTTGSPLIT-LABEL: workgroup_acquire_fence:1049; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry1050; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)1051; GFX942-NOTTGSPLIT-NEXT:    s_endpgm1052;1053; GFX942-TGSPLIT-LABEL: workgroup_acquire_fence:1054; GFX942-TGSPLIT:       ; %bb.0: ; %entry1055; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1056; GFX942-TGSPLIT-NEXT:    buffer_inv sc01057; GFX942-TGSPLIT-NEXT:    s_endpgm1058;1059; GFX11-WGP-LABEL: workgroup_acquire_fence:1060; GFX11-WGP:       ; %bb.0: ; %entry1061; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1062; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x01063; GFX11-WGP-NEXT:    buffer_gl0_inv1064; GFX11-WGP-NEXT:    s_endpgm1065;1066; GFX11-CU-LABEL: workgroup_acquire_fence:1067; GFX11-CU:       ; %bb.0: ; %entry1068; GFX11-CU-NEXT:    s_waitcnt lgkmcnt(0)1069; GFX11-CU-NEXT:    s_endpgm1070;1071; GFX12-WGP-LABEL: workgroup_acquire_fence:1072; GFX12-WGP:       ; %bb.0: ; %entry1073; GFX12-WGP-NEXT:    s_wait_storecnt 0x01074; GFX12-WGP-NEXT:    s_wait_loadcnt_dscnt 0x01075; GFX12-WGP-NEXT:    global_inv scope:SCOPE_SE1076; GFX12-WGP-NEXT:    s_endpgm1077;1078; GFX12-CU-LABEL: workgroup_acquire_fence:1079; GFX12-CU:       ; %bb.0: ; %entry1080; GFX12-CU-NEXT:    s_wait_dscnt 0x01081; GFX12-CU-NEXT:    s_endpgm1082;1083; GFX1250-LABEL: workgroup_acquire_fence:1084; GFX1250:       ; %bb.0: ; %entry1085; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11086; GFX1250-NEXT:    s_wait_storecnt 0x01087; GFX1250-NEXT:    s_wait_loadcnt_dscnt 0x01088; GFX1250-NEXT:    s_endpgm1089entry:1090  fence syncscope("workgroup") acquire1091  ret void1092}1093 1094define amdgpu_kernel void @workgroup_release_fence() {1095; GFX6-LABEL: workgroup_release_fence:1096; GFX6:       ; %bb.0: ; %entry1097; GFX6-NEXT:    s_waitcnt lgkmcnt(0)1098; GFX6-NEXT:    s_endpgm1099;1100; GFX7-LABEL: workgroup_release_fence:1101; GFX7:       ; %bb.0: ; %entry1102; GFX7-NEXT:    s_waitcnt lgkmcnt(0)1103; GFX7-NEXT:    s_endpgm1104;1105; GFX10-WGP-LABEL: workgroup_release_fence:1106; GFX10-WGP:       ; %bb.0: ; %entry1107; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1108; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x01109; GFX10-WGP-NEXT:    s_endpgm1110;1111; GFX10-CU-LABEL: workgroup_release_fence:1112; GFX10-CU:       ; %bb.0: ; %entry1113; GFX10-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1114; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x01115; GFX10-CU-NEXT:    s_endpgm1116;1117; SKIP-CACHE-INV-LABEL: workgroup_release_fence:1118; SKIP-CACHE-INV:       ; %bb.0: ; %entry1119; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)1120; SKIP-CACHE-INV-NEXT:    s_endpgm1121;1122; GFX90A-NOTTGSPLIT-LABEL: workgroup_release_fence:1123; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry1124; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)1125; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm1126;1127; GFX90A-TGSPLIT-LABEL: workgroup_release_fence:1128; GFX90A-TGSPLIT:       ; %bb.0: ; %entry1129; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1130; GFX90A-TGSPLIT-NEXT:    s_endpgm1131;1132; GFX942-NOTTGSPLIT-LABEL: workgroup_release_fence:1133; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry1134; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)1135; GFX942-NOTTGSPLIT-NEXT:    s_endpgm1136;1137; GFX942-TGSPLIT-LABEL: workgroup_release_fence:1138; GFX942-TGSPLIT:       ; %bb.0: ; %entry1139; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1140; GFX942-TGSPLIT-NEXT:    s_endpgm1141;1142; GFX11-WGP-LABEL: workgroup_release_fence:1143; GFX11-WGP:       ; %bb.0: ; %entry1144; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1145; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x01146; GFX11-WGP-NEXT:    s_endpgm1147;1148; GFX11-CU-LABEL: workgroup_release_fence:1149; GFX11-CU:       ; %bb.0: ; %entry1150; GFX11-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1151; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x01152; GFX11-CU-NEXT:    s_endpgm1153;1154; GFX12-WGP-LABEL: workgroup_release_fence:1155; GFX12-WGP:       ; %bb.0: ; %entry1156; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x01157; GFX12-WGP-NEXT:    s_wait_samplecnt 0x01158; GFX12-WGP-NEXT:    s_wait_storecnt 0x01159; GFX12-WGP-NEXT:    s_wait_loadcnt_dscnt 0x01160; GFX12-WGP-NEXT:    s_endpgm1161;1162; GFX12-CU-LABEL: workgroup_release_fence:1163; GFX12-CU:       ; %bb.0: ; %entry1164; GFX12-CU-NEXT:    s_wait_bvhcnt 0x01165; GFX12-CU-NEXT:    s_wait_samplecnt 0x01166; GFX12-CU-NEXT:    s_wait_storecnt 0x01167; GFX12-CU-NEXT:    s_wait_loadcnt_dscnt 0x01168; GFX12-CU-NEXT:    s_endpgm1169;1170; GFX1250-LABEL: workgroup_release_fence:1171; GFX1250:       ; %bb.0: ; %entry1172; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11173; GFX1250-NEXT:    s_wait_storecnt 0x01174; GFX1250-NEXT:    s_wait_loadcnt_dscnt 0x01175; GFX1250-NEXT:    s_endpgm1176entry:1177  fence syncscope("workgroup") release1178  ret void1179}1180 1181define amdgpu_kernel void @workgroup_acq_rel_fence() {1182; GFX6-LABEL: workgroup_acq_rel_fence:1183; GFX6:       ; %bb.0: ; %entry1184; GFX6-NEXT:    s_waitcnt lgkmcnt(0)1185; GFX6-NEXT:    s_endpgm1186;1187; GFX7-LABEL: workgroup_acq_rel_fence:1188; GFX7:       ; %bb.0: ; %entry1189; GFX7-NEXT:    s_waitcnt lgkmcnt(0)1190; GFX7-NEXT:    s_endpgm1191;1192; GFX10-WGP-LABEL: workgroup_acq_rel_fence:1193; GFX10-WGP:       ; %bb.0: ; %entry1194; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1195; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x01196; GFX10-WGP-NEXT:    buffer_gl0_inv1197; GFX10-WGP-NEXT:    s_endpgm1198;1199; GFX10-CU-LABEL: workgroup_acq_rel_fence:1200; GFX10-CU:       ; %bb.0: ; %entry1201; GFX10-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1202; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x01203; GFX10-CU-NEXT:    s_endpgm1204;1205; SKIP-CACHE-INV-LABEL: workgroup_acq_rel_fence:1206; SKIP-CACHE-INV:       ; %bb.0: ; %entry1207; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)1208; SKIP-CACHE-INV-NEXT:    s_endpgm1209;1210; GFX90A-NOTTGSPLIT-LABEL: workgroup_acq_rel_fence:1211; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry1212; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)1213; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm1214;1215; GFX90A-TGSPLIT-LABEL: workgroup_acq_rel_fence:1216; GFX90A-TGSPLIT:       ; %bb.0: ; %entry1217; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1218; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol1219; GFX90A-TGSPLIT-NEXT:    s_endpgm1220;1221; GFX942-NOTTGSPLIT-LABEL: workgroup_acq_rel_fence:1222; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry1223; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)1224; GFX942-NOTTGSPLIT-NEXT:    s_endpgm1225;1226; GFX942-TGSPLIT-LABEL: workgroup_acq_rel_fence:1227; GFX942-TGSPLIT:       ; %bb.0: ; %entry1228; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1229; GFX942-TGSPLIT-NEXT:    buffer_inv sc01230; GFX942-TGSPLIT-NEXT:    s_endpgm1231;1232; GFX11-WGP-LABEL: workgroup_acq_rel_fence:1233; GFX11-WGP:       ; %bb.0: ; %entry1234; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1235; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x01236; GFX11-WGP-NEXT:    buffer_gl0_inv1237; GFX11-WGP-NEXT:    s_endpgm1238;1239; GFX11-CU-LABEL: workgroup_acq_rel_fence:1240; GFX11-CU:       ; %bb.0: ; %entry1241; GFX11-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1242; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x01243; GFX11-CU-NEXT:    s_endpgm1244;1245; GFX12-WGP-LABEL: workgroup_acq_rel_fence:1246; GFX12-WGP:       ; %bb.0: ; %entry1247; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x01248; GFX12-WGP-NEXT:    s_wait_samplecnt 0x01249; GFX12-WGP-NEXT:    s_wait_storecnt 0x01250; GFX12-WGP-NEXT:    s_wait_loadcnt_dscnt 0x01251; GFX12-WGP-NEXT:    global_inv scope:SCOPE_SE1252; GFX12-WGP-NEXT:    s_endpgm1253;1254; GFX12-CU-LABEL: workgroup_acq_rel_fence:1255; GFX12-CU:       ; %bb.0: ; %entry1256; GFX12-CU-NEXT:    s_wait_bvhcnt 0x01257; GFX12-CU-NEXT:    s_wait_samplecnt 0x01258; GFX12-CU-NEXT:    s_wait_storecnt 0x01259; GFX12-CU-NEXT:    s_wait_loadcnt_dscnt 0x01260; GFX12-CU-NEXT:    s_endpgm1261;1262; GFX1250-LABEL: workgroup_acq_rel_fence:1263; GFX1250:       ; %bb.0: ; %entry1264; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11265; GFX1250-NEXT:    s_wait_storecnt 0x01266; GFX1250-NEXT:    s_wait_loadcnt_dscnt 0x01267; GFX1250-NEXT:    s_endpgm1268entry:1269  fence syncscope("workgroup") acq_rel1270  ret void1271}1272 1273define amdgpu_kernel void @workgroup_seq_cst_fence() {1274; GFX6-LABEL: workgroup_seq_cst_fence:1275; GFX6:       ; %bb.0: ; %entry1276; GFX6-NEXT:    s_waitcnt lgkmcnt(0)1277; GFX6-NEXT:    s_endpgm1278;1279; GFX7-LABEL: workgroup_seq_cst_fence:1280; GFX7:       ; %bb.0: ; %entry1281; GFX7-NEXT:    s_waitcnt lgkmcnt(0)1282; GFX7-NEXT:    s_endpgm1283;1284; GFX10-WGP-LABEL: workgroup_seq_cst_fence:1285; GFX10-WGP:       ; %bb.0: ; %entry1286; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1287; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x01288; GFX10-WGP-NEXT:    buffer_gl0_inv1289; GFX10-WGP-NEXT:    s_endpgm1290;1291; GFX10-CU-LABEL: workgroup_seq_cst_fence:1292; GFX10-CU:       ; %bb.0: ; %entry1293; GFX10-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1294; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x01295; GFX10-CU-NEXT:    s_endpgm1296;1297; SKIP-CACHE-INV-LABEL: workgroup_seq_cst_fence:1298; SKIP-CACHE-INV:       ; %bb.0: ; %entry1299; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)1300; SKIP-CACHE-INV-NEXT:    s_endpgm1301;1302; GFX90A-NOTTGSPLIT-LABEL: workgroup_seq_cst_fence:1303; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry1304; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)1305; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm1306;1307; GFX90A-TGSPLIT-LABEL: workgroup_seq_cst_fence:1308; GFX90A-TGSPLIT:       ; %bb.0: ; %entry1309; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1310; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol1311; GFX90A-TGSPLIT-NEXT:    s_endpgm1312;1313; GFX942-NOTTGSPLIT-LABEL: workgroup_seq_cst_fence:1314; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry1315; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)1316; GFX942-NOTTGSPLIT-NEXT:    s_endpgm1317;1318; GFX942-TGSPLIT-LABEL: workgroup_seq_cst_fence:1319; GFX942-TGSPLIT:       ; %bb.0: ; %entry1320; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1321; GFX942-TGSPLIT-NEXT:    buffer_inv sc01322; GFX942-TGSPLIT-NEXT:    s_endpgm1323;1324; GFX11-WGP-LABEL: workgroup_seq_cst_fence:1325; GFX11-WGP:       ; %bb.0: ; %entry1326; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1327; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x01328; GFX11-WGP-NEXT:    buffer_gl0_inv1329; GFX11-WGP-NEXT:    s_endpgm1330;1331; GFX11-CU-LABEL: workgroup_seq_cst_fence:1332; GFX11-CU:       ; %bb.0: ; %entry1333; GFX11-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1334; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x01335; GFX11-CU-NEXT:    s_endpgm1336;1337; GFX12-WGP-LABEL: workgroup_seq_cst_fence:1338; GFX12-WGP:       ; %bb.0: ; %entry1339; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x01340; GFX12-WGP-NEXT:    s_wait_samplecnt 0x01341; GFX12-WGP-NEXT:    s_wait_storecnt 0x01342; GFX12-WGP-NEXT:    s_wait_loadcnt_dscnt 0x01343; GFX12-WGP-NEXT:    global_inv scope:SCOPE_SE1344; GFX12-WGP-NEXT:    s_endpgm1345;1346; GFX12-CU-LABEL: workgroup_seq_cst_fence:1347; GFX12-CU:       ; %bb.0: ; %entry1348; GFX12-CU-NEXT:    s_wait_bvhcnt 0x01349; GFX12-CU-NEXT:    s_wait_samplecnt 0x01350; GFX12-CU-NEXT:    s_wait_storecnt 0x01351; GFX12-CU-NEXT:    s_wait_loadcnt_dscnt 0x01352; GFX12-CU-NEXT:    s_endpgm1353;1354; GFX1250-LABEL: workgroup_seq_cst_fence:1355; GFX1250:       ; %bb.0: ; %entry1356; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11357; GFX1250-NEXT:    s_wait_storecnt 0x01358; GFX1250-NEXT:    s_wait_loadcnt_dscnt 0x01359; GFX1250-NEXT:    s_endpgm1360entry:1361  fence syncscope("workgroup") seq_cst1362  ret void1363}1364 1365define amdgpu_kernel void @workgroup_one_as_acquire_fence() {1366; GFX6-LABEL: workgroup_one_as_acquire_fence:1367; GFX6:       ; %bb.0: ; %entry1368; GFX6-NEXT:    s_endpgm1369;1370; GFX7-LABEL: workgroup_one_as_acquire_fence:1371; GFX7:       ; %bb.0: ; %entry1372; GFX7-NEXT:    s_endpgm1373;1374; GFX10-WGP-LABEL: workgroup_one_as_acquire_fence:1375; GFX10-WGP:       ; %bb.0: ; %entry1376; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0)1377; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x01378; GFX10-WGP-NEXT:    buffer_gl0_inv1379; GFX10-WGP-NEXT:    s_endpgm1380;1381; GFX10-CU-LABEL: workgroup_one_as_acquire_fence:1382; GFX10-CU:       ; %bb.0: ; %entry1383; GFX10-CU-NEXT:    s_endpgm1384;1385; SKIP-CACHE-INV-LABEL: workgroup_one_as_acquire_fence:1386; SKIP-CACHE-INV:       ; %bb.0: ; %entry1387; SKIP-CACHE-INV-NEXT:    s_endpgm1388;1389; GFX90A-NOTTGSPLIT-LABEL: workgroup_one_as_acquire_fence:1390; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry1391; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm1392;1393; GFX90A-TGSPLIT-LABEL: workgroup_one_as_acquire_fence:1394; GFX90A-TGSPLIT:       ; %bb.0: ; %entry1395; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)1396; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol1397; GFX90A-TGSPLIT-NEXT:    s_endpgm1398;1399; GFX942-NOTTGSPLIT-LABEL: workgroup_one_as_acquire_fence:1400; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry1401; GFX942-NOTTGSPLIT-NEXT:    s_endpgm1402;1403; GFX942-TGSPLIT-LABEL: workgroup_one_as_acquire_fence:1404; GFX942-TGSPLIT:       ; %bb.0: ; %entry1405; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)1406; GFX942-TGSPLIT-NEXT:    buffer_inv sc01407; GFX942-TGSPLIT-NEXT:    s_endpgm1408;1409; GFX11-WGP-LABEL: workgroup_one_as_acquire_fence:1410; GFX11-WGP:       ; %bb.0: ; %entry1411; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0)1412; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x01413; GFX11-WGP-NEXT:    buffer_gl0_inv1414; GFX11-WGP-NEXT:    s_endpgm1415;1416; GFX11-CU-LABEL: workgroup_one_as_acquire_fence:1417; GFX11-CU:       ; %bb.0: ; %entry1418; GFX11-CU-NEXT:    s_endpgm1419;1420; GFX12-WGP-LABEL: workgroup_one_as_acquire_fence:1421; GFX12-WGP:       ; %bb.0: ; %entry1422; GFX12-WGP-NEXT:    s_wait_loadcnt 0x01423; GFX12-WGP-NEXT:    s_wait_storecnt 0x01424; GFX12-WGP-NEXT:    global_inv scope:SCOPE_SE1425; GFX12-WGP-NEXT:    s_endpgm1426;1427; GFX12-CU-LABEL: workgroup_one_as_acquire_fence:1428; GFX12-CU:       ; %bb.0: ; %entry1429; GFX12-CU-NEXT:    s_endpgm1430;1431; GFX1250-LABEL: workgroup_one_as_acquire_fence:1432; GFX1250:       ; %bb.0: ; %entry1433; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11434; GFX1250-NEXT:    s_wait_loadcnt 0x01435; GFX1250-NEXT:    s_wait_storecnt 0x01436; GFX1250-NEXT:    s_endpgm1437entry:1438  fence syncscope("workgroup-one-as") acquire1439  ret void1440}1441 1442define amdgpu_kernel void @workgroup_one_as_release_fence() {1443; GFX6-LABEL: workgroup_one_as_release_fence:1444; GFX6:       ; %bb.0: ; %entry1445; GFX6-NEXT:    s_endpgm1446;1447; GFX7-LABEL: workgroup_one_as_release_fence:1448; GFX7:       ; %bb.0: ; %entry1449; GFX7-NEXT:    s_endpgm1450;1451; GFX10-WGP-LABEL: workgroup_one_as_release_fence:1452; GFX10-WGP:       ; %bb.0: ; %entry1453; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0)1454; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x01455; GFX10-WGP-NEXT:    s_endpgm1456;1457; GFX10-CU-LABEL: workgroup_one_as_release_fence:1458; GFX10-CU:       ; %bb.0: ; %entry1459; GFX10-CU-NEXT:    s_waitcnt vmcnt(0)1460; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x01461; GFX10-CU-NEXT:    s_endpgm1462;1463; SKIP-CACHE-INV-LABEL: workgroup_one_as_release_fence:1464; SKIP-CACHE-INV:       ; %bb.0: ; %entry1465; SKIP-CACHE-INV-NEXT:    s_endpgm1466;1467; GFX90A-NOTTGSPLIT-LABEL: workgroup_one_as_release_fence:1468; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry1469; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm1470;1471; GFX90A-TGSPLIT-LABEL: workgroup_one_as_release_fence:1472; GFX90A-TGSPLIT:       ; %bb.0: ; %entry1473; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)1474; GFX90A-TGSPLIT-NEXT:    s_endpgm1475;1476; GFX942-NOTTGSPLIT-LABEL: workgroup_one_as_release_fence:1477; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry1478; GFX942-NOTTGSPLIT-NEXT:    s_endpgm1479;1480; GFX942-TGSPLIT-LABEL: workgroup_one_as_release_fence:1481; GFX942-TGSPLIT:       ; %bb.0: ; %entry1482; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)1483; GFX942-TGSPLIT-NEXT:    s_endpgm1484;1485; GFX11-WGP-LABEL: workgroup_one_as_release_fence:1486; GFX11-WGP:       ; %bb.0: ; %entry1487; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0)1488; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x01489; GFX11-WGP-NEXT:    s_endpgm1490;1491; GFX11-CU-LABEL: workgroup_one_as_release_fence:1492; GFX11-CU:       ; %bb.0: ; %entry1493; GFX11-CU-NEXT:    s_waitcnt vmcnt(0)1494; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x01495; GFX11-CU-NEXT:    s_endpgm1496;1497; GFX12-WGP-LABEL: workgroup_one_as_release_fence:1498; GFX12-WGP:       ; %bb.0: ; %entry1499; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x01500; GFX12-WGP-NEXT:    s_wait_samplecnt 0x01501; GFX12-WGP-NEXT:    s_wait_loadcnt 0x01502; GFX12-WGP-NEXT:    s_wait_storecnt 0x01503; GFX12-WGP-NEXT:    s_endpgm1504;1505; GFX12-CU-LABEL: workgroup_one_as_release_fence:1506; GFX12-CU:       ; %bb.0: ; %entry1507; GFX12-CU-NEXT:    s_wait_bvhcnt 0x01508; GFX12-CU-NEXT:    s_wait_samplecnt 0x01509; GFX12-CU-NEXT:    s_wait_loadcnt 0x01510; GFX12-CU-NEXT:    s_wait_storecnt 0x01511; GFX12-CU-NEXT:    s_endpgm1512;1513; GFX1250-LABEL: workgroup_one_as_release_fence:1514; GFX1250:       ; %bb.0: ; %entry1515; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11516; GFX1250-NEXT:    s_wait_loadcnt 0x01517; GFX1250-NEXT:    s_wait_storecnt 0x01518; GFX1250-NEXT:    s_endpgm1519entry:1520  fence syncscope("workgroup-one-as") release1521  ret void1522}1523 1524define amdgpu_kernel void @workgroup_one_as_acq_rel_fence() {1525; GFX6-LABEL: workgroup_one_as_acq_rel_fence:1526; GFX6:       ; %bb.0: ; %entry1527; GFX6-NEXT:    s_endpgm1528;1529; GFX7-LABEL: workgroup_one_as_acq_rel_fence:1530; GFX7:       ; %bb.0: ; %entry1531; GFX7-NEXT:    s_endpgm1532;1533; GFX10-WGP-LABEL: workgroup_one_as_acq_rel_fence:1534; GFX10-WGP:       ; %bb.0: ; %entry1535; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0)1536; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x01537; GFX10-WGP-NEXT:    buffer_gl0_inv1538; GFX10-WGP-NEXT:    s_endpgm1539;1540; GFX10-CU-LABEL: workgroup_one_as_acq_rel_fence:1541; GFX10-CU:       ; %bb.0: ; %entry1542; GFX10-CU-NEXT:    s_waitcnt vmcnt(0)1543; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x01544; GFX10-CU-NEXT:    s_endpgm1545;1546; SKIP-CACHE-INV-LABEL: workgroup_one_as_acq_rel_fence:1547; SKIP-CACHE-INV:       ; %bb.0: ; %entry1548; SKIP-CACHE-INV-NEXT:    s_endpgm1549;1550; GFX90A-NOTTGSPLIT-LABEL: workgroup_one_as_acq_rel_fence:1551; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry1552; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm1553;1554; GFX90A-TGSPLIT-LABEL: workgroup_one_as_acq_rel_fence:1555; GFX90A-TGSPLIT:       ; %bb.0: ; %entry1556; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)1557; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol1558; GFX90A-TGSPLIT-NEXT:    s_endpgm1559;1560; GFX942-NOTTGSPLIT-LABEL: workgroup_one_as_acq_rel_fence:1561; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry1562; GFX942-NOTTGSPLIT-NEXT:    s_endpgm1563;1564; GFX942-TGSPLIT-LABEL: workgroup_one_as_acq_rel_fence:1565; GFX942-TGSPLIT:       ; %bb.0: ; %entry1566; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)1567; GFX942-TGSPLIT-NEXT:    buffer_inv sc01568; GFX942-TGSPLIT-NEXT:    s_endpgm1569;1570; GFX11-WGP-LABEL: workgroup_one_as_acq_rel_fence:1571; GFX11-WGP:       ; %bb.0: ; %entry1572; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0)1573; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x01574; GFX11-WGP-NEXT:    buffer_gl0_inv1575; GFX11-WGP-NEXT:    s_endpgm1576;1577; GFX11-CU-LABEL: workgroup_one_as_acq_rel_fence:1578; GFX11-CU:       ; %bb.0: ; %entry1579; GFX11-CU-NEXT:    s_waitcnt vmcnt(0)1580; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x01581; GFX11-CU-NEXT:    s_endpgm1582;1583; GFX12-WGP-LABEL: workgroup_one_as_acq_rel_fence:1584; GFX12-WGP:       ; %bb.0: ; %entry1585; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x01586; GFX12-WGP-NEXT:    s_wait_samplecnt 0x01587; GFX12-WGP-NEXT:    s_wait_loadcnt 0x01588; GFX12-WGP-NEXT:    s_wait_storecnt 0x01589; GFX12-WGP-NEXT:    global_inv scope:SCOPE_SE1590; GFX12-WGP-NEXT:    s_endpgm1591;1592; GFX12-CU-LABEL: workgroup_one_as_acq_rel_fence:1593; GFX12-CU:       ; %bb.0: ; %entry1594; GFX12-CU-NEXT:    s_wait_bvhcnt 0x01595; GFX12-CU-NEXT:    s_wait_samplecnt 0x01596; GFX12-CU-NEXT:    s_wait_loadcnt 0x01597; GFX12-CU-NEXT:    s_wait_storecnt 0x01598; GFX12-CU-NEXT:    s_endpgm1599;1600; GFX1250-LABEL: workgroup_one_as_acq_rel_fence:1601; GFX1250:       ; %bb.0: ; %entry1602; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11603; GFX1250-NEXT:    s_wait_loadcnt 0x01604; GFX1250-NEXT:    s_wait_storecnt 0x01605; GFX1250-NEXT:    s_endpgm1606entry:1607  fence syncscope("workgroup-one-as") acq_rel1608  ret void1609}1610 1611define amdgpu_kernel void @workgroup_one_as_seq_cst_fence() {1612; GFX6-LABEL: workgroup_one_as_seq_cst_fence:1613; GFX6:       ; %bb.0: ; %entry1614; GFX6-NEXT:    s_endpgm1615;1616; GFX7-LABEL: workgroup_one_as_seq_cst_fence:1617; GFX7:       ; %bb.0: ; %entry1618; GFX7-NEXT:    s_endpgm1619;1620; GFX10-WGP-LABEL: workgroup_one_as_seq_cst_fence:1621; GFX10-WGP:       ; %bb.0: ; %entry1622; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0)1623; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x01624; GFX10-WGP-NEXT:    buffer_gl0_inv1625; GFX10-WGP-NEXT:    s_endpgm1626;1627; GFX10-CU-LABEL: workgroup_one_as_seq_cst_fence:1628; GFX10-CU:       ; %bb.0: ; %entry1629; GFX10-CU-NEXT:    s_waitcnt vmcnt(0)1630; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x01631; GFX10-CU-NEXT:    s_endpgm1632;1633; SKIP-CACHE-INV-LABEL: workgroup_one_as_seq_cst_fence:1634; SKIP-CACHE-INV:       ; %bb.0: ; %entry1635; SKIP-CACHE-INV-NEXT:    s_endpgm1636;1637; GFX90A-NOTTGSPLIT-LABEL: workgroup_one_as_seq_cst_fence:1638; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry1639; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm1640;1641; GFX90A-TGSPLIT-LABEL: workgroup_one_as_seq_cst_fence:1642; GFX90A-TGSPLIT:       ; %bb.0: ; %entry1643; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)1644; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol1645; GFX90A-TGSPLIT-NEXT:    s_endpgm1646;1647; GFX942-NOTTGSPLIT-LABEL: workgroup_one_as_seq_cst_fence:1648; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry1649; GFX942-NOTTGSPLIT-NEXT:    s_endpgm1650;1651; GFX942-TGSPLIT-LABEL: workgroup_one_as_seq_cst_fence:1652; GFX942-TGSPLIT:       ; %bb.0: ; %entry1653; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)1654; GFX942-TGSPLIT-NEXT:    buffer_inv sc01655; GFX942-TGSPLIT-NEXT:    s_endpgm1656;1657; GFX11-WGP-LABEL: workgroup_one_as_seq_cst_fence:1658; GFX11-WGP:       ; %bb.0: ; %entry1659; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0)1660; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x01661; GFX11-WGP-NEXT:    buffer_gl0_inv1662; GFX11-WGP-NEXT:    s_endpgm1663;1664; GFX11-CU-LABEL: workgroup_one_as_seq_cst_fence:1665; GFX11-CU:       ; %bb.0: ; %entry1666; GFX11-CU-NEXT:    s_waitcnt vmcnt(0)1667; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x01668; GFX11-CU-NEXT:    s_endpgm1669;1670; GFX12-WGP-LABEL: workgroup_one_as_seq_cst_fence:1671; GFX12-WGP:       ; %bb.0: ; %entry1672; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x01673; GFX12-WGP-NEXT:    s_wait_samplecnt 0x01674; GFX12-WGP-NEXT:    s_wait_loadcnt 0x01675; GFX12-WGP-NEXT:    s_wait_storecnt 0x01676; GFX12-WGP-NEXT:    global_inv scope:SCOPE_SE1677; GFX12-WGP-NEXT:    s_endpgm1678;1679; GFX12-CU-LABEL: workgroup_one_as_seq_cst_fence:1680; GFX12-CU:       ; %bb.0: ; %entry1681; GFX12-CU-NEXT:    s_wait_bvhcnt 0x01682; GFX12-CU-NEXT:    s_wait_samplecnt 0x01683; GFX12-CU-NEXT:    s_wait_loadcnt 0x01684; GFX12-CU-NEXT:    s_wait_storecnt 0x01685; GFX12-CU-NEXT:    s_endpgm1686;1687; GFX1250-LABEL: workgroup_one_as_seq_cst_fence:1688; GFX1250:       ; %bb.0: ; %entry1689; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11690; GFX1250-NEXT:    s_wait_loadcnt 0x01691; GFX1250-NEXT:    s_wait_storecnt 0x01692; GFX1250-NEXT:    s_endpgm1693entry:1694  fence syncscope("workgroup-one-as") seq_cst1695  ret void1696}1697 1698 1699define amdgpu_kernel void @cluster_acquire_fence() {1700; GFX6-LABEL: cluster_acquire_fence:1701; GFX6:       ; %bb.0: ; %entry1702; GFX6-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1703; GFX6-NEXT:    buffer_wbinvl11704; GFX6-NEXT:    s_endpgm1705;1706; GFX7-LABEL: cluster_acquire_fence:1707; GFX7:       ; %bb.0: ; %entry1708; GFX7-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1709; GFX7-NEXT:    buffer_wbinvl1_vol1710; GFX7-NEXT:    s_endpgm1711;1712; GFX10-WGP-LABEL: cluster_acquire_fence:1713; GFX10-WGP:       ; %bb.0: ; %entry1714; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1715; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x01716; GFX10-WGP-NEXT:    buffer_gl1_inv1717; GFX10-WGP-NEXT:    buffer_gl0_inv1718; GFX10-WGP-NEXT:    s_endpgm1719;1720; GFX10-CU-LABEL: cluster_acquire_fence:1721; GFX10-CU:       ; %bb.0: ; %entry1722; GFX10-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1723; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x01724; GFX10-CU-NEXT:    buffer_gl1_inv1725; GFX10-CU-NEXT:    buffer_gl0_inv1726; GFX10-CU-NEXT:    s_endpgm1727;1728; SKIP-CACHE-INV-LABEL: cluster_acquire_fence:1729; SKIP-CACHE-INV:       ; %bb.0: ; %entry1730; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1731; SKIP-CACHE-INV-NEXT:    s_endpgm1732;1733; GFX90A-NOTTGSPLIT-LABEL: cluster_acquire_fence:1734; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry1735; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1736; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbinvl1_vol1737; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm1738;1739; GFX90A-TGSPLIT-LABEL: cluster_acquire_fence:1740; GFX90A-TGSPLIT:       ; %bb.0: ; %entry1741; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1742; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol1743; GFX90A-TGSPLIT-NEXT:    s_endpgm1744;1745; GFX942-NOTTGSPLIT-LABEL: cluster_acquire_fence:1746; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry1747; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1748; GFX942-NOTTGSPLIT-NEXT:    buffer_inv sc11749; GFX942-NOTTGSPLIT-NEXT:    s_endpgm1750;1751; GFX942-TGSPLIT-LABEL: cluster_acquire_fence:1752; GFX942-TGSPLIT:       ; %bb.0: ; %entry1753; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1754; GFX942-TGSPLIT-NEXT:    buffer_inv sc11755; GFX942-TGSPLIT-NEXT:    s_endpgm1756;1757; GFX11-WGP-LABEL: cluster_acquire_fence:1758; GFX11-WGP:       ; %bb.0: ; %entry1759; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1760; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x01761; GFX11-WGP-NEXT:    buffer_gl1_inv1762; GFX11-WGP-NEXT:    buffer_gl0_inv1763; GFX11-WGP-NEXT:    s_endpgm1764;1765; GFX11-CU-LABEL: cluster_acquire_fence:1766; GFX11-CU:       ; %bb.0: ; %entry1767; GFX11-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1768; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x01769; GFX11-CU-NEXT:    buffer_gl1_inv1770; GFX11-CU-NEXT:    buffer_gl0_inv1771; GFX11-CU-NEXT:    s_endpgm1772;1773; GFX12-WGP-LABEL: cluster_acquire_fence:1774; GFX12-WGP:       ; %bb.0: ; %entry1775; GFX12-WGP-NEXT:    s_wait_storecnt 0x01776; GFX12-WGP-NEXT:    s_wait_loadcnt_dscnt 0x01777; GFX12-WGP-NEXT:    global_inv scope:SCOPE_DEV1778; GFX12-WGP-NEXT:    s_endpgm1779;1780; GFX12-CU-LABEL: cluster_acquire_fence:1781; GFX12-CU:       ; %bb.0: ; %entry1782; GFX12-CU-NEXT:    s_wait_storecnt 0x01783; GFX12-CU-NEXT:    s_wait_loadcnt_dscnt 0x01784; GFX12-CU-NEXT:    global_inv scope:SCOPE_DEV1785; GFX12-CU-NEXT:    s_endpgm1786;1787; GFX1250-LABEL: cluster_acquire_fence:1788; GFX1250:       ; %bb.0: ; %entry1789; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11790; GFX1250-NEXT:    s_wait_storecnt 0x01791; GFX1250-NEXT:    s_wait_loadcnt_dscnt 0x01792; GFX1250-NEXT:    global_inv scope:SCOPE_SE1793; GFX1250-NEXT:    s_endpgm1794entry:1795  fence syncscope("cluster") acquire1796  ret void1797}1798 1799define amdgpu_kernel void @cluster_release_fence() {1800; GFX6-LABEL: cluster_release_fence:1801; GFX6:       ; %bb.0: ; %entry1802; GFX6-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1803; GFX6-NEXT:    s_endpgm1804;1805; GFX7-LABEL: cluster_release_fence:1806; GFX7:       ; %bb.0: ; %entry1807; GFX7-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1808; GFX7-NEXT:    s_endpgm1809;1810; GFX10-WGP-LABEL: cluster_release_fence:1811; GFX10-WGP:       ; %bb.0: ; %entry1812; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1813; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x01814; GFX10-WGP-NEXT:    s_endpgm1815;1816; GFX10-CU-LABEL: cluster_release_fence:1817; GFX10-CU:       ; %bb.0: ; %entry1818; GFX10-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1819; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x01820; GFX10-CU-NEXT:    s_endpgm1821;1822; SKIP-CACHE-INV-LABEL: cluster_release_fence:1823; SKIP-CACHE-INV:       ; %bb.0: ; %entry1824; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1825; SKIP-CACHE-INV-NEXT:    s_endpgm1826;1827; GFX90A-NOTTGSPLIT-LABEL: cluster_release_fence:1828; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry1829; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1830; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm1831;1832; GFX90A-TGSPLIT-LABEL: cluster_release_fence:1833; GFX90A-TGSPLIT:       ; %bb.0: ; %entry1834; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1835; GFX90A-TGSPLIT-NEXT:    s_endpgm1836;1837; GFX942-NOTTGSPLIT-LABEL: cluster_release_fence:1838; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry1839; GFX942-NOTTGSPLIT-NEXT:    buffer_wbl2 sc11840; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1841; GFX942-NOTTGSPLIT-NEXT:    s_endpgm1842;1843; GFX942-TGSPLIT-LABEL: cluster_release_fence:1844; GFX942-TGSPLIT:       ; %bb.0: ; %entry1845; GFX942-TGSPLIT-NEXT:    buffer_wbl2 sc11846; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1847; GFX942-TGSPLIT-NEXT:    s_endpgm1848;1849; GFX11-WGP-LABEL: cluster_release_fence:1850; GFX11-WGP:       ; %bb.0: ; %entry1851; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1852; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x01853; GFX11-WGP-NEXT:    s_endpgm1854;1855; GFX11-CU-LABEL: cluster_release_fence:1856; GFX11-CU:       ; %bb.0: ; %entry1857; GFX11-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1858; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x01859; GFX11-CU-NEXT:    s_endpgm1860;1861; GFX12-WGP-LABEL: cluster_release_fence:1862; GFX12-WGP:       ; %bb.0: ; %entry1863; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x01864; GFX12-WGP-NEXT:    s_wait_samplecnt 0x01865; GFX12-WGP-NEXT:    s_wait_storecnt 0x01866; GFX12-WGP-NEXT:    s_wait_loadcnt_dscnt 0x01867; GFX12-WGP-NEXT:    s_endpgm1868;1869; GFX12-CU-LABEL: cluster_release_fence:1870; GFX12-CU:       ; %bb.0: ; %entry1871; GFX12-CU-NEXT:    s_wait_bvhcnt 0x01872; GFX12-CU-NEXT:    s_wait_samplecnt 0x01873; GFX12-CU-NEXT:    s_wait_storecnt 0x01874; GFX12-CU-NEXT:    s_wait_loadcnt_dscnt 0x01875; GFX12-CU-NEXT:    s_endpgm1876;1877; GFX1250-LABEL: cluster_release_fence:1878; GFX1250:       ; %bb.0: ; %entry1879; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11880; GFX1250-NEXT:    s_wait_storecnt 0x01881; GFX1250-NEXT:    s_wait_loadcnt_dscnt 0x01882; GFX1250-NEXT:    s_endpgm1883entry:1884  fence syncscope("cluster") release1885  ret void1886}1887 1888define amdgpu_kernel void @cluster_acq_rel_fence() {1889; GFX6-LABEL: cluster_acq_rel_fence:1890; GFX6:       ; %bb.0: ; %entry1891; GFX6-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1892; GFX6-NEXT:    buffer_wbinvl11893; GFX6-NEXT:    s_endpgm1894;1895; GFX7-LABEL: cluster_acq_rel_fence:1896; GFX7:       ; %bb.0: ; %entry1897; GFX7-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1898; GFX7-NEXT:    buffer_wbinvl1_vol1899; GFX7-NEXT:    s_endpgm1900;1901; GFX10-WGP-LABEL: cluster_acq_rel_fence:1902; GFX10-WGP:       ; %bb.0: ; %entry1903; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1904; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x01905; GFX10-WGP-NEXT:    buffer_gl1_inv1906; GFX10-WGP-NEXT:    buffer_gl0_inv1907; GFX10-WGP-NEXT:    s_endpgm1908;1909; GFX10-CU-LABEL: cluster_acq_rel_fence:1910; GFX10-CU:       ; %bb.0: ; %entry1911; GFX10-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1912; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x01913; GFX10-CU-NEXT:    buffer_gl1_inv1914; GFX10-CU-NEXT:    buffer_gl0_inv1915; GFX10-CU-NEXT:    s_endpgm1916;1917; SKIP-CACHE-INV-LABEL: cluster_acq_rel_fence:1918; SKIP-CACHE-INV:       ; %bb.0: ; %entry1919; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1920; SKIP-CACHE-INV-NEXT:    s_endpgm1921;1922; GFX90A-NOTTGSPLIT-LABEL: cluster_acq_rel_fence:1923; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry1924; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1925; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbinvl1_vol1926; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm1927;1928; GFX90A-TGSPLIT-LABEL: cluster_acq_rel_fence:1929; GFX90A-TGSPLIT:       ; %bb.0: ; %entry1930; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1931; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol1932; GFX90A-TGSPLIT-NEXT:    s_endpgm1933;1934; GFX942-NOTTGSPLIT-LABEL: cluster_acq_rel_fence:1935; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry1936; GFX942-NOTTGSPLIT-NEXT:    buffer_wbl2 sc11937; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1938; GFX942-NOTTGSPLIT-NEXT:    buffer_inv sc11939; GFX942-NOTTGSPLIT-NEXT:    s_endpgm1940;1941; GFX942-TGSPLIT-LABEL: cluster_acq_rel_fence:1942; GFX942-TGSPLIT:       ; %bb.0: ; %entry1943; GFX942-TGSPLIT-NEXT:    buffer_wbl2 sc11944; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1945; GFX942-TGSPLIT-NEXT:    buffer_inv sc11946; GFX942-TGSPLIT-NEXT:    s_endpgm1947;1948; GFX11-WGP-LABEL: cluster_acq_rel_fence:1949; GFX11-WGP:       ; %bb.0: ; %entry1950; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1951; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x01952; GFX11-WGP-NEXT:    buffer_gl1_inv1953; GFX11-WGP-NEXT:    buffer_gl0_inv1954; GFX11-WGP-NEXT:    s_endpgm1955;1956; GFX11-CU-LABEL: cluster_acq_rel_fence:1957; GFX11-CU:       ; %bb.0: ; %entry1958; GFX11-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1959; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x01960; GFX11-CU-NEXT:    buffer_gl1_inv1961; GFX11-CU-NEXT:    buffer_gl0_inv1962; GFX11-CU-NEXT:    s_endpgm1963;1964; GFX12-WGP-LABEL: cluster_acq_rel_fence:1965; GFX12-WGP:       ; %bb.0: ; %entry1966; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x01967; GFX12-WGP-NEXT:    s_wait_samplecnt 0x01968; GFX12-WGP-NEXT:    s_wait_storecnt 0x01969; GFX12-WGP-NEXT:    s_wait_loadcnt_dscnt 0x01970; GFX12-WGP-NEXT:    global_inv scope:SCOPE_DEV1971; GFX12-WGP-NEXT:    s_endpgm1972;1973; GFX12-CU-LABEL: cluster_acq_rel_fence:1974; GFX12-CU:       ; %bb.0: ; %entry1975; GFX12-CU-NEXT:    s_wait_bvhcnt 0x01976; GFX12-CU-NEXT:    s_wait_samplecnt 0x01977; GFX12-CU-NEXT:    s_wait_storecnt 0x01978; GFX12-CU-NEXT:    s_wait_loadcnt_dscnt 0x01979; GFX12-CU-NEXT:    global_inv scope:SCOPE_DEV1980; GFX12-CU-NEXT:    s_endpgm1981;1982; GFX1250-LABEL: cluster_acq_rel_fence:1983; GFX1250:       ; %bb.0: ; %entry1984; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11985; GFX1250-NEXT:    s_wait_storecnt 0x01986; GFX1250-NEXT:    s_wait_loadcnt_dscnt 0x01987; GFX1250-NEXT:    global_inv scope:SCOPE_SE1988; GFX1250-NEXT:    s_endpgm1989entry:1990  fence syncscope("cluster") acq_rel1991  ret void1992}1993 1994define amdgpu_kernel void @cluster_seq_cst_fence() {1995; GFX6-LABEL: cluster_seq_cst_fence:1996; GFX6:       ; %bb.0: ; %entry1997; GFX6-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)1998; GFX6-NEXT:    buffer_wbinvl11999; GFX6-NEXT:    s_endpgm2000;2001; GFX7-LABEL: cluster_seq_cst_fence:2002; GFX7:       ; %bb.0: ; %entry2003; GFX7-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2004; GFX7-NEXT:    buffer_wbinvl1_vol2005; GFX7-NEXT:    s_endpgm2006;2007; GFX10-WGP-LABEL: cluster_seq_cst_fence:2008; GFX10-WGP:       ; %bb.0: ; %entry2009; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2010; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x02011; GFX10-WGP-NEXT:    buffer_gl1_inv2012; GFX10-WGP-NEXT:    buffer_gl0_inv2013; GFX10-WGP-NEXT:    s_endpgm2014;2015; GFX10-CU-LABEL: cluster_seq_cst_fence:2016; GFX10-CU:       ; %bb.0: ; %entry2017; GFX10-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2018; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x02019; GFX10-CU-NEXT:    buffer_gl1_inv2020; GFX10-CU-NEXT:    buffer_gl0_inv2021; GFX10-CU-NEXT:    s_endpgm2022;2023; SKIP-CACHE-INV-LABEL: cluster_seq_cst_fence:2024; SKIP-CACHE-INV:       ; %bb.0: ; %entry2025; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2026; SKIP-CACHE-INV-NEXT:    s_endpgm2027;2028; GFX90A-NOTTGSPLIT-LABEL: cluster_seq_cst_fence:2029; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry2030; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2031; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbinvl1_vol2032; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm2033;2034; GFX90A-TGSPLIT-LABEL: cluster_seq_cst_fence:2035; GFX90A-TGSPLIT:       ; %bb.0: ; %entry2036; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2037; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol2038; GFX90A-TGSPLIT-NEXT:    s_endpgm2039;2040; GFX942-NOTTGSPLIT-LABEL: cluster_seq_cst_fence:2041; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry2042; GFX942-NOTTGSPLIT-NEXT:    buffer_wbl2 sc12043; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2044; GFX942-NOTTGSPLIT-NEXT:    buffer_inv sc12045; GFX942-NOTTGSPLIT-NEXT:    s_endpgm2046;2047; GFX942-TGSPLIT-LABEL: cluster_seq_cst_fence:2048; GFX942-TGSPLIT:       ; %bb.0: ; %entry2049; GFX942-TGSPLIT-NEXT:    buffer_wbl2 sc12050; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2051; GFX942-TGSPLIT-NEXT:    buffer_inv sc12052; GFX942-TGSPLIT-NEXT:    s_endpgm2053;2054; GFX11-WGP-LABEL: cluster_seq_cst_fence:2055; GFX11-WGP:       ; %bb.0: ; %entry2056; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2057; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x02058; GFX11-WGP-NEXT:    buffer_gl1_inv2059; GFX11-WGP-NEXT:    buffer_gl0_inv2060; GFX11-WGP-NEXT:    s_endpgm2061;2062; GFX11-CU-LABEL: cluster_seq_cst_fence:2063; GFX11-CU:       ; %bb.0: ; %entry2064; GFX11-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2065; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x02066; GFX11-CU-NEXT:    buffer_gl1_inv2067; GFX11-CU-NEXT:    buffer_gl0_inv2068; GFX11-CU-NEXT:    s_endpgm2069;2070; GFX12-WGP-LABEL: cluster_seq_cst_fence:2071; GFX12-WGP:       ; %bb.0: ; %entry2072; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x02073; GFX12-WGP-NEXT:    s_wait_samplecnt 0x02074; GFX12-WGP-NEXT:    s_wait_storecnt 0x02075; GFX12-WGP-NEXT:    s_wait_loadcnt_dscnt 0x02076; GFX12-WGP-NEXT:    global_inv scope:SCOPE_DEV2077; GFX12-WGP-NEXT:    s_endpgm2078;2079; GFX12-CU-LABEL: cluster_seq_cst_fence:2080; GFX12-CU:       ; %bb.0: ; %entry2081; GFX12-CU-NEXT:    s_wait_bvhcnt 0x02082; GFX12-CU-NEXT:    s_wait_samplecnt 0x02083; GFX12-CU-NEXT:    s_wait_storecnt 0x02084; GFX12-CU-NEXT:    s_wait_loadcnt_dscnt 0x02085; GFX12-CU-NEXT:    global_inv scope:SCOPE_DEV2086; GFX12-CU-NEXT:    s_endpgm2087;2088; GFX1250-LABEL: cluster_seq_cst_fence:2089; GFX1250:       ; %bb.0: ; %entry2090; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 12091; GFX1250-NEXT:    s_wait_storecnt 0x02092; GFX1250-NEXT:    s_wait_loadcnt_dscnt 0x02093; GFX1250-NEXT:    global_inv scope:SCOPE_SE2094; GFX1250-NEXT:    s_endpgm2095entry:2096  fence syncscope("cluster") seq_cst2097  ret void2098}2099 2100define amdgpu_kernel void @cluster_one_as_acquire_fence() {2101; GFX6-LABEL: cluster_one_as_acquire_fence:2102; GFX6:       ; %bb.0: ; %entry2103; GFX6-NEXT:    s_waitcnt vmcnt(0)2104; GFX6-NEXT:    buffer_wbinvl12105; GFX6-NEXT:    s_endpgm2106;2107; GFX7-LABEL: cluster_one_as_acquire_fence:2108; GFX7:       ; %bb.0: ; %entry2109; GFX7-NEXT:    s_waitcnt vmcnt(0)2110; GFX7-NEXT:    buffer_wbinvl1_vol2111; GFX7-NEXT:    s_endpgm2112;2113; GFX10-WGP-LABEL: cluster_one_as_acquire_fence:2114; GFX10-WGP:       ; %bb.0: ; %entry2115; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0)2116; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x02117; GFX10-WGP-NEXT:    buffer_gl1_inv2118; GFX10-WGP-NEXT:    buffer_gl0_inv2119; GFX10-WGP-NEXT:    s_endpgm2120;2121; GFX10-CU-LABEL: cluster_one_as_acquire_fence:2122; GFX10-CU:       ; %bb.0: ; %entry2123; GFX10-CU-NEXT:    s_waitcnt vmcnt(0)2124; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x02125; GFX10-CU-NEXT:    buffer_gl1_inv2126; GFX10-CU-NEXT:    buffer_gl0_inv2127; GFX10-CU-NEXT:    s_endpgm2128;2129; SKIP-CACHE-INV-LABEL: cluster_one_as_acquire_fence:2130; SKIP-CACHE-INV:       ; %bb.0: ; %entry2131; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0)2132; SKIP-CACHE-INV-NEXT:    s_endpgm2133;2134; GFX90A-NOTTGSPLIT-LABEL: cluster_one_as_acquire_fence:2135; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry2136; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)2137; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbinvl1_vol2138; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm2139;2140; GFX90A-TGSPLIT-LABEL: cluster_one_as_acquire_fence:2141; GFX90A-TGSPLIT:       ; %bb.0: ; %entry2142; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)2143; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol2144; GFX90A-TGSPLIT-NEXT:    s_endpgm2145;2146; GFX942-NOTTGSPLIT-LABEL: cluster_one_as_acquire_fence:2147; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry2148; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)2149; GFX942-NOTTGSPLIT-NEXT:    buffer_inv sc12150; GFX942-NOTTGSPLIT-NEXT:    s_endpgm2151;2152; GFX942-TGSPLIT-LABEL: cluster_one_as_acquire_fence:2153; GFX942-TGSPLIT:       ; %bb.0: ; %entry2154; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)2155; GFX942-TGSPLIT-NEXT:    buffer_inv sc12156; GFX942-TGSPLIT-NEXT:    s_endpgm2157;2158; GFX11-WGP-LABEL: cluster_one_as_acquire_fence:2159; GFX11-WGP:       ; %bb.0: ; %entry2160; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0)2161; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x02162; GFX11-WGP-NEXT:    buffer_gl1_inv2163; GFX11-WGP-NEXT:    buffer_gl0_inv2164; GFX11-WGP-NEXT:    s_endpgm2165;2166; GFX11-CU-LABEL: cluster_one_as_acquire_fence:2167; GFX11-CU:       ; %bb.0: ; %entry2168; GFX11-CU-NEXT:    s_waitcnt vmcnt(0)2169; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x02170; GFX11-CU-NEXT:    buffer_gl1_inv2171; GFX11-CU-NEXT:    buffer_gl0_inv2172; GFX11-CU-NEXT:    s_endpgm2173;2174; GFX12-WGP-LABEL: cluster_one_as_acquire_fence:2175; GFX12-WGP:       ; %bb.0: ; %entry2176; GFX12-WGP-NEXT:    s_wait_loadcnt 0x02177; GFX12-WGP-NEXT:    s_wait_storecnt 0x02178; GFX12-WGP-NEXT:    global_inv scope:SCOPE_DEV2179; GFX12-WGP-NEXT:    s_endpgm2180;2181; GFX12-CU-LABEL: cluster_one_as_acquire_fence:2182; GFX12-CU:       ; %bb.0: ; %entry2183; GFX12-CU-NEXT:    s_wait_loadcnt 0x02184; GFX12-CU-NEXT:    s_wait_storecnt 0x02185; GFX12-CU-NEXT:    global_inv scope:SCOPE_DEV2186; GFX12-CU-NEXT:    s_endpgm2187;2188; GFX1250-LABEL: cluster_one_as_acquire_fence:2189; GFX1250:       ; %bb.0: ; %entry2190; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 12191; GFX1250-NEXT:    s_wait_loadcnt 0x02192; GFX1250-NEXT:    s_wait_storecnt 0x02193; GFX1250-NEXT:    global_inv scope:SCOPE_SE2194; GFX1250-NEXT:    s_endpgm2195entry:2196  fence syncscope("cluster-one-as") acquire2197  ret void2198}2199 2200define amdgpu_kernel void @cluster_one_as_release_fence() {2201; GFX6-LABEL: cluster_one_as_release_fence:2202; GFX6:       ; %bb.0: ; %entry2203; GFX6-NEXT:    s_waitcnt vmcnt(0)2204; GFX6-NEXT:    s_endpgm2205;2206; GFX7-LABEL: cluster_one_as_release_fence:2207; GFX7:       ; %bb.0: ; %entry2208; GFX7-NEXT:    s_waitcnt vmcnt(0)2209; GFX7-NEXT:    s_endpgm2210;2211; GFX10-WGP-LABEL: cluster_one_as_release_fence:2212; GFX10-WGP:       ; %bb.0: ; %entry2213; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0)2214; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x02215; GFX10-WGP-NEXT:    s_endpgm2216;2217; GFX10-CU-LABEL: cluster_one_as_release_fence:2218; GFX10-CU:       ; %bb.0: ; %entry2219; GFX10-CU-NEXT:    s_waitcnt vmcnt(0)2220; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x02221; GFX10-CU-NEXT:    s_endpgm2222;2223; SKIP-CACHE-INV-LABEL: cluster_one_as_release_fence:2224; SKIP-CACHE-INV:       ; %bb.0: ; %entry2225; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0)2226; SKIP-CACHE-INV-NEXT:    s_endpgm2227;2228; GFX90A-NOTTGSPLIT-LABEL: cluster_one_as_release_fence:2229; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry2230; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)2231; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm2232;2233; GFX90A-TGSPLIT-LABEL: cluster_one_as_release_fence:2234; GFX90A-TGSPLIT:       ; %bb.0: ; %entry2235; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)2236; GFX90A-TGSPLIT-NEXT:    s_endpgm2237;2238; GFX942-NOTTGSPLIT-LABEL: cluster_one_as_release_fence:2239; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry2240; GFX942-NOTTGSPLIT-NEXT:    buffer_wbl2 sc12241; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)2242; GFX942-NOTTGSPLIT-NEXT:    s_endpgm2243;2244; GFX942-TGSPLIT-LABEL: cluster_one_as_release_fence:2245; GFX942-TGSPLIT:       ; %bb.0: ; %entry2246; GFX942-TGSPLIT-NEXT:    buffer_wbl2 sc12247; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)2248; GFX942-TGSPLIT-NEXT:    s_endpgm2249;2250; GFX11-WGP-LABEL: cluster_one_as_release_fence:2251; GFX11-WGP:       ; %bb.0: ; %entry2252; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0)2253; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x02254; GFX11-WGP-NEXT:    s_endpgm2255;2256; GFX11-CU-LABEL: cluster_one_as_release_fence:2257; GFX11-CU:       ; %bb.0: ; %entry2258; GFX11-CU-NEXT:    s_waitcnt vmcnt(0)2259; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x02260; GFX11-CU-NEXT:    s_endpgm2261;2262; GFX12-WGP-LABEL: cluster_one_as_release_fence:2263; GFX12-WGP:       ; %bb.0: ; %entry2264; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x02265; GFX12-WGP-NEXT:    s_wait_samplecnt 0x02266; GFX12-WGP-NEXT:    s_wait_loadcnt 0x02267; GFX12-WGP-NEXT:    s_wait_storecnt 0x02268; GFX12-WGP-NEXT:    s_endpgm2269;2270; GFX12-CU-LABEL: cluster_one_as_release_fence:2271; GFX12-CU:       ; %bb.0: ; %entry2272; GFX12-CU-NEXT:    s_wait_bvhcnt 0x02273; GFX12-CU-NEXT:    s_wait_samplecnt 0x02274; GFX12-CU-NEXT:    s_wait_loadcnt 0x02275; GFX12-CU-NEXT:    s_wait_storecnt 0x02276; GFX12-CU-NEXT:    s_endpgm2277;2278; GFX1250-LABEL: cluster_one_as_release_fence:2279; GFX1250:       ; %bb.0: ; %entry2280; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 12281; GFX1250-NEXT:    s_wait_loadcnt 0x02282; GFX1250-NEXT:    s_wait_storecnt 0x02283; GFX1250-NEXT:    s_endpgm2284entry:2285  fence syncscope("cluster-one-as") release2286  ret void2287}2288 2289define amdgpu_kernel void @cluster_one_as_acq_rel_fence() {2290; GFX6-LABEL: cluster_one_as_acq_rel_fence:2291; GFX6:       ; %bb.0: ; %entry2292; GFX6-NEXT:    s_waitcnt vmcnt(0)2293; GFX6-NEXT:    buffer_wbinvl12294; GFX6-NEXT:    s_endpgm2295;2296; GFX7-LABEL: cluster_one_as_acq_rel_fence:2297; GFX7:       ; %bb.0: ; %entry2298; GFX7-NEXT:    s_waitcnt vmcnt(0)2299; GFX7-NEXT:    buffer_wbinvl1_vol2300; GFX7-NEXT:    s_endpgm2301;2302; GFX10-WGP-LABEL: cluster_one_as_acq_rel_fence:2303; GFX10-WGP:       ; %bb.0: ; %entry2304; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0)2305; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x02306; GFX10-WGP-NEXT:    buffer_gl1_inv2307; GFX10-WGP-NEXT:    buffer_gl0_inv2308; GFX10-WGP-NEXT:    s_endpgm2309;2310; GFX10-CU-LABEL: cluster_one_as_acq_rel_fence:2311; GFX10-CU:       ; %bb.0: ; %entry2312; GFX10-CU-NEXT:    s_waitcnt vmcnt(0)2313; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x02314; GFX10-CU-NEXT:    buffer_gl1_inv2315; GFX10-CU-NEXT:    buffer_gl0_inv2316; GFX10-CU-NEXT:    s_endpgm2317;2318; SKIP-CACHE-INV-LABEL: cluster_one_as_acq_rel_fence:2319; SKIP-CACHE-INV:       ; %bb.0: ; %entry2320; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0)2321; SKIP-CACHE-INV-NEXT:    s_endpgm2322;2323; GFX90A-NOTTGSPLIT-LABEL: cluster_one_as_acq_rel_fence:2324; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry2325; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)2326; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbinvl1_vol2327; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm2328;2329; GFX90A-TGSPLIT-LABEL: cluster_one_as_acq_rel_fence:2330; GFX90A-TGSPLIT:       ; %bb.0: ; %entry2331; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)2332; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol2333; GFX90A-TGSPLIT-NEXT:    s_endpgm2334;2335; GFX942-NOTTGSPLIT-LABEL: cluster_one_as_acq_rel_fence:2336; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry2337; GFX942-NOTTGSPLIT-NEXT:    buffer_wbl2 sc12338; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)2339; GFX942-NOTTGSPLIT-NEXT:    buffer_inv sc12340; GFX942-NOTTGSPLIT-NEXT:    s_endpgm2341;2342; GFX942-TGSPLIT-LABEL: cluster_one_as_acq_rel_fence:2343; GFX942-TGSPLIT:       ; %bb.0: ; %entry2344; GFX942-TGSPLIT-NEXT:    buffer_wbl2 sc12345; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)2346; GFX942-TGSPLIT-NEXT:    buffer_inv sc12347; GFX942-TGSPLIT-NEXT:    s_endpgm2348;2349; GFX11-WGP-LABEL: cluster_one_as_acq_rel_fence:2350; GFX11-WGP:       ; %bb.0: ; %entry2351; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0)2352; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x02353; GFX11-WGP-NEXT:    buffer_gl1_inv2354; GFX11-WGP-NEXT:    buffer_gl0_inv2355; GFX11-WGP-NEXT:    s_endpgm2356;2357; GFX11-CU-LABEL: cluster_one_as_acq_rel_fence:2358; GFX11-CU:       ; %bb.0: ; %entry2359; GFX11-CU-NEXT:    s_waitcnt vmcnt(0)2360; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x02361; GFX11-CU-NEXT:    buffer_gl1_inv2362; GFX11-CU-NEXT:    buffer_gl0_inv2363; GFX11-CU-NEXT:    s_endpgm2364;2365; GFX12-WGP-LABEL: cluster_one_as_acq_rel_fence:2366; GFX12-WGP:       ; %bb.0: ; %entry2367; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x02368; GFX12-WGP-NEXT:    s_wait_samplecnt 0x02369; GFX12-WGP-NEXT:    s_wait_loadcnt 0x02370; GFX12-WGP-NEXT:    s_wait_storecnt 0x02371; GFX12-WGP-NEXT:    global_inv scope:SCOPE_DEV2372; GFX12-WGP-NEXT:    s_endpgm2373;2374; GFX12-CU-LABEL: cluster_one_as_acq_rel_fence:2375; GFX12-CU:       ; %bb.0: ; %entry2376; GFX12-CU-NEXT:    s_wait_bvhcnt 0x02377; GFX12-CU-NEXT:    s_wait_samplecnt 0x02378; GFX12-CU-NEXT:    s_wait_loadcnt 0x02379; GFX12-CU-NEXT:    s_wait_storecnt 0x02380; GFX12-CU-NEXT:    global_inv scope:SCOPE_DEV2381; GFX12-CU-NEXT:    s_endpgm2382;2383; GFX1250-LABEL: cluster_one_as_acq_rel_fence:2384; GFX1250:       ; %bb.0: ; %entry2385; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 12386; GFX1250-NEXT:    s_wait_loadcnt 0x02387; GFX1250-NEXT:    s_wait_storecnt 0x02388; GFX1250-NEXT:    global_inv scope:SCOPE_SE2389; GFX1250-NEXT:    s_endpgm2390entry:2391  fence syncscope("cluster-one-as") acq_rel2392  ret void2393}2394 2395define amdgpu_kernel void @cluster_one_as_seq_cst_fence() {2396; GFX6-LABEL: cluster_one_as_seq_cst_fence:2397; GFX6:       ; %bb.0: ; %entry2398; GFX6-NEXT:    s_waitcnt vmcnt(0)2399; GFX6-NEXT:    buffer_wbinvl12400; GFX6-NEXT:    s_endpgm2401;2402; GFX7-LABEL: cluster_one_as_seq_cst_fence:2403; GFX7:       ; %bb.0: ; %entry2404; GFX7-NEXT:    s_waitcnt vmcnt(0)2405; GFX7-NEXT:    buffer_wbinvl1_vol2406; GFX7-NEXT:    s_endpgm2407;2408; GFX10-WGP-LABEL: cluster_one_as_seq_cst_fence:2409; GFX10-WGP:       ; %bb.0: ; %entry2410; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0)2411; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x02412; GFX10-WGP-NEXT:    buffer_gl1_inv2413; GFX10-WGP-NEXT:    buffer_gl0_inv2414; GFX10-WGP-NEXT:    s_endpgm2415;2416; GFX10-CU-LABEL: cluster_one_as_seq_cst_fence:2417; GFX10-CU:       ; %bb.0: ; %entry2418; GFX10-CU-NEXT:    s_waitcnt vmcnt(0)2419; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x02420; GFX10-CU-NEXT:    buffer_gl1_inv2421; GFX10-CU-NEXT:    buffer_gl0_inv2422; GFX10-CU-NEXT:    s_endpgm2423;2424; SKIP-CACHE-INV-LABEL: cluster_one_as_seq_cst_fence:2425; SKIP-CACHE-INV:       ; %bb.0: ; %entry2426; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0)2427; SKIP-CACHE-INV-NEXT:    s_endpgm2428;2429; GFX90A-NOTTGSPLIT-LABEL: cluster_one_as_seq_cst_fence:2430; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry2431; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)2432; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbinvl1_vol2433; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm2434;2435; GFX90A-TGSPLIT-LABEL: cluster_one_as_seq_cst_fence:2436; GFX90A-TGSPLIT:       ; %bb.0: ; %entry2437; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)2438; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol2439; GFX90A-TGSPLIT-NEXT:    s_endpgm2440;2441; GFX942-NOTTGSPLIT-LABEL: cluster_one_as_seq_cst_fence:2442; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry2443; GFX942-NOTTGSPLIT-NEXT:    buffer_wbl2 sc12444; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)2445; GFX942-NOTTGSPLIT-NEXT:    buffer_inv sc12446; GFX942-NOTTGSPLIT-NEXT:    s_endpgm2447;2448; GFX942-TGSPLIT-LABEL: cluster_one_as_seq_cst_fence:2449; GFX942-TGSPLIT:       ; %bb.0: ; %entry2450; GFX942-TGSPLIT-NEXT:    buffer_wbl2 sc12451; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)2452; GFX942-TGSPLIT-NEXT:    buffer_inv sc12453; GFX942-TGSPLIT-NEXT:    s_endpgm2454;2455; GFX11-WGP-LABEL: cluster_one_as_seq_cst_fence:2456; GFX11-WGP:       ; %bb.0: ; %entry2457; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0)2458; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x02459; GFX11-WGP-NEXT:    buffer_gl1_inv2460; GFX11-WGP-NEXT:    buffer_gl0_inv2461; GFX11-WGP-NEXT:    s_endpgm2462;2463; GFX11-CU-LABEL: cluster_one_as_seq_cst_fence:2464; GFX11-CU:       ; %bb.0: ; %entry2465; GFX11-CU-NEXT:    s_waitcnt vmcnt(0)2466; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x02467; GFX11-CU-NEXT:    buffer_gl1_inv2468; GFX11-CU-NEXT:    buffer_gl0_inv2469; GFX11-CU-NEXT:    s_endpgm2470;2471; GFX12-WGP-LABEL: cluster_one_as_seq_cst_fence:2472; GFX12-WGP:       ; %bb.0: ; %entry2473; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x02474; GFX12-WGP-NEXT:    s_wait_samplecnt 0x02475; GFX12-WGP-NEXT:    s_wait_loadcnt 0x02476; GFX12-WGP-NEXT:    s_wait_storecnt 0x02477; GFX12-WGP-NEXT:    global_inv scope:SCOPE_DEV2478; GFX12-WGP-NEXT:    s_endpgm2479;2480; GFX12-CU-LABEL: cluster_one_as_seq_cst_fence:2481; GFX12-CU:       ; %bb.0: ; %entry2482; GFX12-CU-NEXT:    s_wait_bvhcnt 0x02483; GFX12-CU-NEXT:    s_wait_samplecnt 0x02484; GFX12-CU-NEXT:    s_wait_loadcnt 0x02485; GFX12-CU-NEXT:    s_wait_storecnt 0x02486; GFX12-CU-NEXT:    global_inv scope:SCOPE_DEV2487; GFX12-CU-NEXT:    s_endpgm2488;2489; GFX1250-LABEL: cluster_one_as_seq_cst_fence:2490; GFX1250:       ; %bb.0: ; %entry2491; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 12492; GFX1250-NEXT:    s_wait_loadcnt 0x02493; GFX1250-NEXT:    s_wait_storecnt 0x02494; GFX1250-NEXT:    global_inv scope:SCOPE_SE2495; GFX1250-NEXT:    s_endpgm2496entry:2497  fence syncscope("cluster-one-as") seq_cst2498  ret void2499}2500 2501define amdgpu_kernel void @agent_acquire_fence() {2502; GFX6-LABEL: agent_acquire_fence:2503; GFX6:       ; %bb.0: ; %entry2504; GFX6-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2505; GFX6-NEXT:    buffer_wbinvl12506; GFX6-NEXT:    s_endpgm2507;2508; GFX7-LABEL: agent_acquire_fence:2509; GFX7:       ; %bb.0: ; %entry2510; GFX7-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2511; GFX7-NEXT:    buffer_wbinvl1_vol2512; GFX7-NEXT:    s_endpgm2513;2514; GFX10-WGP-LABEL: agent_acquire_fence:2515; GFX10-WGP:       ; %bb.0: ; %entry2516; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2517; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x02518; GFX10-WGP-NEXT:    buffer_gl1_inv2519; GFX10-WGP-NEXT:    buffer_gl0_inv2520; GFX10-WGP-NEXT:    s_endpgm2521;2522; GFX10-CU-LABEL: agent_acquire_fence:2523; GFX10-CU:       ; %bb.0: ; %entry2524; GFX10-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2525; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x02526; GFX10-CU-NEXT:    buffer_gl1_inv2527; GFX10-CU-NEXT:    buffer_gl0_inv2528; GFX10-CU-NEXT:    s_endpgm2529;2530; SKIP-CACHE-INV-LABEL: agent_acquire_fence:2531; SKIP-CACHE-INV:       ; %bb.0: ; %entry2532; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2533; SKIP-CACHE-INV-NEXT:    s_endpgm2534;2535; GFX90A-NOTTGSPLIT-LABEL: agent_acquire_fence:2536; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry2537; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2538; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbinvl1_vol2539; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm2540;2541; GFX90A-TGSPLIT-LABEL: agent_acquire_fence:2542; GFX90A-TGSPLIT:       ; %bb.0: ; %entry2543; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2544; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol2545; GFX90A-TGSPLIT-NEXT:    s_endpgm2546;2547; GFX942-NOTTGSPLIT-LABEL: agent_acquire_fence:2548; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry2549; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2550; GFX942-NOTTGSPLIT-NEXT:    buffer_inv sc12551; GFX942-NOTTGSPLIT-NEXT:    s_endpgm2552;2553; GFX942-TGSPLIT-LABEL: agent_acquire_fence:2554; GFX942-TGSPLIT:       ; %bb.0: ; %entry2555; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2556; GFX942-TGSPLIT-NEXT:    buffer_inv sc12557; GFX942-TGSPLIT-NEXT:    s_endpgm2558;2559; GFX11-WGP-LABEL: agent_acquire_fence:2560; GFX11-WGP:       ; %bb.0: ; %entry2561; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2562; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x02563; GFX11-WGP-NEXT:    buffer_gl1_inv2564; GFX11-WGP-NEXT:    buffer_gl0_inv2565; GFX11-WGP-NEXT:    s_endpgm2566;2567; GFX11-CU-LABEL: agent_acquire_fence:2568; GFX11-CU:       ; %bb.0: ; %entry2569; GFX11-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2570; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x02571; GFX11-CU-NEXT:    buffer_gl1_inv2572; GFX11-CU-NEXT:    buffer_gl0_inv2573; GFX11-CU-NEXT:    s_endpgm2574;2575; GFX12-WGP-LABEL: agent_acquire_fence:2576; GFX12-WGP:       ; %bb.0: ; %entry2577; GFX12-WGP-NEXT:    s_wait_storecnt 0x02578; GFX12-WGP-NEXT:    s_wait_loadcnt_dscnt 0x02579; GFX12-WGP-NEXT:    global_inv scope:SCOPE_DEV2580; GFX12-WGP-NEXT:    s_endpgm2581;2582; GFX12-CU-LABEL: agent_acquire_fence:2583; GFX12-CU:       ; %bb.0: ; %entry2584; GFX12-CU-NEXT:    s_wait_storecnt 0x02585; GFX12-CU-NEXT:    s_wait_loadcnt_dscnt 0x02586; GFX12-CU-NEXT:    global_inv scope:SCOPE_DEV2587; GFX12-CU-NEXT:    s_endpgm2588;2589; GFX1250-LABEL: agent_acquire_fence:2590; GFX1250:       ; %bb.0: ; %entry2591; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 12592; GFX1250-NEXT:    s_wait_storecnt 0x02593; GFX1250-NEXT:    s_wait_loadcnt_dscnt 0x02594; GFX1250-NEXT:    global_inv scope:SCOPE_DEV2595; GFX1250-NEXT:    s_endpgm2596entry:2597  fence syncscope("agent") acquire2598  ret void2599}2600 2601define amdgpu_kernel void @agent_release_fence() {2602; GFX6-LABEL: agent_release_fence:2603; GFX6:       ; %bb.0: ; %entry2604; GFX6-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2605; GFX6-NEXT:    s_endpgm2606;2607; GFX7-LABEL: agent_release_fence:2608; GFX7:       ; %bb.0: ; %entry2609; GFX7-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2610; GFX7-NEXT:    s_endpgm2611;2612; GFX10-WGP-LABEL: agent_release_fence:2613; GFX10-WGP:       ; %bb.0: ; %entry2614; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2615; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x02616; GFX10-WGP-NEXT:    s_endpgm2617;2618; GFX10-CU-LABEL: agent_release_fence:2619; GFX10-CU:       ; %bb.0: ; %entry2620; GFX10-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2621; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x02622; GFX10-CU-NEXT:    s_endpgm2623;2624; SKIP-CACHE-INV-LABEL: agent_release_fence:2625; SKIP-CACHE-INV:       ; %bb.0: ; %entry2626; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2627; SKIP-CACHE-INV-NEXT:    s_endpgm2628;2629; GFX90A-NOTTGSPLIT-LABEL: agent_release_fence:2630; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry2631; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2632; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm2633;2634; GFX90A-TGSPLIT-LABEL: agent_release_fence:2635; GFX90A-TGSPLIT:       ; %bb.0: ; %entry2636; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2637; GFX90A-TGSPLIT-NEXT:    s_endpgm2638;2639; GFX942-NOTTGSPLIT-LABEL: agent_release_fence:2640; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry2641; GFX942-NOTTGSPLIT-NEXT:    buffer_wbl2 sc12642; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2643; GFX942-NOTTGSPLIT-NEXT:    s_endpgm2644;2645; GFX942-TGSPLIT-LABEL: agent_release_fence:2646; GFX942-TGSPLIT:       ; %bb.0: ; %entry2647; GFX942-TGSPLIT-NEXT:    buffer_wbl2 sc12648; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2649; GFX942-TGSPLIT-NEXT:    s_endpgm2650;2651; GFX11-WGP-LABEL: agent_release_fence:2652; GFX11-WGP:       ; %bb.0: ; %entry2653; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2654; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x02655; GFX11-WGP-NEXT:    s_endpgm2656;2657; GFX11-CU-LABEL: agent_release_fence:2658; GFX11-CU:       ; %bb.0: ; %entry2659; GFX11-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2660; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x02661; GFX11-CU-NEXT:    s_endpgm2662;2663; GFX12-WGP-LABEL: agent_release_fence:2664; GFX12-WGP:       ; %bb.0: ; %entry2665; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x02666; GFX12-WGP-NEXT:    s_wait_samplecnt 0x02667; GFX12-WGP-NEXT:    s_wait_storecnt 0x02668; GFX12-WGP-NEXT:    s_wait_loadcnt_dscnt 0x02669; GFX12-WGP-NEXT:    s_endpgm2670;2671; GFX12-CU-LABEL: agent_release_fence:2672; GFX12-CU:       ; %bb.0: ; %entry2673; GFX12-CU-NEXT:    s_wait_bvhcnt 0x02674; GFX12-CU-NEXT:    s_wait_samplecnt 0x02675; GFX12-CU-NEXT:    s_wait_storecnt 0x02676; GFX12-CU-NEXT:    s_wait_loadcnt_dscnt 0x02677; GFX12-CU-NEXT:    s_endpgm2678;2679; GFX1250-LABEL: agent_release_fence:2680; GFX1250:       ; %bb.0: ; %entry2681; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 12682; GFX1250-NEXT:    global_wb scope:SCOPE_DEV2683; GFX1250-NEXT:    s_wait_storecnt 0x02684; GFX1250-NEXT:    s_wait_loadcnt_dscnt 0x02685; GFX1250-NEXT:    s_endpgm2686entry:2687  fence syncscope("agent") release2688  ret void2689}2690 2691define amdgpu_kernel void @agent_acq_rel_fence() {2692; GFX6-LABEL: agent_acq_rel_fence:2693; GFX6:       ; %bb.0: ; %entry2694; GFX6-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2695; GFX6-NEXT:    buffer_wbinvl12696; GFX6-NEXT:    s_endpgm2697;2698; GFX7-LABEL: agent_acq_rel_fence:2699; GFX7:       ; %bb.0: ; %entry2700; GFX7-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2701; GFX7-NEXT:    buffer_wbinvl1_vol2702; GFX7-NEXT:    s_endpgm2703;2704; GFX10-WGP-LABEL: agent_acq_rel_fence:2705; GFX10-WGP:       ; %bb.0: ; %entry2706; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2707; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x02708; GFX10-WGP-NEXT:    buffer_gl1_inv2709; GFX10-WGP-NEXT:    buffer_gl0_inv2710; GFX10-WGP-NEXT:    s_endpgm2711;2712; GFX10-CU-LABEL: agent_acq_rel_fence:2713; GFX10-CU:       ; %bb.0: ; %entry2714; GFX10-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2715; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x02716; GFX10-CU-NEXT:    buffer_gl1_inv2717; GFX10-CU-NEXT:    buffer_gl0_inv2718; GFX10-CU-NEXT:    s_endpgm2719;2720; SKIP-CACHE-INV-LABEL: agent_acq_rel_fence:2721; SKIP-CACHE-INV:       ; %bb.0: ; %entry2722; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2723; SKIP-CACHE-INV-NEXT:    s_endpgm2724;2725; GFX90A-NOTTGSPLIT-LABEL: agent_acq_rel_fence:2726; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry2727; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2728; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbinvl1_vol2729; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm2730;2731; GFX90A-TGSPLIT-LABEL: agent_acq_rel_fence:2732; GFX90A-TGSPLIT:       ; %bb.0: ; %entry2733; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2734; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol2735; GFX90A-TGSPLIT-NEXT:    s_endpgm2736;2737; GFX942-NOTTGSPLIT-LABEL: agent_acq_rel_fence:2738; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry2739; GFX942-NOTTGSPLIT-NEXT:    buffer_wbl2 sc12740; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2741; GFX942-NOTTGSPLIT-NEXT:    buffer_inv sc12742; GFX942-NOTTGSPLIT-NEXT:    s_endpgm2743;2744; GFX942-TGSPLIT-LABEL: agent_acq_rel_fence:2745; GFX942-TGSPLIT:       ; %bb.0: ; %entry2746; GFX942-TGSPLIT-NEXT:    buffer_wbl2 sc12747; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2748; GFX942-TGSPLIT-NEXT:    buffer_inv sc12749; GFX942-TGSPLIT-NEXT:    s_endpgm2750;2751; GFX11-WGP-LABEL: agent_acq_rel_fence:2752; GFX11-WGP:       ; %bb.0: ; %entry2753; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2754; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x02755; GFX11-WGP-NEXT:    buffer_gl1_inv2756; GFX11-WGP-NEXT:    buffer_gl0_inv2757; GFX11-WGP-NEXT:    s_endpgm2758;2759; GFX11-CU-LABEL: agent_acq_rel_fence:2760; GFX11-CU:       ; %bb.0: ; %entry2761; GFX11-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2762; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x02763; GFX11-CU-NEXT:    buffer_gl1_inv2764; GFX11-CU-NEXT:    buffer_gl0_inv2765; GFX11-CU-NEXT:    s_endpgm2766;2767; GFX12-WGP-LABEL: agent_acq_rel_fence:2768; GFX12-WGP:       ; %bb.0: ; %entry2769; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x02770; GFX12-WGP-NEXT:    s_wait_samplecnt 0x02771; GFX12-WGP-NEXT:    s_wait_storecnt 0x02772; GFX12-WGP-NEXT:    s_wait_loadcnt_dscnt 0x02773; GFX12-WGP-NEXT:    global_inv scope:SCOPE_DEV2774; GFX12-WGP-NEXT:    s_endpgm2775;2776; GFX12-CU-LABEL: agent_acq_rel_fence:2777; GFX12-CU:       ; %bb.0: ; %entry2778; GFX12-CU-NEXT:    s_wait_bvhcnt 0x02779; GFX12-CU-NEXT:    s_wait_samplecnt 0x02780; GFX12-CU-NEXT:    s_wait_storecnt 0x02781; GFX12-CU-NEXT:    s_wait_loadcnt_dscnt 0x02782; GFX12-CU-NEXT:    global_inv scope:SCOPE_DEV2783; GFX12-CU-NEXT:    s_endpgm2784;2785; GFX1250-LABEL: agent_acq_rel_fence:2786; GFX1250:       ; %bb.0: ; %entry2787; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 12788; GFX1250-NEXT:    global_wb scope:SCOPE_DEV2789; GFX1250-NEXT:    s_wait_storecnt 0x02790; GFX1250-NEXT:    s_wait_loadcnt_dscnt 0x02791; GFX1250-NEXT:    global_inv scope:SCOPE_DEV2792; GFX1250-NEXT:    s_endpgm2793entry:2794  fence syncscope("agent") acq_rel2795  ret void2796}2797 2798define amdgpu_kernel void @agent_seq_cst_fence() {2799; GFX6-LABEL: agent_seq_cst_fence:2800; GFX6:       ; %bb.0: ; %entry2801; GFX6-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2802; GFX6-NEXT:    buffer_wbinvl12803; GFX6-NEXT:    s_endpgm2804;2805; GFX7-LABEL: agent_seq_cst_fence:2806; GFX7:       ; %bb.0: ; %entry2807; GFX7-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2808; GFX7-NEXT:    buffer_wbinvl1_vol2809; GFX7-NEXT:    s_endpgm2810;2811; GFX10-WGP-LABEL: agent_seq_cst_fence:2812; GFX10-WGP:       ; %bb.0: ; %entry2813; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2814; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x02815; GFX10-WGP-NEXT:    buffer_gl1_inv2816; GFX10-WGP-NEXT:    buffer_gl0_inv2817; GFX10-WGP-NEXT:    s_endpgm2818;2819; GFX10-CU-LABEL: agent_seq_cst_fence:2820; GFX10-CU:       ; %bb.0: ; %entry2821; GFX10-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2822; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x02823; GFX10-CU-NEXT:    buffer_gl1_inv2824; GFX10-CU-NEXT:    buffer_gl0_inv2825; GFX10-CU-NEXT:    s_endpgm2826;2827; SKIP-CACHE-INV-LABEL: agent_seq_cst_fence:2828; SKIP-CACHE-INV:       ; %bb.0: ; %entry2829; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2830; SKIP-CACHE-INV-NEXT:    s_endpgm2831;2832; GFX90A-NOTTGSPLIT-LABEL: agent_seq_cst_fence:2833; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry2834; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2835; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbinvl1_vol2836; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm2837;2838; GFX90A-TGSPLIT-LABEL: agent_seq_cst_fence:2839; GFX90A-TGSPLIT:       ; %bb.0: ; %entry2840; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2841; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol2842; GFX90A-TGSPLIT-NEXT:    s_endpgm2843;2844; GFX942-NOTTGSPLIT-LABEL: agent_seq_cst_fence:2845; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry2846; GFX942-NOTTGSPLIT-NEXT:    buffer_wbl2 sc12847; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2848; GFX942-NOTTGSPLIT-NEXT:    buffer_inv sc12849; GFX942-NOTTGSPLIT-NEXT:    s_endpgm2850;2851; GFX942-TGSPLIT-LABEL: agent_seq_cst_fence:2852; GFX942-TGSPLIT:       ; %bb.0: ; %entry2853; GFX942-TGSPLIT-NEXT:    buffer_wbl2 sc12854; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2855; GFX942-TGSPLIT-NEXT:    buffer_inv sc12856; GFX942-TGSPLIT-NEXT:    s_endpgm2857;2858; GFX11-WGP-LABEL: agent_seq_cst_fence:2859; GFX11-WGP:       ; %bb.0: ; %entry2860; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2861; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x02862; GFX11-WGP-NEXT:    buffer_gl1_inv2863; GFX11-WGP-NEXT:    buffer_gl0_inv2864; GFX11-WGP-NEXT:    s_endpgm2865;2866; GFX11-CU-LABEL: agent_seq_cst_fence:2867; GFX11-CU:       ; %bb.0: ; %entry2868; GFX11-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)2869; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x02870; GFX11-CU-NEXT:    buffer_gl1_inv2871; GFX11-CU-NEXT:    buffer_gl0_inv2872; GFX11-CU-NEXT:    s_endpgm2873;2874; GFX12-WGP-LABEL: agent_seq_cst_fence:2875; GFX12-WGP:       ; %bb.0: ; %entry2876; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x02877; GFX12-WGP-NEXT:    s_wait_samplecnt 0x02878; GFX12-WGP-NEXT:    s_wait_storecnt 0x02879; GFX12-WGP-NEXT:    s_wait_loadcnt_dscnt 0x02880; GFX12-WGP-NEXT:    global_inv scope:SCOPE_DEV2881; GFX12-WGP-NEXT:    s_endpgm2882;2883; GFX12-CU-LABEL: agent_seq_cst_fence:2884; GFX12-CU:       ; %bb.0: ; %entry2885; GFX12-CU-NEXT:    s_wait_bvhcnt 0x02886; GFX12-CU-NEXT:    s_wait_samplecnt 0x02887; GFX12-CU-NEXT:    s_wait_storecnt 0x02888; GFX12-CU-NEXT:    s_wait_loadcnt_dscnt 0x02889; GFX12-CU-NEXT:    global_inv scope:SCOPE_DEV2890; GFX12-CU-NEXT:    s_endpgm2891;2892; GFX1250-LABEL: agent_seq_cst_fence:2893; GFX1250:       ; %bb.0: ; %entry2894; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 12895; GFX1250-NEXT:    global_wb scope:SCOPE_DEV2896; GFX1250-NEXT:    s_wait_storecnt 0x02897; GFX1250-NEXT:    s_wait_loadcnt_dscnt 0x02898; GFX1250-NEXT:    global_inv scope:SCOPE_DEV2899; GFX1250-NEXT:    s_endpgm2900entry:2901  fence syncscope("agent") seq_cst2902  ret void2903}2904 2905define amdgpu_kernel void @agent_one_as_acquire_fence() {2906; GFX6-LABEL: agent_one_as_acquire_fence:2907; GFX6:       ; %bb.0: ; %entry2908; GFX6-NEXT:    s_waitcnt vmcnt(0)2909; GFX6-NEXT:    buffer_wbinvl12910; GFX6-NEXT:    s_endpgm2911;2912; GFX7-LABEL: agent_one_as_acquire_fence:2913; GFX7:       ; %bb.0: ; %entry2914; GFX7-NEXT:    s_waitcnt vmcnt(0)2915; GFX7-NEXT:    buffer_wbinvl1_vol2916; GFX7-NEXT:    s_endpgm2917;2918; GFX10-WGP-LABEL: agent_one_as_acquire_fence:2919; GFX10-WGP:       ; %bb.0: ; %entry2920; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0)2921; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x02922; GFX10-WGP-NEXT:    buffer_gl1_inv2923; GFX10-WGP-NEXT:    buffer_gl0_inv2924; GFX10-WGP-NEXT:    s_endpgm2925;2926; GFX10-CU-LABEL: agent_one_as_acquire_fence:2927; GFX10-CU:       ; %bb.0: ; %entry2928; GFX10-CU-NEXT:    s_waitcnt vmcnt(0)2929; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x02930; GFX10-CU-NEXT:    buffer_gl1_inv2931; GFX10-CU-NEXT:    buffer_gl0_inv2932; GFX10-CU-NEXT:    s_endpgm2933;2934; SKIP-CACHE-INV-LABEL: agent_one_as_acquire_fence:2935; SKIP-CACHE-INV:       ; %bb.0: ; %entry2936; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0)2937; SKIP-CACHE-INV-NEXT:    s_endpgm2938;2939; GFX90A-NOTTGSPLIT-LABEL: agent_one_as_acquire_fence:2940; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry2941; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)2942; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbinvl1_vol2943; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm2944;2945; GFX90A-TGSPLIT-LABEL: agent_one_as_acquire_fence:2946; GFX90A-TGSPLIT:       ; %bb.0: ; %entry2947; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)2948; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol2949; GFX90A-TGSPLIT-NEXT:    s_endpgm2950;2951; GFX942-NOTTGSPLIT-LABEL: agent_one_as_acquire_fence:2952; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry2953; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)2954; GFX942-NOTTGSPLIT-NEXT:    buffer_inv sc12955; GFX942-NOTTGSPLIT-NEXT:    s_endpgm2956;2957; GFX942-TGSPLIT-LABEL: agent_one_as_acquire_fence:2958; GFX942-TGSPLIT:       ; %bb.0: ; %entry2959; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)2960; GFX942-TGSPLIT-NEXT:    buffer_inv sc12961; GFX942-TGSPLIT-NEXT:    s_endpgm2962;2963; GFX11-WGP-LABEL: agent_one_as_acquire_fence:2964; GFX11-WGP:       ; %bb.0: ; %entry2965; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0)2966; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x02967; GFX11-WGP-NEXT:    buffer_gl1_inv2968; GFX11-WGP-NEXT:    buffer_gl0_inv2969; GFX11-WGP-NEXT:    s_endpgm2970;2971; GFX11-CU-LABEL: agent_one_as_acquire_fence:2972; GFX11-CU:       ; %bb.0: ; %entry2973; GFX11-CU-NEXT:    s_waitcnt vmcnt(0)2974; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x02975; GFX11-CU-NEXT:    buffer_gl1_inv2976; GFX11-CU-NEXT:    buffer_gl0_inv2977; GFX11-CU-NEXT:    s_endpgm2978;2979; GFX12-WGP-LABEL: agent_one_as_acquire_fence:2980; GFX12-WGP:       ; %bb.0: ; %entry2981; GFX12-WGP-NEXT:    s_wait_loadcnt 0x02982; GFX12-WGP-NEXT:    s_wait_storecnt 0x02983; GFX12-WGP-NEXT:    global_inv scope:SCOPE_DEV2984; GFX12-WGP-NEXT:    s_endpgm2985;2986; GFX12-CU-LABEL: agent_one_as_acquire_fence:2987; GFX12-CU:       ; %bb.0: ; %entry2988; GFX12-CU-NEXT:    s_wait_loadcnt 0x02989; GFX12-CU-NEXT:    s_wait_storecnt 0x02990; GFX12-CU-NEXT:    global_inv scope:SCOPE_DEV2991; GFX12-CU-NEXT:    s_endpgm2992;2993; GFX1250-LABEL: agent_one_as_acquire_fence:2994; GFX1250:       ; %bb.0: ; %entry2995; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 12996; GFX1250-NEXT:    s_wait_loadcnt 0x02997; GFX1250-NEXT:    s_wait_storecnt 0x02998; GFX1250-NEXT:    global_inv scope:SCOPE_DEV2999; GFX1250-NEXT:    s_endpgm3000entry:3001  fence syncscope("agent-one-as") acquire3002  ret void3003}3004 3005define amdgpu_kernel void @agent_one_as_release_fence() {3006; GFX6-LABEL: agent_one_as_release_fence:3007; GFX6:       ; %bb.0: ; %entry3008; GFX6-NEXT:    s_waitcnt vmcnt(0)3009; GFX6-NEXT:    s_endpgm3010;3011; GFX7-LABEL: agent_one_as_release_fence:3012; GFX7:       ; %bb.0: ; %entry3013; GFX7-NEXT:    s_waitcnt vmcnt(0)3014; GFX7-NEXT:    s_endpgm3015;3016; GFX10-WGP-LABEL: agent_one_as_release_fence:3017; GFX10-WGP:       ; %bb.0: ; %entry3018; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0)3019; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x03020; GFX10-WGP-NEXT:    s_endpgm3021;3022; GFX10-CU-LABEL: agent_one_as_release_fence:3023; GFX10-CU:       ; %bb.0: ; %entry3024; GFX10-CU-NEXT:    s_waitcnt vmcnt(0)3025; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x03026; GFX10-CU-NEXT:    s_endpgm3027;3028; SKIP-CACHE-INV-LABEL: agent_one_as_release_fence:3029; SKIP-CACHE-INV:       ; %bb.0: ; %entry3030; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0)3031; SKIP-CACHE-INV-NEXT:    s_endpgm3032;3033; GFX90A-NOTTGSPLIT-LABEL: agent_one_as_release_fence:3034; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry3035; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)3036; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm3037;3038; GFX90A-TGSPLIT-LABEL: agent_one_as_release_fence:3039; GFX90A-TGSPLIT:       ; %bb.0: ; %entry3040; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)3041; GFX90A-TGSPLIT-NEXT:    s_endpgm3042;3043; GFX942-NOTTGSPLIT-LABEL: agent_one_as_release_fence:3044; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry3045; GFX942-NOTTGSPLIT-NEXT:    buffer_wbl2 sc13046; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)3047; GFX942-NOTTGSPLIT-NEXT:    s_endpgm3048;3049; GFX942-TGSPLIT-LABEL: agent_one_as_release_fence:3050; GFX942-TGSPLIT:       ; %bb.0: ; %entry3051; GFX942-TGSPLIT-NEXT:    buffer_wbl2 sc13052; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)3053; GFX942-TGSPLIT-NEXT:    s_endpgm3054;3055; GFX11-WGP-LABEL: agent_one_as_release_fence:3056; GFX11-WGP:       ; %bb.0: ; %entry3057; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0)3058; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x03059; GFX11-WGP-NEXT:    s_endpgm3060;3061; GFX11-CU-LABEL: agent_one_as_release_fence:3062; GFX11-CU:       ; %bb.0: ; %entry3063; GFX11-CU-NEXT:    s_waitcnt vmcnt(0)3064; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x03065; GFX11-CU-NEXT:    s_endpgm3066;3067; GFX12-WGP-LABEL: agent_one_as_release_fence:3068; GFX12-WGP:       ; %bb.0: ; %entry3069; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x03070; GFX12-WGP-NEXT:    s_wait_samplecnt 0x03071; GFX12-WGP-NEXT:    s_wait_loadcnt 0x03072; GFX12-WGP-NEXT:    s_wait_storecnt 0x03073; GFX12-WGP-NEXT:    s_endpgm3074;3075; GFX12-CU-LABEL: agent_one_as_release_fence:3076; GFX12-CU:       ; %bb.0: ; %entry3077; GFX12-CU-NEXT:    s_wait_bvhcnt 0x03078; GFX12-CU-NEXT:    s_wait_samplecnt 0x03079; GFX12-CU-NEXT:    s_wait_loadcnt 0x03080; GFX12-CU-NEXT:    s_wait_storecnt 0x03081; GFX12-CU-NEXT:    s_endpgm3082;3083; GFX1250-LABEL: agent_one_as_release_fence:3084; GFX1250:       ; %bb.0: ; %entry3085; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 13086; GFX1250-NEXT:    global_wb scope:SCOPE_DEV3087; GFX1250-NEXT:    s_wait_loadcnt 0x03088; GFX1250-NEXT:    s_wait_storecnt 0x03089; GFX1250-NEXT:    s_endpgm3090entry:3091  fence syncscope("agent-one-as") release3092  ret void3093}3094 3095define amdgpu_kernel void @agent_one_as_acq_rel_fence() {3096; GFX6-LABEL: agent_one_as_acq_rel_fence:3097; GFX6:       ; %bb.0: ; %entry3098; GFX6-NEXT:    s_waitcnt vmcnt(0)3099; GFX6-NEXT:    buffer_wbinvl13100; GFX6-NEXT:    s_endpgm3101;3102; GFX7-LABEL: agent_one_as_acq_rel_fence:3103; GFX7:       ; %bb.0: ; %entry3104; GFX7-NEXT:    s_waitcnt vmcnt(0)3105; GFX7-NEXT:    buffer_wbinvl1_vol3106; GFX7-NEXT:    s_endpgm3107;3108; GFX10-WGP-LABEL: agent_one_as_acq_rel_fence:3109; GFX10-WGP:       ; %bb.0: ; %entry3110; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0)3111; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x03112; GFX10-WGP-NEXT:    buffer_gl1_inv3113; GFX10-WGP-NEXT:    buffer_gl0_inv3114; GFX10-WGP-NEXT:    s_endpgm3115;3116; GFX10-CU-LABEL: agent_one_as_acq_rel_fence:3117; GFX10-CU:       ; %bb.0: ; %entry3118; GFX10-CU-NEXT:    s_waitcnt vmcnt(0)3119; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x03120; GFX10-CU-NEXT:    buffer_gl1_inv3121; GFX10-CU-NEXT:    buffer_gl0_inv3122; GFX10-CU-NEXT:    s_endpgm3123;3124; SKIP-CACHE-INV-LABEL: agent_one_as_acq_rel_fence:3125; SKIP-CACHE-INV:       ; %bb.0: ; %entry3126; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0)3127; SKIP-CACHE-INV-NEXT:    s_endpgm3128;3129; GFX90A-NOTTGSPLIT-LABEL: agent_one_as_acq_rel_fence:3130; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry3131; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)3132; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbinvl1_vol3133; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm3134;3135; GFX90A-TGSPLIT-LABEL: agent_one_as_acq_rel_fence:3136; GFX90A-TGSPLIT:       ; %bb.0: ; %entry3137; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)3138; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol3139; GFX90A-TGSPLIT-NEXT:    s_endpgm3140;3141; GFX942-NOTTGSPLIT-LABEL: agent_one_as_acq_rel_fence:3142; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry3143; GFX942-NOTTGSPLIT-NEXT:    buffer_wbl2 sc13144; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)3145; GFX942-NOTTGSPLIT-NEXT:    buffer_inv sc13146; GFX942-NOTTGSPLIT-NEXT:    s_endpgm3147;3148; GFX942-TGSPLIT-LABEL: agent_one_as_acq_rel_fence:3149; GFX942-TGSPLIT:       ; %bb.0: ; %entry3150; GFX942-TGSPLIT-NEXT:    buffer_wbl2 sc13151; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)3152; GFX942-TGSPLIT-NEXT:    buffer_inv sc13153; GFX942-TGSPLIT-NEXT:    s_endpgm3154;3155; GFX11-WGP-LABEL: agent_one_as_acq_rel_fence:3156; GFX11-WGP:       ; %bb.0: ; %entry3157; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0)3158; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x03159; GFX11-WGP-NEXT:    buffer_gl1_inv3160; GFX11-WGP-NEXT:    buffer_gl0_inv3161; GFX11-WGP-NEXT:    s_endpgm3162;3163; GFX11-CU-LABEL: agent_one_as_acq_rel_fence:3164; GFX11-CU:       ; %bb.0: ; %entry3165; GFX11-CU-NEXT:    s_waitcnt vmcnt(0)3166; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x03167; GFX11-CU-NEXT:    buffer_gl1_inv3168; GFX11-CU-NEXT:    buffer_gl0_inv3169; GFX11-CU-NEXT:    s_endpgm3170;3171; GFX12-WGP-LABEL: agent_one_as_acq_rel_fence:3172; GFX12-WGP:       ; %bb.0: ; %entry3173; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x03174; GFX12-WGP-NEXT:    s_wait_samplecnt 0x03175; GFX12-WGP-NEXT:    s_wait_loadcnt 0x03176; GFX12-WGP-NEXT:    s_wait_storecnt 0x03177; GFX12-WGP-NEXT:    global_inv scope:SCOPE_DEV3178; GFX12-WGP-NEXT:    s_endpgm3179;3180; GFX12-CU-LABEL: agent_one_as_acq_rel_fence:3181; GFX12-CU:       ; %bb.0: ; %entry3182; GFX12-CU-NEXT:    s_wait_bvhcnt 0x03183; GFX12-CU-NEXT:    s_wait_samplecnt 0x03184; GFX12-CU-NEXT:    s_wait_loadcnt 0x03185; GFX12-CU-NEXT:    s_wait_storecnt 0x03186; GFX12-CU-NEXT:    global_inv scope:SCOPE_DEV3187; GFX12-CU-NEXT:    s_endpgm3188;3189; GFX1250-LABEL: agent_one_as_acq_rel_fence:3190; GFX1250:       ; %bb.0: ; %entry3191; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 13192; GFX1250-NEXT:    global_wb scope:SCOPE_DEV3193; GFX1250-NEXT:    s_wait_loadcnt 0x03194; GFX1250-NEXT:    s_wait_storecnt 0x03195; GFX1250-NEXT:    global_inv scope:SCOPE_DEV3196; GFX1250-NEXT:    s_endpgm3197entry:3198  fence syncscope("agent-one-as") acq_rel3199  ret void3200}3201 3202define amdgpu_kernel void @agent_one_as_seq_cst_fence() {3203; GFX6-LABEL: agent_one_as_seq_cst_fence:3204; GFX6:       ; %bb.0: ; %entry3205; GFX6-NEXT:    s_waitcnt vmcnt(0)3206; GFX6-NEXT:    buffer_wbinvl13207; GFX6-NEXT:    s_endpgm3208;3209; GFX7-LABEL: agent_one_as_seq_cst_fence:3210; GFX7:       ; %bb.0: ; %entry3211; GFX7-NEXT:    s_waitcnt vmcnt(0)3212; GFX7-NEXT:    buffer_wbinvl1_vol3213; GFX7-NEXT:    s_endpgm3214;3215; GFX10-WGP-LABEL: agent_one_as_seq_cst_fence:3216; GFX10-WGP:       ; %bb.0: ; %entry3217; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0)3218; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x03219; GFX10-WGP-NEXT:    buffer_gl1_inv3220; GFX10-WGP-NEXT:    buffer_gl0_inv3221; GFX10-WGP-NEXT:    s_endpgm3222;3223; GFX10-CU-LABEL: agent_one_as_seq_cst_fence:3224; GFX10-CU:       ; %bb.0: ; %entry3225; GFX10-CU-NEXT:    s_waitcnt vmcnt(0)3226; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x03227; GFX10-CU-NEXT:    buffer_gl1_inv3228; GFX10-CU-NEXT:    buffer_gl0_inv3229; GFX10-CU-NEXT:    s_endpgm3230;3231; SKIP-CACHE-INV-LABEL: agent_one_as_seq_cst_fence:3232; SKIP-CACHE-INV:       ; %bb.0: ; %entry3233; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0)3234; SKIP-CACHE-INV-NEXT:    s_endpgm3235;3236; GFX90A-NOTTGSPLIT-LABEL: agent_one_as_seq_cst_fence:3237; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry3238; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)3239; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbinvl1_vol3240; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm3241;3242; GFX90A-TGSPLIT-LABEL: agent_one_as_seq_cst_fence:3243; GFX90A-TGSPLIT:       ; %bb.0: ; %entry3244; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)3245; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol3246; GFX90A-TGSPLIT-NEXT:    s_endpgm3247;3248; GFX942-NOTTGSPLIT-LABEL: agent_one_as_seq_cst_fence:3249; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry3250; GFX942-NOTTGSPLIT-NEXT:    buffer_wbl2 sc13251; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)3252; GFX942-NOTTGSPLIT-NEXT:    buffer_inv sc13253; GFX942-NOTTGSPLIT-NEXT:    s_endpgm3254;3255; GFX942-TGSPLIT-LABEL: agent_one_as_seq_cst_fence:3256; GFX942-TGSPLIT:       ; %bb.0: ; %entry3257; GFX942-TGSPLIT-NEXT:    buffer_wbl2 sc13258; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)3259; GFX942-TGSPLIT-NEXT:    buffer_inv sc13260; GFX942-TGSPLIT-NEXT:    s_endpgm3261;3262; GFX11-WGP-LABEL: agent_one_as_seq_cst_fence:3263; GFX11-WGP:       ; %bb.0: ; %entry3264; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0)3265; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x03266; GFX11-WGP-NEXT:    buffer_gl1_inv3267; GFX11-WGP-NEXT:    buffer_gl0_inv3268; GFX11-WGP-NEXT:    s_endpgm3269;3270; GFX11-CU-LABEL: agent_one_as_seq_cst_fence:3271; GFX11-CU:       ; %bb.0: ; %entry3272; GFX11-CU-NEXT:    s_waitcnt vmcnt(0)3273; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x03274; GFX11-CU-NEXT:    buffer_gl1_inv3275; GFX11-CU-NEXT:    buffer_gl0_inv3276; GFX11-CU-NEXT:    s_endpgm3277;3278; GFX12-WGP-LABEL: agent_one_as_seq_cst_fence:3279; GFX12-WGP:       ; %bb.0: ; %entry3280; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x03281; GFX12-WGP-NEXT:    s_wait_samplecnt 0x03282; GFX12-WGP-NEXT:    s_wait_loadcnt 0x03283; GFX12-WGP-NEXT:    s_wait_storecnt 0x03284; GFX12-WGP-NEXT:    global_inv scope:SCOPE_DEV3285; GFX12-WGP-NEXT:    s_endpgm3286;3287; GFX12-CU-LABEL: agent_one_as_seq_cst_fence:3288; GFX12-CU:       ; %bb.0: ; %entry3289; GFX12-CU-NEXT:    s_wait_bvhcnt 0x03290; GFX12-CU-NEXT:    s_wait_samplecnt 0x03291; GFX12-CU-NEXT:    s_wait_loadcnt 0x03292; GFX12-CU-NEXT:    s_wait_storecnt 0x03293; GFX12-CU-NEXT:    global_inv scope:SCOPE_DEV3294; GFX12-CU-NEXT:    s_endpgm3295;3296; GFX1250-LABEL: agent_one_as_seq_cst_fence:3297; GFX1250:       ; %bb.0: ; %entry3298; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 13299; GFX1250-NEXT:    global_wb scope:SCOPE_DEV3300; GFX1250-NEXT:    s_wait_loadcnt 0x03301; GFX1250-NEXT:    s_wait_storecnt 0x03302; GFX1250-NEXT:    global_inv scope:SCOPE_DEV3303; GFX1250-NEXT:    s_endpgm3304entry:3305  fence syncscope("agent-one-as") seq_cst3306  ret void3307}3308 3309define amdgpu_kernel void @system_acquire_fence() {3310; GFX6-LABEL: system_acquire_fence:3311; GFX6:       ; %bb.0: ; %entry3312; GFX6-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3313; GFX6-NEXT:    buffer_wbinvl13314; GFX6-NEXT:    s_endpgm3315;3316; GFX7-LABEL: system_acquire_fence:3317; GFX7:       ; %bb.0: ; %entry3318; GFX7-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3319; GFX7-NEXT:    buffer_wbinvl1_vol3320; GFX7-NEXT:    s_endpgm3321;3322; GFX10-WGP-LABEL: system_acquire_fence:3323; GFX10-WGP:       ; %bb.0: ; %entry3324; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3325; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x03326; GFX10-WGP-NEXT:    buffer_gl1_inv3327; GFX10-WGP-NEXT:    buffer_gl0_inv3328; GFX10-WGP-NEXT:    s_endpgm3329;3330; GFX10-CU-LABEL: system_acquire_fence:3331; GFX10-CU:       ; %bb.0: ; %entry3332; GFX10-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3333; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x03334; GFX10-CU-NEXT:    buffer_gl1_inv3335; GFX10-CU-NEXT:    buffer_gl0_inv3336; GFX10-CU-NEXT:    s_endpgm3337;3338; SKIP-CACHE-INV-LABEL: system_acquire_fence:3339; SKIP-CACHE-INV:       ; %bb.0: ; %entry3340; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3341; SKIP-CACHE-INV-NEXT:    s_endpgm3342;3343; GFX90A-NOTTGSPLIT-LABEL: system_acquire_fence:3344; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry3345; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3346; GFX90A-NOTTGSPLIT-NEXT:    buffer_invl23347; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbinvl1_vol3348; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm3349;3350; GFX90A-TGSPLIT-LABEL: system_acquire_fence:3351; GFX90A-TGSPLIT:       ; %bb.0: ; %entry3352; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3353; GFX90A-TGSPLIT-NEXT:    buffer_invl23354; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol3355; GFX90A-TGSPLIT-NEXT:    s_endpgm3356;3357; GFX942-NOTTGSPLIT-LABEL: system_acquire_fence:3358; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry3359; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3360; GFX942-NOTTGSPLIT-NEXT:    buffer_inv sc0 sc13361; GFX942-NOTTGSPLIT-NEXT:    s_endpgm3362;3363; GFX942-TGSPLIT-LABEL: system_acquire_fence:3364; GFX942-TGSPLIT:       ; %bb.0: ; %entry3365; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3366; GFX942-TGSPLIT-NEXT:    buffer_inv sc0 sc13367; GFX942-TGSPLIT-NEXT:    s_endpgm3368;3369; GFX11-WGP-LABEL: system_acquire_fence:3370; GFX11-WGP:       ; %bb.0: ; %entry3371; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3372; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x03373; GFX11-WGP-NEXT:    buffer_gl1_inv3374; GFX11-WGP-NEXT:    buffer_gl0_inv3375; GFX11-WGP-NEXT:    s_endpgm3376;3377; GFX11-CU-LABEL: system_acquire_fence:3378; GFX11-CU:       ; %bb.0: ; %entry3379; GFX11-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3380; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x03381; GFX11-CU-NEXT:    buffer_gl1_inv3382; GFX11-CU-NEXT:    buffer_gl0_inv3383; GFX11-CU-NEXT:    s_endpgm3384;3385; GFX12-WGP-LABEL: system_acquire_fence:3386; GFX12-WGP:       ; %bb.0: ; %entry3387; GFX12-WGP-NEXT:    s_wait_storecnt 0x03388; GFX12-WGP-NEXT:    s_wait_loadcnt_dscnt 0x03389; GFX12-WGP-NEXT:    global_inv scope:SCOPE_SYS3390; GFX12-WGP-NEXT:    s_endpgm3391;3392; GFX12-CU-LABEL: system_acquire_fence:3393; GFX12-CU:       ; %bb.0: ; %entry3394; GFX12-CU-NEXT:    s_wait_storecnt 0x03395; GFX12-CU-NEXT:    s_wait_loadcnt_dscnt 0x03396; GFX12-CU-NEXT:    global_inv scope:SCOPE_SYS3397; GFX12-CU-NEXT:    s_endpgm3398;3399; GFX1250-LABEL: system_acquire_fence:3400; GFX1250:       ; %bb.0: ; %entry3401; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 13402; GFX1250-NEXT:    s_wait_storecnt 0x03403; GFX1250-NEXT:    s_wait_loadcnt_dscnt 0x03404; GFX1250-NEXT:    global_inv scope:SCOPE_SYS3405; GFX1250-NEXT:    s_endpgm3406entry:3407  fence acquire3408  ret void3409}3410 3411define amdgpu_kernel void @system_release_fence() {3412; GFX6-LABEL: system_release_fence:3413; GFX6:       ; %bb.0: ; %entry3414; GFX6-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3415; GFX6-NEXT:    s_endpgm3416;3417; GFX7-LABEL: system_release_fence:3418; GFX7:       ; %bb.0: ; %entry3419; GFX7-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3420; GFX7-NEXT:    s_endpgm3421;3422; GFX10-WGP-LABEL: system_release_fence:3423; GFX10-WGP:       ; %bb.0: ; %entry3424; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3425; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x03426; GFX10-WGP-NEXT:    s_endpgm3427;3428; GFX10-CU-LABEL: system_release_fence:3429; GFX10-CU:       ; %bb.0: ; %entry3430; GFX10-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3431; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x03432; GFX10-CU-NEXT:    s_endpgm3433;3434; SKIP-CACHE-INV-LABEL: system_release_fence:3435; SKIP-CACHE-INV:       ; %bb.0: ; %entry3436; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3437; SKIP-CACHE-INV-NEXT:    s_endpgm3438;3439; GFX90A-NOTTGSPLIT-LABEL: system_release_fence:3440; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry3441; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbl23442; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3443; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm3444;3445; GFX90A-TGSPLIT-LABEL: system_release_fence:3446; GFX90A-TGSPLIT:       ; %bb.0: ; %entry3447; GFX90A-TGSPLIT-NEXT:    buffer_wbl23448; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3449; GFX90A-TGSPLIT-NEXT:    s_endpgm3450;3451; GFX942-NOTTGSPLIT-LABEL: system_release_fence:3452; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry3453; GFX942-NOTTGSPLIT-NEXT:    buffer_wbl2 sc0 sc13454; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3455; GFX942-NOTTGSPLIT-NEXT:    s_endpgm3456;3457; GFX942-TGSPLIT-LABEL: system_release_fence:3458; GFX942-TGSPLIT:       ; %bb.0: ; %entry3459; GFX942-TGSPLIT-NEXT:    buffer_wbl2 sc0 sc13460; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3461; GFX942-TGSPLIT-NEXT:    s_endpgm3462;3463; GFX11-WGP-LABEL: system_release_fence:3464; GFX11-WGP:       ; %bb.0: ; %entry3465; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3466; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x03467; GFX11-WGP-NEXT:    s_endpgm3468;3469; GFX11-CU-LABEL: system_release_fence:3470; GFX11-CU:       ; %bb.0: ; %entry3471; GFX11-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3472; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x03473; GFX11-CU-NEXT:    s_endpgm3474;3475; GFX12-WGP-LABEL: system_release_fence:3476; GFX12-WGP:       ; %bb.0: ; %entry3477; GFX12-WGP-NEXT:    global_wb scope:SCOPE_SYS3478; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x03479; GFX12-WGP-NEXT:    s_wait_samplecnt 0x03480; GFX12-WGP-NEXT:    s_wait_storecnt 0x03481; GFX12-WGP-NEXT:    s_wait_loadcnt_dscnt 0x03482; GFX12-WGP-NEXT:    s_endpgm3483;3484; GFX12-CU-LABEL: system_release_fence:3485; GFX12-CU:       ; %bb.0: ; %entry3486; GFX12-CU-NEXT:    global_wb scope:SCOPE_SYS3487; GFX12-CU-NEXT:    s_wait_bvhcnt 0x03488; GFX12-CU-NEXT:    s_wait_samplecnt 0x03489; GFX12-CU-NEXT:    s_wait_storecnt 0x03490; GFX12-CU-NEXT:    s_wait_loadcnt_dscnt 0x03491; GFX12-CU-NEXT:    s_endpgm3492;3493; GFX1250-LABEL: system_release_fence:3494; GFX1250:       ; %bb.0: ; %entry3495; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 13496; GFX1250-NEXT:    global_wb scope:SCOPE_SYS3497; GFX1250-NEXT:    s_wait_storecnt 0x03498; GFX1250-NEXT:    s_wait_loadcnt_dscnt 0x03499; GFX1250-NEXT:    s_endpgm3500entry:3501  fence release3502  ret void3503}3504 3505define amdgpu_kernel void @system_acq_rel_fence() {3506; GFX6-LABEL: system_acq_rel_fence:3507; GFX6:       ; %bb.0: ; %entry3508; GFX6-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3509; GFX6-NEXT:    buffer_wbinvl13510; GFX6-NEXT:    s_endpgm3511;3512; GFX7-LABEL: system_acq_rel_fence:3513; GFX7:       ; %bb.0: ; %entry3514; GFX7-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3515; GFX7-NEXT:    buffer_wbinvl1_vol3516; GFX7-NEXT:    s_endpgm3517;3518; GFX10-WGP-LABEL: system_acq_rel_fence:3519; GFX10-WGP:       ; %bb.0: ; %entry3520; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3521; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x03522; GFX10-WGP-NEXT:    buffer_gl1_inv3523; GFX10-WGP-NEXT:    buffer_gl0_inv3524; GFX10-WGP-NEXT:    s_endpgm3525;3526; GFX10-CU-LABEL: system_acq_rel_fence:3527; GFX10-CU:       ; %bb.0: ; %entry3528; GFX10-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3529; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x03530; GFX10-CU-NEXT:    buffer_gl1_inv3531; GFX10-CU-NEXT:    buffer_gl0_inv3532; GFX10-CU-NEXT:    s_endpgm3533;3534; SKIP-CACHE-INV-LABEL: system_acq_rel_fence:3535; SKIP-CACHE-INV:       ; %bb.0: ; %entry3536; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3537; SKIP-CACHE-INV-NEXT:    s_endpgm3538;3539; GFX90A-NOTTGSPLIT-LABEL: system_acq_rel_fence:3540; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry3541; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbl23542; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3543; GFX90A-NOTTGSPLIT-NEXT:    buffer_invl23544; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbinvl1_vol3545; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm3546;3547; GFX90A-TGSPLIT-LABEL: system_acq_rel_fence:3548; GFX90A-TGSPLIT:       ; %bb.0: ; %entry3549; GFX90A-TGSPLIT-NEXT:    buffer_wbl23550; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3551; GFX90A-TGSPLIT-NEXT:    buffer_invl23552; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol3553; GFX90A-TGSPLIT-NEXT:    s_endpgm3554;3555; GFX942-NOTTGSPLIT-LABEL: system_acq_rel_fence:3556; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry3557; GFX942-NOTTGSPLIT-NEXT:    buffer_wbl2 sc0 sc13558; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3559; GFX942-NOTTGSPLIT-NEXT:    buffer_inv sc0 sc13560; GFX942-NOTTGSPLIT-NEXT:    s_endpgm3561;3562; GFX942-TGSPLIT-LABEL: system_acq_rel_fence:3563; GFX942-TGSPLIT:       ; %bb.0: ; %entry3564; GFX942-TGSPLIT-NEXT:    buffer_wbl2 sc0 sc13565; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3566; GFX942-TGSPLIT-NEXT:    buffer_inv sc0 sc13567; GFX942-TGSPLIT-NEXT:    s_endpgm3568;3569; GFX11-WGP-LABEL: system_acq_rel_fence:3570; GFX11-WGP:       ; %bb.0: ; %entry3571; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3572; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x03573; GFX11-WGP-NEXT:    buffer_gl1_inv3574; GFX11-WGP-NEXT:    buffer_gl0_inv3575; GFX11-WGP-NEXT:    s_endpgm3576;3577; GFX11-CU-LABEL: system_acq_rel_fence:3578; GFX11-CU:       ; %bb.0: ; %entry3579; GFX11-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3580; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x03581; GFX11-CU-NEXT:    buffer_gl1_inv3582; GFX11-CU-NEXT:    buffer_gl0_inv3583; GFX11-CU-NEXT:    s_endpgm3584;3585; GFX12-WGP-LABEL: system_acq_rel_fence:3586; GFX12-WGP:       ; %bb.0: ; %entry3587; GFX12-WGP-NEXT:    global_wb scope:SCOPE_SYS3588; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x03589; GFX12-WGP-NEXT:    s_wait_samplecnt 0x03590; GFX12-WGP-NEXT:    s_wait_storecnt 0x03591; GFX12-WGP-NEXT:    s_wait_loadcnt_dscnt 0x03592; GFX12-WGP-NEXT:    global_inv scope:SCOPE_SYS3593; GFX12-WGP-NEXT:    s_endpgm3594;3595; GFX12-CU-LABEL: system_acq_rel_fence:3596; GFX12-CU:       ; %bb.0: ; %entry3597; GFX12-CU-NEXT:    global_wb scope:SCOPE_SYS3598; GFX12-CU-NEXT:    s_wait_bvhcnt 0x03599; GFX12-CU-NEXT:    s_wait_samplecnt 0x03600; GFX12-CU-NEXT:    s_wait_storecnt 0x03601; GFX12-CU-NEXT:    s_wait_loadcnt_dscnt 0x03602; GFX12-CU-NEXT:    global_inv scope:SCOPE_SYS3603; GFX12-CU-NEXT:    s_endpgm3604;3605; GFX1250-LABEL: system_acq_rel_fence:3606; GFX1250:       ; %bb.0: ; %entry3607; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 13608; GFX1250-NEXT:    global_wb scope:SCOPE_SYS3609; GFX1250-NEXT:    s_wait_storecnt 0x03610; GFX1250-NEXT:    s_wait_loadcnt_dscnt 0x03611; GFX1250-NEXT:    global_inv scope:SCOPE_SYS3612; GFX1250-NEXT:    s_endpgm3613entry:3614  fence acq_rel3615  ret void3616}3617 3618define amdgpu_kernel void @system_seq_cst_fence() {3619; GFX6-LABEL: system_seq_cst_fence:3620; GFX6:       ; %bb.0: ; %entry3621; GFX6-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3622; GFX6-NEXT:    buffer_wbinvl13623; GFX6-NEXT:    s_endpgm3624;3625; GFX7-LABEL: system_seq_cst_fence:3626; GFX7:       ; %bb.0: ; %entry3627; GFX7-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3628; GFX7-NEXT:    buffer_wbinvl1_vol3629; GFX7-NEXT:    s_endpgm3630;3631; GFX10-WGP-LABEL: system_seq_cst_fence:3632; GFX10-WGP:       ; %bb.0: ; %entry3633; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3634; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x03635; GFX10-WGP-NEXT:    buffer_gl1_inv3636; GFX10-WGP-NEXT:    buffer_gl0_inv3637; GFX10-WGP-NEXT:    s_endpgm3638;3639; GFX10-CU-LABEL: system_seq_cst_fence:3640; GFX10-CU:       ; %bb.0: ; %entry3641; GFX10-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3642; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x03643; GFX10-CU-NEXT:    buffer_gl1_inv3644; GFX10-CU-NEXT:    buffer_gl0_inv3645; GFX10-CU-NEXT:    s_endpgm3646;3647; SKIP-CACHE-INV-LABEL: system_seq_cst_fence:3648; SKIP-CACHE-INV:       ; %bb.0: ; %entry3649; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3650; SKIP-CACHE-INV-NEXT:    s_endpgm3651;3652; GFX90A-NOTTGSPLIT-LABEL: system_seq_cst_fence:3653; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry3654; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbl23655; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3656; GFX90A-NOTTGSPLIT-NEXT:    buffer_invl23657; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbinvl1_vol3658; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm3659;3660; GFX90A-TGSPLIT-LABEL: system_seq_cst_fence:3661; GFX90A-TGSPLIT:       ; %bb.0: ; %entry3662; GFX90A-TGSPLIT-NEXT:    buffer_wbl23663; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3664; GFX90A-TGSPLIT-NEXT:    buffer_invl23665; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol3666; GFX90A-TGSPLIT-NEXT:    s_endpgm3667;3668; GFX942-NOTTGSPLIT-LABEL: system_seq_cst_fence:3669; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry3670; GFX942-NOTTGSPLIT-NEXT:    buffer_wbl2 sc0 sc13671; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3672; GFX942-NOTTGSPLIT-NEXT:    buffer_inv sc0 sc13673; GFX942-NOTTGSPLIT-NEXT:    s_endpgm3674;3675; GFX942-TGSPLIT-LABEL: system_seq_cst_fence:3676; GFX942-TGSPLIT:       ; %bb.0: ; %entry3677; GFX942-TGSPLIT-NEXT:    buffer_wbl2 sc0 sc13678; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3679; GFX942-TGSPLIT-NEXT:    buffer_inv sc0 sc13680; GFX942-TGSPLIT-NEXT:    s_endpgm3681;3682; GFX11-WGP-LABEL: system_seq_cst_fence:3683; GFX11-WGP:       ; %bb.0: ; %entry3684; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3685; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x03686; GFX11-WGP-NEXT:    buffer_gl1_inv3687; GFX11-WGP-NEXT:    buffer_gl0_inv3688; GFX11-WGP-NEXT:    s_endpgm3689;3690; GFX11-CU-LABEL: system_seq_cst_fence:3691; GFX11-CU:       ; %bb.0: ; %entry3692; GFX11-CU-NEXT:    s_waitcnt vmcnt(0) lgkmcnt(0)3693; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x03694; GFX11-CU-NEXT:    buffer_gl1_inv3695; GFX11-CU-NEXT:    buffer_gl0_inv3696; GFX11-CU-NEXT:    s_endpgm3697;3698; GFX12-WGP-LABEL: system_seq_cst_fence:3699; GFX12-WGP:       ; %bb.0: ; %entry3700; GFX12-WGP-NEXT:    global_wb scope:SCOPE_SYS3701; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x03702; GFX12-WGP-NEXT:    s_wait_samplecnt 0x03703; GFX12-WGP-NEXT:    s_wait_storecnt 0x03704; GFX12-WGP-NEXT:    s_wait_loadcnt_dscnt 0x03705; GFX12-WGP-NEXT:    global_inv scope:SCOPE_SYS3706; GFX12-WGP-NEXT:    s_endpgm3707;3708; GFX12-CU-LABEL: system_seq_cst_fence:3709; GFX12-CU:       ; %bb.0: ; %entry3710; GFX12-CU-NEXT:    global_wb scope:SCOPE_SYS3711; GFX12-CU-NEXT:    s_wait_bvhcnt 0x03712; GFX12-CU-NEXT:    s_wait_samplecnt 0x03713; GFX12-CU-NEXT:    s_wait_storecnt 0x03714; GFX12-CU-NEXT:    s_wait_loadcnt_dscnt 0x03715; GFX12-CU-NEXT:    global_inv scope:SCOPE_SYS3716; GFX12-CU-NEXT:    s_endpgm3717;3718; GFX1250-LABEL: system_seq_cst_fence:3719; GFX1250:       ; %bb.0: ; %entry3720; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 13721; GFX1250-NEXT:    global_wb scope:SCOPE_SYS3722; GFX1250-NEXT:    s_wait_storecnt 0x03723; GFX1250-NEXT:    s_wait_loadcnt_dscnt 0x03724; GFX1250-NEXT:    global_inv scope:SCOPE_SYS3725; GFX1250-NEXT:    s_endpgm3726entry:3727  fence seq_cst3728  ret void3729}3730 3731define amdgpu_kernel void @system_one_as_acquire_fence() {3732; GFX6-LABEL: system_one_as_acquire_fence:3733; GFX6:       ; %bb.0: ; %entry3734; GFX6-NEXT:    s_waitcnt vmcnt(0)3735; GFX6-NEXT:    buffer_wbinvl13736; GFX6-NEXT:    s_endpgm3737;3738; GFX7-LABEL: system_one_as_acquire_fence:3739; GFX7:       ; %bb.0: ; %entry3740; GFX7-NEXT:    s_waitcnt vmcnt(0)3741; GFX7-NEXT:    buffer_wbinvl1_vol3742; GFX7-NEXT:    s_endpgm3743;3744; GFX10-WGP-LABEL: system_one_as_acquire_fence:3745; GFX10-WGP:       ; %bb.0: ; %entry3746; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0)3747; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x03748; GFX10-WGP-NEXT:    buffer_gl1_inv3749; GFX10-WGP-NEXT:    buffer_gl0_inv3750; GFX10-WGP-NEXT:    s_endpgm3751;3752; GFX10-CU-LABEL: system_one_as_acquire_fence:3753; GFX10-CU:       ; %bb.0: ; %entry3754; GFX10-CU-NEXT:    s_waitcnt vmcnt(0)3755; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x03756; GFX10-CU-NEXT:    buffer_gl1_inv3757; GFX10-CU-NEXT:    buffer_gl0_inv3758; GFX10-CU-NEXT:    s_endpgm3759;3760; SKIP-CACHE-INV-LABEL: system_one_as_acquire_fence:3761; SKIP-CACHE-INV:       ; %bb.0: ; %entry3762; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0)3763; SKIP-CACHE-INV-NEXT:    s_endpgm3764;3765; GFX90A-NOTTGSPLIT-LABEL: system_one_as_acquire_fence:3766; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry3767; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)3768; GFX90A-NOTTGSPLIT-NEXT:    buffer_invl23769; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbinvl1_vol3770; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm3771;3772; GFX90A-TGSPLIT-LABEL: system_one_as_acquire_fence:3773; GFX90A-TGSPLIT:       ; %bb.0: ; %entry3774; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)3775; GFX90A-TGSPLIT-NEXT:    buffer_invl23776; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol3777; GFX90A-TGSPLIT-NEXT:    s_endpgm3778;3779; GFX942-NOTTGSPLIT-LABEL: system_one_as_acquire_fence:3780; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry3781; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)3782; GFX942-NOTTGSPLIT-NEXT:    buffer_inv sc0 sc13783; GFX942-NOTTGSPLIT-NEXT:    s_endpgm3784;3785; GFX942-TGSPLIT-LABEL: system_one_as_acquire_fence:3786; GFX942-TGSPLIT:       ; %bb.0: ; %entry3787; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)3788; GFX942-TGSPLIT-NEXT:    buffer_inv sc0 sc13789; GFX942-TGSPLIT-NEXT:    s_endpgm3790;3791; GFX11-WGP-LABEL: system_one_as_acquire_fence:3792; GFX11-WGP:       ; %bb.0: ; %entry3793; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0)3794; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x03795; GFX11-WGP-NEXT:    buffer_gl1_inv3796; GFX11-WGP-NEXT:    buffer_gl0_inv3797; GFX11-WGP-NEXT:    s_endpgm3798;3799; GFX11-CU-LABEL: system_one_as_acquire_fence:3800; GFX11-CU:       ; %bb.0: ; %entry3801; GFX11-CU-NEXT:    s_waitcnt vmcnt(0)3802; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x03803; GFX11-CU-NEXT:    buffer_gl1_inv3804; GFX11-CU-NEXT:    buffer_gl0_inv3805; GFX11-CU-NEXT:    s_endpgm3806;3807; GFX12-WGP-LABEL: system_one_as_acquire_fence:3808; GFX12-WGP:       ; %bb.0: ; %entry3809; GFX12-WGP-NEXT:    s_wait_loadcnt 0x03810; GFX12-WGP-NEXT:    s_wait_storecnt 0x03811; GFX12-WGP-NEXT:    global_inv scope:SCOPE_SYS3812; GFX12-WGP-NEXT:    s_endpgm3813;3814; GFX12-CU-LABEL: system_one_as_acquire_fence:3815; GFX12-CU:       ; %bb.0: ; %entry3816; GFX12-CU-NEXT:    s_wait_loadcnt 0x03817; GFX12-CU-NEXT:    s_wait_storecnt 0x03818; GFX12-CU-NEXT:    global_inv scope:SCOPE_SYS3819; GFX12-CU-NEXT:    s_endpgm3820;3821; GFX1250-LABEL: system_one_as_acquire_fence:3822; GFX1250:       ; %bb.0: ; %entry3823; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 13824; GFX1250-NEXT:    s_wait_loadcnt 0x03825; GFX1250-NEXT:    s_wait_storecnt 0x03826; GFX1250-NEXT:    global_inv scope:SCOPE_SYS3827; GFX1250-NEXT:    s_endpgm3828entry:3829  fence syncscope("one-as") acquire3830  ret void3831}3832 3833define amdgpu_kernel void @system_one_as_release_fence() {3834; GFX6-LABEL: system_one_as_release_fence:3835; GFX6:       ; %bb.0: ; %entry3836; GFX6-NEXT:    s_waitcnt vmcnt(0)3837; GFX6-NEXT:    s_endpgm3838;3839; GFX7-LABEL: system_one_as_release_fence:3840; GFX7:       ; %bb.0: ; %entry3841; GFX7-NEXT:    s_waitcnt vmcnt(0)3842; GFX7-NEXT:    s_endpgm3843;3844; GFX10-WGP-LABEL: system_one_as_release_fence:3845; GFX10-WGP:       ; %bb.0: ; %entry3846; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0)3847; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x03848; GFX10-WGP-NEXT:    s_endpgm3849;3850; GFX10-CU-LABEL: system_one_as_release_fence:3851; GFX10-CU:       ; %bb.0: ; %entry3852; GFX10-CU-NEXT:    s_waitcnt vmcnt(0)3853; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x03854; GFX10-CU-NEXT:    s_endpgm3855;3856; SKIP-CACHE-INV-LABEL: system_one_as_release_fence:3857; SKIP-CACHE-INV:       ; %bb.0: ; %entry3858; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0)3859; SKIP-CACHE-INV-NEXT:    s_endpgm3860;3861; GFX90A-NOTTGSPLIT-LABEL: system_one_as_release_fence:3862; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry3863; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbl23864; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)3865; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm3866;3867; GFX90A-TGSPLIT-LABEL: system_one_as_release_fence:3868; GFX90A-TGSPLIT:       ; %bb.0: ; %entry3869; GFX90A-TGSPLIT-NEXT:    buffer_wbl23870; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)3871; GFX90A-TGSPLIT-NEXT:    s_endpgm3872;3873; GFX942-NOTTGSPLIT-LABEL: system_one_as_release_fence:3874; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry3875; GFX942-NOTTGSPLIT-NEXT:    buffer_wbl2 sc0 sc13876; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)3877; GFX942-NOTTGSPLIT-NEXT:    s_endpgm3878;3879; GFX942-TGSPLIT-LABEL: system_one_as_release_fence:3880; GFX942-TGSPLIT:       ; %bb.0: ; %entry3881; GFX942-TGSPLIT-NEXT:    buffer_wbl2 sc0 sc13882; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)3883; GFX942-TGSPLIT-NEXT:    s_endpgm3884;3885; GFX11-WGP-LABEL: system_one_as_release_fence:3886; GFX11-WGP:       ; %bb.0: ; %entry3887; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0)3888; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x03889; GFX11-WGP-NEXT:    s_endpgm3890;3891; GFX11-CU-LABEL: system_one_as_release_fence:3892; GFX11-CU:       ; %bb.0: ; %entry3893; GFX11-CU-NEXT:    s_waitcnt vmcnt(0)3894; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x03895; GFX11-CU-NEXT:    s_endpgm3896;3897; GFX12-WGP-LABEL: system_one_as_release_fence:3898; GFX12-WGP:       ; %bb.0: ; %entry3899; GFX12-WGP-NEXT:    global_wb scope:SCOPE_SYS3900; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x03901; GFX12-WGP-NEXT:    s_wait_samplecnt 0x03902; GFX12-WGP-NEXT:    s_wait_loadcnt 0x03903; GFX12-WGP-NEXT:    s_wait_storecnt 0x03904; GFX12-WGP-NEXT:    s_endpgm3905;3906; GFX12-CU-LABEL: system_one_as_release_fence:3907; GFX12-CU:       ; %bb.0: ; %entry3908; GFX12-CU-NEXT:    global_wb scope:SCOPE_SYS3909; GFX12-CU-NEXT:    s_wait_bvhcnt 0x03910; GFX12-CU-NEXT:    s_wait_samplecnt 0x03911; GFX12-CU-NEXT:    s_wait_loadcnt 0x03912; GFX12-CU-NEXT:    s_wait_storecnt 0x03913; GFX12-CU-NEXT:    s_endpgm3914;3915; GFX1250-LABEL: system_one_as_release_fence:3916; GFX1250:       ; %bb.0: ; %entry3917; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 13918; GFX1250-NEXT:    global_wb scope:SCOPE_SYS3919; GFX1250-NEXT:    s_wait_loadcnt 0x03920; GFX1250-NEXT:    s_wait_storecnt 0x03921; GFX1250-NEXT:    s_endpgm3922entry:3923  fence syncscope("one-as") release3924  ret void3925}3926 3927define amdgpu_kernel void @system_one_as_acq_rel_fence() {3928; GFX6-LABEL: system_one_as_acq_rel_fence:3929; GFX6:       ; %bb.0: ; %entry3930; GFX6-NEXT:    s_waitcnt vmcnt(0)3931; GFX6-NEXT:    buffer_wbinvl13932; GFX6-NEXT:    s_endpgm3933;3934; GFX7-LABEL: system_one_as_acq_rel_fence:3935; GFX7:       ; %bb.0: ; %entry3936; GFX7-NEXT:    s_waitcnt vmcnt(0)3937; GFX7-NEXT:    buffer_wbinvl1_vol3938; GFX7-NEXT:    s_endpgm3939;3940; GFX10-WGP-LABEL: system_one_as_acq_rel_fence:3941; GFX10-WGP:       ; %bb.0: ; %entry3942; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0)3943; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x03944; GFX10-WGP-NEXT:    buffer_gl1_inv3945; GFX10-WGP-NEXT:    buffer_gl0_inv3946; GFX10-WGP-NEXT:    s_endpgm3947;3948; GFX10-CU-LABEL: system_one_as_acq_rel_fence:3949; GFX10-CU:       ; %bb.0: ; %entry3950; GFX10-CU-NEXT:    s_waitcnt vmcnt(0)3951; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x03952; GFX10-CU-NEXT:    buffer_gl1_inv3953; GFX10-CU-NEXT:    buffer_gl0_inv3954; GFX10-CU-NEXT:    s_endpgm3955;3956; SKIP-CACHE-INV-LABEL: system_one_as_acq_rel_fence:3957; SKIP-CACHE-INV:       ; %bb.0: ; %entry3958; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0)3959; SKIP-CACHE-INV-NEXT:    s_endpgm3960;3961; GFX90A-NOTTGSPLIT-LABEL: system_one_as_acq_rel_fence:3962; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry3963; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbl23964; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)3965; GFX90A-NOTTGSPLIT-NEXT:    buffer_invl23966; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbinvl1_vol3967; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm3968;3969; GFX90A-TGSPLIT-LABEL: system_one_as_acq_rel_fence:3970; GFX90A-TGSPLIT:       ; %bb.0: ; %entry3971; GFX90A-TGSPLIT-NEXT:    buffer_wbl23972; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)3973; GFX90A-TGSPLIT-NEXT:    buffer_invl23974; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol3975; GFX90A-TGSPLIT-NEXT:    s_endpgm3976;3977; GFX942-NOTTGSPLIT-LABEL: system_one_as_acq_rel_fence:3978; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry3979; GFX942-NOTTGSPLIT-NEXT:    buffer_wbl2 sc0 sc13980; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)3981; GFX942-NOTTGSPLIT-NEXT:    buffer_inv sc0 sc13982; GFX942-NOTTGSPLIT-NEXT:    s_endpgm3983;3984; GFX942-TGSPLIT-LABEL: system_one_as_acq_rel_fence:3985; GFX942-TGSPLIT:       ; %bb.0: ; %entry3986; GFX942-TGSPLIT-NEXT:    buffer_wbl2 sc0 sc13987; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)3988; GFX942-TGSPLIT-NEXT:    buffer_inv sc0 sc13989; GFX942-TGSPLIT-NEXT:    s_endpgm3990;3991; GFX11-WGP-LABEL: system_one_as_acq_rel_fence:3992; GFX11-WGP:       ; %bb.0: ; %entry3993; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0)3994; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x03995; GFX11-WGP-NEXT:    buffer_gl1_inv3996; GFX11-WGP-NEXT:    buffer_gl0_inv3997; GFX11-WGP-NEXT:    s_endpgm3998;3999; GFX11-CU-LABEL: system_one_as_acq_rel_fence:4000; GFX11-CU:       ; %bb.0: ; %entry4001; GFX11-CU-NEXT:    s_waitcnt vmcnt(0)4002; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x04003; GFX11-CU-NEXT:    buffer_gl1_inv4004; GFX11-CU-NEXT:    buffer_gl0_inv4005; GFX11-CU-NEXT:    s_endpgm4006;4007; GFX12-WGP-LABEL: system_one_as_acq_rel_fence:4008; GFX12-WGP:       ; %bb.0: ; %entry4009; GFX12-WGP-NEXT:    global_wb scope:SCOPE_SYS4010; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x04011; GFX12-WGP-NEXT:    s_wait_samplecnt 0x04012; GFX12-WGP-NEXT:    s_wait_loadcnt 0x04013; GFX12-WGP-NEXT:    s_wait_storecnt 0x04014; GFX12-WGP-NEXT:    global_inv scope:SCOPE_SYS4015; GFX12-WGP-NEXT:    s_endpgm4016;4017; GFX12-CU-LABEL: system_one_as_acq_rel_fence:4018; GFX12-CU:       ; %bb.0: ; %entry4019; GFX12-CU-NEXT:    global_wb scope:SCOPE_SYS4020; GFX12-CU-NEXT:    s_wait_bvhcnt 0x04021; GFX12-CU-NEXT:    s_wait_samplecnt 0x04022; GFX12-CU-NEXT:    s_wait_loadcnt 0x04023; GFX12-CU-NEXT:    s_wait_storecnt 0x04024; GFX12-CU-NEXT:    global_inv scope:SCOPE_SYS4025; GFX12-CU-NEXT:    s_endpgm4026;4027; GFX1250-LABEL: system_one_as_acq_rel_fence:4028; GFX1250:       ; %bb.0: ; %entry4029; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 14030; GFX1250-NEXT:    global_wb scope:SCOPE_SYS4031; GFX1250-NEXT:    s_wait_loadcnt 0x04032; GFX1250-NEXT:    s_wait_storecnt 0x04033; GFX1250-NEXT:    global_inv scope:SCOPE_SYS4034; GFX1250-NEXT:    s_endpgm4035entry:4036  fence syncscope("one-as") acq_rel4037  ret void4038}4039 4040define amdgpu_kernel void @system_one_as_seq_cst_fence() {4041; GFX6-LABEL: system_one_as_seq_cst_fence:4042; GFX6:       ; %bb.0: ; %entry4043; GFX6-NEXT:    s_waitcnt vmcnt(0)4044; GFX6-NEXT:    buffer_wbinvl14045; GFX6-NEXT:    s_endpgm4046;4047; GFX7-LABEL: system_one_as_seq_cst_fence:4048; GFX7:       ; %bb.0: ; %entry4049; GFX7-NEXT:    s_waitcnt vmcnt(0)4050; GFX7-NEXT:    buffer_wbinvl1_vol4051; GFX7-NEXT:    s_endpgm4052;4053; GFX10-WGP-LABEL: system_one_as_seq_cst_fence:4054; GFX10-WGP:       ; %bb.0: ; %entry4055; GFX10-WGP-NEXT:    s_waitcnt vmcnt(0)4056; GFX10-WGP-NEXT:    s_waitcnt_vscnt null, 0x04057; GFX10-WGP-NEXT:    buffer_gl1_inv4058; GFX10-WGP-NEXT:    buffer_gl0_inv4059; GFX10-WGP-NEXT:    s_endpgm4060;4061; GFX10-CU-LABEL: system_one_as_seq_cst_fence:4062; GFX10-CU:       ; %bb.0: ; %entry4063; GFX10-CU-NEXT:    s_waitcnt vmcnt(0)4064; GFX10-CU-NEXT:    s_waitcnt_vscnt null, 0x04065; GFX10-CU-NEXT:    buffer_gl1_inv4066; GFX10-CU-NEXT:    buffer_gl0_inv4067; GFX10-CU-NEXT:    s_endpgm4068;4069; SKIP-CACHE-INV-LABEL: system_one_as_seq_cst_fence:4070; SKIP-CACHE-INV:       ; %bb.0: ; %entry4071; SKIP-CACHE-INV-NEXT:    s_waitcnt vmcnt(0)4072; SKIP-CACHE-INV-NEXT:    s_endpgm4073;4074; GFX90A-NOTTGSPLIT-LABEL: system_one_as_seq_cst_fence:4075; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry4076; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbl24077; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)4078; GFX90A-NOTTGSPLIT-NEXT:    buffer_invl24079; GFX90A-NOTTGSPLIT-NEXT:    buffer_wbinvl1_vol4080; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm4081;4082; GFX90A-TGSPLIT-LABEL: system_one_as_seq_cst_fence:4083; GFX90A-TGSPLIT:       ; %bb.0: ; %entry4084; GFX90A-TGSPLIT-NEXT:    buffer_wbl24085; GFX90A-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)4086; GFX90A-TGSPLIT-NEXT:    buffer_invl24087; GFX90A-TGSPLIT-NEXT:    buffer_wbinvl1_vol4088; GFX90A-TGSPLIT-NEXT:    s_endpgm4089;4090; GFX942-NOTTGSPLIT-LABEL: system_one_as_seq_cst_fence:4091; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry4092; GFX942-NOTTGSPLIT-NEXT:    buffer_wbl2 sc0 sc14093; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt vmcnt(0)4094; GFX942-NOTTGSPLIT-NEXT:    buffer_inv sc0 sc14095; GFX942-NOTTGSPLIT-NEXT:    s_endpgm4096;4097; GFX942-TGSPLIT-LABEL: system_one_as_seq_cst_fence:4098; GFX942-TGSPLIT:       ; %bb.0: ; %entry4099; GFX942-TGSPLIT-NEXT:    buffer_wbl2 sc0 sc14100; GFX942-TGSPLIT-NEXT:    s_waitcnt vmcnt(0)4101; GFX942-TGSPLIT-NEXT:    buffer_inv sc0 sc14102; GFX942-TGSPLIT-NEXT:    s_endpgm4103;4104; GFX11-WGP-LABEL: system_one_as_seq_cst_fence:4105; GFX11-WGP:       ; %bb.0: ; %entry4106; GFX11-WGP-NEXT:    s_waitcnt vmcnt(0)4107; GFX11-WGP-NEXT:    s_waitcnt_vscnt null, 0x04108; GFX11-WGP-NEXT:    buffer_gl1_inv4109; GFX11-WGP-NEXT:    buffer_gl0_inv4110; GFX11-WGP-NEXT:    s_endpgm4111;4112; GFX11-CU-LABEL: system_one_as_seq_cst_fence:4113; GFX11-CU:       ; %bb.0: ; %entry4114; GFX11-CU-NEXT:    s_waitcnt vmcnt(0)4115; GFX11-CU-NEXT:    s_waitcnt_vscnt null, 0x04116; GFX11-CU-NEXT:    buffer_gl1_inv4117; GFX11-CU-NEXT:    buffer_gl0_inv4118; GFX11-CU-NEXT:    s_endpgm4119;4120; GFX12-WGP-LABEL: system_one_as_seq_cst_fence:4121; GFX12-WGP:       ; %bb.0: ; %entry4122; GFX12-WGP-NEXT:    global_wb scope:SCOPE_SYS4123; GFX12-WGP-NEXT:    s_wait_bvhcnt 0x04124; GFX12-WGP-NEXT:    s_wait_samplecnt 0x04125; GFX12-WGP-NEXT:    s_wait_loadcnt 0x04126; GFX12-WGP-NEXT:    s_wait_storecnt 0x04127; GFX12-WGP-NEXT:    global_inv scope:SCOPE_SYS4128; GFX12-WGP-NEXT:    s_endpgm4129;4130; GFX12-CU-LABEL: system_one_as_seq_cst_fence:4131; GFX12-CU:       ; %bb.0: ; %entry4132; GFX12-CU-NEXT:    global_wb scope:SCOPE_SYS4133; GFX12-CU-NEXT:    s_wait_bvhcnt 0x04134; GFX12-CU-NEXT:    s_wait_samplecnt 0x04135; GFX12-CU-NEXT:    s_wait_loadcnt 0x04136; GFX12-CU-NEXT:    s_wait_storecnt 0x04137; GFX12-CU-NEXT:    global_inv scope:SCOPE_SYS4138; GFX12-CU-NEXT:    s_endpgm4139;4140; GFX1250-LABEL: system_one_as_seq_cst_fence:4141; GFX1250:       ; %bb.0: ; %entry4142; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 14143; GFX1250-NEXT:    global_wb scope:SCOPE_SYS4144; GFX1250-NEXT:    s_wait_loadcnt 0x04145; GFX1250-NEXT:    s_wait_storecnt 0x04146; GFX1250-NEXT:    global_inv scope:SCOPE_SYS4147; GFX1250-NEXT:    s_endpgm4148entry:4149  fence syncscope("one-as") seq_cst4150  ret void4151}4152