brintos

brintos / llvm-project-archived public Read only

0
0
Text · 51.4 KiB · 022ec1d Raw
1648 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 @workgroup_acquire_fence() {18; GFX6-LABEL: workgroup_acquire_fence:19; GFX6:       ; %bb.0: ; %entry20; GFX6-NEXT:    s_waitcnt lgkmcnt(0)21; GFX6-NEXT:    s_endpgm22;23; GFX7-LABEL: workgroup_acquire_fence:24; GFX7:       ; %bb.0: ; %entry25; GFX7-NEXT:    s_waitcnt lgkmcnt(0)26; GFX7-NEXT:    s_endpgm27;28; GFX10-WGP-LABEL: workgroup_acquire_fence:29; GFX10-WGP:       ; %bb.0: ; %entry30; GFX10-WGP-NEXT:    s_waitcnt lgkmcnt(0)31; GFX10-WGP-NEXT:    s_endpgm32;33; GFX10-CU-LABEL: workgroup_acquire_fence:34; GFX10-CU:       ; %bb.0: ; %entry35; GFX10-CU-NEXT:    s_waitcnt lgkmcnt(0)36; GFX10-CU-NEXT:    s_endpgm37;38; SKIP-CACHE-INV-LABEL: workgroup_acquire_fence:39; SKIP-CACHE-INV:       ; %bb.0: ; %entry40; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)41; SKIP-CACHE-INV-NEXT:    s_endpgm42;43; GFX90A-NOTTGSPLIT-LABEL: workgroup_acquire_fence:44; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry45; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)46; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm47;48; GFX90A-TGSPLIT-LABEL: workgroup_acquire_fence:49; GFX90A-TGSPLIT:       ; %bb.0: ; %entry50; GFX90A-TGSPLIT-NEXT:    s_endpgm51;52; GFX942-NOTTGSPLIT-LABEL: workgroup_acquire_fence:53; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry54; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)55; GFX942-NOTTGSPLIT-NEXT:    s_endpgm56;57; GFX942-TGSPLIT-LABEL: workgroup_acquire_fence:58; GFX942-TGSPLIT:       ; %bb.0: ; %entry59; GFX942-TGSPLIT-NEXT:    s_endpgm60;61; GFX11-WGP-LABEL: workgroup_acquire_fence:62; GFX11-WGP:       ; %bb.0: ; %entry63; GFX11-WGP-NEXT:    s_waitcnt lgkmcnt(0)64; GFX11-WGP-NEXT:    s_endpgm65;66; GFX11-CU-LABEL: workgroup_acquire_fence:67; GFX11-CU:       ; %bb.0: ; %entry68; GFX11-CU-NEXT:    s_waitcnt lgkmcnt(0)69; GFX11-CU-NEXT:    s_endpgm70;71; GFX12-WGP-LABEL: workgroup_acquire_fence:72; GFX12-WGP:       ; %bb.0: ; %entry73; GFX12-WGP-NEXT:    s_wait_dscnt 0x074; GFX12-WGP-NEXT:    s_endpgm75;76; GFX12-CU-LABEL: workgroup_acquire_fence:77; GFX12-CU:       ; %bb.0: ; %entry78; GFX12-CU-NEXT:    s_wait_dscnt 0x079; GFX12-CU-NEXT:    s_endpgm80;81; GFX1250-LABEL: workgroup_acquire_fence:82; GFX1250:       ; %bb.0: ; %entry83; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 184; GFX1250-NEXT:    s_wait_dscnt 0x085; GFX1250-NEXT:    s_endpgm86entry:87  fence syncscope("workgroup") acquire, !mmra !{!"amdgpu-synchronize-as", !"local"}88  ret void89}90 91define amdgpu_kernel void @workgroup_release_fence() {92; GFX6-LABEL: workgroup_release_fence:93; GFX6:       ; %bb.0: ; %entry94; GFX6-NEXT:    s_waitcnt lgkmcnt(0)95; GFX6-NEXT:    s_endpgm96;97; GFX7-LABEL: workgroup_release_fence:98; GFX7:       ; %bb.0: ; %entry99; GFX7-NEXT:    s_waitcnt lgkmcnt(0)100; GFX7-NEXT:    s_endpgm101;102; GFX10-WGP-LABEL: workgroup_release_fence:103; GFX10-WGP:       ; %bb.0: ; %entry104; GFX10-WGP-NEXT:    s_waitcnt lgkmcnt(0)105; GFX10-WGP-NEXT:    s_endpgm106;107; GFX10-CU-LABEL: workgroup_release_fence:108; GFX10-CU:       ; %bb.0: ; %entry109; GFX10-CU-NEXT:    s_waitcnt lgkmcnt(0)110; GFX10-CU-NEXT:    s_endpgm111;112; SKIP-CACHE-INV-LABEL: workgroup_release_fence:113; SKIP-CACHE-INV:       ; %bb.0: ; %entry114; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)115; SKIP-CACHE-INV-NEXT:    s_endpgm116;117; GFX90A-NOTTGSPLIT-LABEL: workgroup_release_fence:118; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry119; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)120; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm121;122; GFX90A-TGSPLIT-LABEL: workgroup_release_fence:123; GFX90A-TGSPLIT:       ; %bb.0: ; %entry124; GFX90A-TGSPLIT-NEXT:    s_endpgm125;126; GFX942-NOTTGSPLIT-LABEL: workgroup_release_fence:127; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry128; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)129; GFX942-NOTTGSPLIT-NEXT:    s_endpgm130;131; GFX942-TGSPLIT-LABEL: workgroup_release_fence:132; GFX942-TGSPLIT:       ; %bb.0: ; %entry133; GFX942-TGSPLIT-NEXT:    s_endpgm134;135; GFX11-WGP-LABEL: workgroup_release_fence:136; GFX11-WGP:       ; %bb.0: ; %entry137; GFX11-WGP-NEXT:    s_waitcnt lgkmcnt(0)138; GFX11-WGP-NEXT:    s_endpgm139;140; GFX11-CU-LABEL: workgroup_release_fence:141; GFX11-CU:       ; %bb.0: ; %entry142; GFX11-CU-NEXT:    s_waitcnt lgkmcnt(0)143; GFX11-CU-NEXT:    s_endpgm144;145; GFX12-WGP-LABEL: workgroup_release_fence:146; GFX12-WGP:       ; %bb.0: ; %entry147; GFX12-WGP-NEXT:    s_wait_dscnt 0x0148; GFX12-WGP-NEXT:    s_endpgm149;150; GFX12-CU-LABEL: workgroup_release_fence:151; GFX12-CU:       ; %bb.0: ; %entry152; GFX12-CU-NEXT:    s_wait_dscnt 0x0153; GFX12-CU-NEXT:    s_endpgm154;155; GFX1250-LABEL: workgroup_release_fence:156; GFX1250:       ; %bb.0: ; %entry157; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1158; GFX1250-NEXT:    s_wait_dscnt 0x0159; GFX1250-NEXT:    s_endpgm160entry:161  fence syncscope("workgroup") release, !mmra !{!"amdgpu-synchronize-as", !"local"}162  ret void163}164 165define amdgpu_kernel void @workgroup_acq_rel_fence() {166; GFX6-LABEL: workgroup_acq_rel_fence:167; GFX6:       ; %bb.0: ; %entry168; GFX6-NEXT:    s_waitcnt lgkmcnt(0)169; GFX6-NEXT:    s_endpgm170;171; GFX7-LABEL: workgroup_acq_rel_fence:172; GFX7:       ; %bb.0: ; %entry173; GFX7-NEXT:    s_waitcnt lgkmcnt(0)174; GFX7-NEXT:    s_endpgm175;176; GFX10-WGP-LABEL: workgroup_acq_rel_fence:177; GFX10-WGP:       ; %bb.0: ; %entry178; GFX10-WGP-NEXT:    s_waitcnt lgkmcnt(0)179; GFX10-WGP-NEXT:    s_endpgm180;181; GFX10-CU-LABEL: workgroup_acq_rel_fence:182; GFX10-CU:       ; %bb.0: ; %entry183; GFX10-CU-NEXT:    s_waitcnt lgkmcnt(0)184; GFX10-CU-NEXT:    s_endpgm185;186; SKIP-CACHE-INV-LABEL: workgroup_acq_rel_fence:187; SKIP-CACHE-INV:       ; %bb.0: ; %entry188; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)189; SKIP-CACHE-INV-NEXT:    s_endpgm190;191; GFX90A-NOTTGSPLIT-LABEL: workgroup_acq_rel_fence:192; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry193; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)194; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm195;196; GFX90A-TGSPLIT-LABEL: workgroup_acq_rel_fence:197; GFX90A-TGSPLIT:       ; %bb.0: ; %entry198; GFX90A-TGSPLIT-NEXT:    s_endpgm199;200; GFX942-NOTTGSPLIT-LABEL: workgroup_acq_rel_fence:201; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry202; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)203; GFX942-NOTTGSPLIT-NEXT:    s_endpgm204;205; GFX942-TGSPLIT-LABEL: workgroup_acq_rel_fence:206; GFX942-TGSPLIT:       ; %bb.0: ; %entry207; GFX942-TGSPLIT-NEXT:    s_endpgm208;209; GFX11-WGP-LABEL: workgroup_acq_rel_fence:210; GFX11-WGP:       ; %bb.0: ; %entry211; GFX11-WGP-NEXT:    s_waitcnt lgkmcnt(0)212; GFX11-WGP-NEXT:    s_endpgm213;214; GFX11-CU-LABEL: workgroup_acq_rel_fence:215; GFX11-CU:       ; %bb.0: ; %entry216; GFX11-CU-NEXT:    s_waitcnt lgkmcnt(0)217; GFX11-CU-NEXT:    s_endpgm218;219; GFX12-WGP-LABEL: workgroup_acq_rel_fence:220; GFX12-WGP:       ; %bb.0: ; %entry221; GFX12-WGP-NEXT:    s_wait_dscnt 0x0222; GFX12-WGP-NEXT:    s_endpgm223;224; GFX12-CU-LABEL: workgroup_acq_rel_fence:225; GFX12-CU:       ; %bb.0: ; %entry226; GFX12-CU-NEXT:    s_wait_dscnt 0x0227; GFX12-CU-NEXT:    s_endpgm228;229; GFX1250-LABEL: workgroup_acq_rel_fence:230; GFX1250:       ; %bb.0: ; %entry231; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1232; GFX1250-NEXT:    s_wait_dscnt 0x0233; GFX1250-NEXT:    s_endpgm234entry:235  fence syncscope("workgroup") acq_rel, !mmra !{!"amdgpu-synchronize-as", !"local"}236  ret void237}238 239define amdgpu_kernel void @workgroup_seq_cst_fence() {240; GFX6-LABEL: workgroup_seq_cst_fence:241; GFX6:       ; %bb.0: ; %entry242; GFX6-NEXT:    s_waitcnt lgkmcnt(0)243; GFX6-NEXT:    s_endpgm244;245; GFX7-LABEL: workgroup_seq_cst_fence:246; GFX7:       ; %bb.0: ; %entry247; GFX7-NEXT:    s_waitcnt lgkmcnt(0)248; GFX7-NEXT:    s_endpgm249;250; GFX10-WGP-LABEL: workgroup_seq_cst_fence:251; GFX10-WGP:       ; %bb.0: ; %entry252; GFX10-WGP-NEXT:    s_waitcnt lgkmcnt(0)253; GFX10-WGP-NEXT:    s_endpgm254;255; GFX10-CU-LABEL: workgroup_seq_cst_fence:256; GFX10-CU:       ; %bb.0: ; %entry257; GFX10-CU-NEXT:    s_waitcnt lgkmcnt(0)258; GFX10-CU-NEXT:    s_endpgm259;260; SKIP-CACHE-INV-LABEL: workgroup_seq_cst_fence:261; SKIP-CACHE-INV:       ; %bb.0: ; %entry262; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)263; SKIP-CACHE-INV-NEXT:    s_endpgm264;265; GFX90A-NOTTGSPLIT-LABEL: workgroup_seq_cst_fence:266; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry267; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)268; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm269;270; GFX90A-TGSPLIT-LABEL: workgroup_seq_cst_fence:271; GFX90A-TGSPLIT:       ; %bb.0: ; %entry272; GFX90A-TGSPLIT-NEXT:    s_endpgm273;274; GFX942-NOTTGSPLIT-LABEL: workgroup_seq_cst_fence:275; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry276; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)277; GFX942-NOTTGSPLIT-NEXT:    s_endpgm278;279; GFX942-TGSPLIT-LABEL: workgroup_seq_cst_fence:280; GFX942-TGSPLIT:       ; %bb.0: ; %entry281; GFX942-TGSPLIT-NEXT:    s_endpgm282;283; GFX11-WGP-LABEL: workgroup_seq_cst_fence:284; GFX11-WGP:       ; %bb.0: ; %entry285; GFX11-WGP-NEXT:    s_waitcnt lgkmcnt(0)286; GFX11-WGP-NEXT:    s_endpgm287;288; GFX11-CU-LABEL: workgroup_seq_cst_fence:289; GFX11-CU:       ; %bb.0: ; %entry290; GFX11-CU-NEXT:    s_waitcnt lgkmcnt(0)291; GFX11-CU-NEXT:    s_endpgm292;293; GFX12-WGP-LABEL: workgroup_seq_cst_fence:294; GFX12-WGP:       ; %bb.0: ; %entry295; GFX12-WGP-NEXT:    s_wait_dscnt 0x0296; GFX12-WGP-NEXT:    s_endpgm297;298; GFX12-CU-LABEL: workgroup_seq_cst_fence:299; GFX12-CU:       ; %bb.0: ; %entry300; GFX12-CU-NEXT:    s_wait_dscnt 0x0301; GFX12-CU-NEXT:    s_endpgm302;303; GFX1250-LABEL: workgroup_seq_cst_fence:304; GFX1250:       ; %bb.0: ; %entry305; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1306; GFX1250-NEXT:    s_wait_dscnt 0x0307; GFX1250-NEXT:    s_endpgm308entry:309  fence syncscope("workgroup") seq_cst, !mmra !{!"amdgpu-synchronize-as", !"local"}310  ret void311}312 313define amdgpu_kernel void @workgroup_one_as_acquire_fence() {314; GFX6-LABEL: workgroup_one_as_acquire_fence:315; GFX6:       ; %bb.0: ; %entry316; GFX6-NEXT:    s_endpgm317;318; GFX7-LABEL: workgroup_one_as_acquire_fence:319; GFX7:       ; %bb.0: ; %entry320; GFX7-NEXT:    s_endpgm321;322; GFX10-WGP-LABEL: workgroup_one_as_acquire_fence:323; GFX10-WGP:       ; %bb.0: ; %entry324; GFX10-WGP-NEXT:    s_endpgm325;326; GFX10-CU-LABEL: workgroup_one_as_acquire_fence:327; GFX10-CU:       ; %bb.0: ; %entry328; GFX10-CU-NEXT:    s_endpgm329;330; SKIP-CACHE-INV-LABEL: workgroup_one_as_acquire_fence:331; SKIP-CACHE-INV:       ; %bb.0: ; %entry332; SKIP-CACHE-INV-NEXT:    s_endpgm333;334; GFX90A-NOTTGSPLIT-LABEL: workgroup_one_as_acquire_fence:335; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry336; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm337;338; GFX90A-TGSPLIT-LABEL: workgroup_one_as_acquire_fence:339; GFX90A-TGSPLIT:       ; %bb.0: ; %entry340; GFX90A-TGSPLIT-NEXT:    s_endpgm341;342; GFX942-NOTTGSPLIT-LABEL: workgroup_one_as_acquire_fence:343; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry344; GFX942-NOTTGSPLIT-NEXT:    s_endpgm345;346; GFX942-TGSPLIT-LABEL: workgroup_one_as_acquire_fence:347; GFX942-TGSPLIT:       ; %bb.0: ; %entry348; GFX942-TGSPLIT-NEXT:    s_endpgm349;350; GFX11-WGP-LABEL: workgroup_one_as_acquire_fence:351; GFX11-WGP:       ; %bb.0: ; %entry352; GFX11-WGP-NEXT:    s_endpgm353;354; GFX11-CU-LABEL: workgroup_one_as_acquire_fence:355; GFX11-CU:       ; %bb.0: ; %entry356; GFX11-CU-NEXT:    s_endpgm357;358; GFX12-WGP-LABEL: workgroup_one_as_acquire_fence:359; GFX12-WGP:       ; %bb.0: ; %entry360; GFX12-WGP-NEXT:    s_endpgm361;362; GFX12-CU-LABEL: workgroup_one_as_acquire_fence:363; GFX12-CU:       ; %bb.0: ; %entry364; GFX12-CU-NEXT:    s_endpgm365;366; GFX1250-LABEL: workgroup_one_as_acquire_fence:367; GFX1250:       ; %bb.0: ; %entry368; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1369; GFX1250-NEXT:    s_endpgm370entry:371  fence syncscope("workgroup-one-as") acquire, !mmra !{!"amdgpu-synchronize-as", !"local"}372  ret void373}374 375define amdgpu_kernel void @workgroup_one_as_release_fence() {376; GFX6-LABEL: workgroup_one_as_release_fence:377; GFX6:       ; %bb.0: ; %entry378; GFX6-NEXT:    s_endpgm379;380; GFX7-LABEL: workgroup_one_as_release_fence:381; GFX7:       ; %bb.0: ; %entry382; GFX7-NEXT:    s_endpgm383;384; GFX10-WGP-LABEL: workgroup_one_as_release_fence:385; GFX10-WGP:       ; %bb.0: ; %entry386; GFX10-WGP-NEXT:    s_endpgm387;388; GFX10-CU-LABEL: workgroup_one_as_release_fence:389; GFX10-CU:       ; %bb.0: ; %entry390; GFX10-CU-NEXT:    s_endpgm391;392; SKIP-CACHE-INV-LABEL: workgroup_one_as_release_fence:393; SKIP-CACHE-INV:       ; %bb.0: ; %entry394; SKIP-CACHE-INV-NEXT:    s_endpgm395;396; GFX90A-NOTTGSPLIT-LABEL: workgroup_one_as_release_fence:397; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry398; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm399;400; GFX90A-TGSPLIT-LABEL: workgroup_one_as_release_fence:401; GFX90A-TGSPLIT:       ; %bb.0: ; %entry402; GFX90A-TGSPLIT-NEXT:    s_endpgm403;404; GFX942-NOTTGSPLIT-LABEL: workgroup_one_as_release_fence:405; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry406; GFX942-NOTTGSPLIT-NEXT:    s_endpgm407;408; GFX942-TGSPLIT-LABEL: workgroup_one_as_release_fence:409; GFX942-TGSPLIT:       ; %bb.0: ; %entry410; GFX942-TGSPLIT-NEXT:    s_endpgm411;412; GFX11-WGP-LABEL: workgroup_one_as_release_fence:413; GFX11-WGP:       ; %bb.0: ; %entry414; GFX11-WGP-NEXT:    s_endpgm415;416; GFX11-CU-LABEL: workgroup_one_as_release_fence:417; GFX11-CU:       ; %bb.0: ; %entry418; GFX11-CU-NEXT:    s_endpgm419;420; GFX12-WGP-LABEL: workgroup_one_as_release_fence:421; GFX12-WGP:       ; %bb.0: ; %entry422; GFX12-WGP-NEXT:    s_endpgm423;424; GFX12-CU-LABEL: workgroup_one_as_release_fence:425; GFX12-CU:       ; %bb.0: ; %entry426; GFX12-CU-NEXT:    s_endpgm427;428; GFX1250-LABEL: workgroup_one_as_release_fence:429; GFX1250:       ; %bb.0: ; %entry430; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1431; GFX1250-NEXT:    s_endpgm432entry:433  fence syncscope("workgroup-one-as") release, !mmra !{!"amdgpu-synchronize-as", !"local"}434  ret void435}436 437define amdgpu_kernel void @workgroup_one_as_acq_rel_fence() {438; GFX6-LABEL: workgroup_one_as_acq_rel_fence:439; GFX6:       ; %bb.0: ; %entry440; GFX6-NEXT:    s_endpgm441;442; GFX7-LABEL: workgroup_one_as_acq_rel_fence:443; GFX7:       ; %bb.0: ; %entry444; GFX7-NEXT:    s_endpgm445;446; GFX10-WGP-LABEL: workgroup_one_as_acq_rel_fence:447; GFX10-WGP:       ; %bb.0: ; %entry448; GFX10-WGP-NEXT:    s_endpgm449;450; GFX10-CU-LABEL: workgroup_one_as_acq_rel_fence:451; GFX10-CU:       ; %bb.0: ; %entry452; GFX10-CU-NEXT:    s_endpgm453;454; SKIP-CACHE-INV-LABEL: workgroup_one_as_acq_rel_fence:455; SKIP-CACHE-INV:       ; %bb.0: ; %entry456; SKIP-CACHE-INV-NEXT:    s_endpgm457;458; GFX90A-NOTTGSPLIT-LABEL: workgroup_one_as_acq_rel_fence:459; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry460; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm461;462; GFX90A-TGSPLIT-LABEL: workgroup_one_as_acq_rel_fence:463; GFX90A-TGSPLIT:       ; %bb.0: ; %entry464; GFX90A-TGSPLIT-NEXT:    s_endpgm465;466; GFX942-NOTTGSPLIT-LABEL: workgroup_one_as_acq_rel_fence:467; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry468; GFX942-NOTTGSPLIT-NEXT:    s_endpgm469;470; GFX942-TGSPLIT-LABEL: workgroup_one_as_acq_rel_fence:471; GFX942-TGSPLIT:       ; %bb.0: ; %entry472; GFX942-TGSPLIT-NEXT:    s_endpgm473;474; GFX11-WGP-LABEL: workgroup_one_as_acq_rel_fence:475; GFX11-WGP:       ; %bb.0: ; %entry476; GFX11-WGP-NEXT:    s_endpgm477;478; GFX11-CU-LABEL: workgroup_one_as_acq_rel_fence:479; GFX11-CU:       ; %bb.0: ; %entry480; GFX11-CU-NEXT:    s_endpgm481;482; GFX12-WGP-LABEL: workgroup_one_as_acq_rel_fence:483; GFX12-WGP:       ; %bb.0: ; %entry484; GFX12-WGP-NEXT:    s_endpgm485;486; GFX12-CU-LABEL: workgroup_one_as_acq_rel_fence:487; GFX12-CU:       ; %bb.0: ; %entry488; GFX12-CU-NEXT:    s_endpgm489;490; GFX1250-LABEL: workgroup_one_as_acq_rel_fence:491; GFX1250:       ; %bb.0: ; %entry492; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1493; GFX1250-NEXT:    s_endpgm494entry:495  fence syncscope("workgroup-one-as") acq_rel, !mmra !{!"amdgpu-synchronize-as", !"local"}496  ret void497}498 499define amdgpu_kernel void @workgroup_one_as_seq_cst_fence() {500; GFX6-LABEL: workgroup_one_as_seq_cst_fence:501; GFX6:       ; %bb.0: ; %entry502; GFX6-NEXT:    s_endpgm503;504; GFX7-LABEL: workgroup_one_as_seq_cst_fence:505; GFX7:       ; %bb.0: ; %entry506; GFX7-NEXT:    s_endpgm507;508; GFX10-WGP-LABEL: workgroup_one_as_seq_cst_fence:509; GFX10-WGP:       ; %bb.0: ; %entry510; GFX10-WGP-NEXT:    s_endpgm511;512; GFX10-CU-LABEL: workgroup_one_as_seq_cst_fence:513; GFX10-CU:       ; %bb.0: ; %entry514; GFX10-CU-NEXT:    s_endpgm515;516; SKIP-CACHE-INV-LABEL: workgroup_one_as_seq_cst_fence:517; SKIP-CACHE-INV:       ; %bb.0: ; %entry518; SKIP-CACHE-INV-NEXT:    s_endpgm519;520; GFX90A-NOTTGSPLIT-LABEL: workgroup_one_as_seq_cst_fence:521; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry522; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm523;524; GFX90A-TGSPLIT-LABEL: workgroup_one_as_seq_cst_fence:525; GFX90A-TGSPLIT:       ; %bb.0: ; %entry526; GFX90A-TGSPLIT-NEXT:    s_endpgm527;528; GFX942-NOTTGSPLIT-LABEL: workgroup_one_as_seq_cst_fence:529; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry530; GFX942-NOTTGSPLIT-NEXT:    s_endpgm531;532; GFX942-TGSPLIT-LABEL: workgroup_one_as_seq_cst_fence:533; GFX942-TGSPLIT:       ; %bb.0: ; %entry534; GFX942-TGSPLIT-NEXT:    s_endpgm535;536; GFX11-WGP-LABEL: workgroup_one_as_seq_cst_fence:537; GFX11-WGP:       ; %bb.0: ; %entry538; GFX11-WGP-NEXT:    s_endpgm539;540; GFX11-CU-LABEL: workgroup_one_as_seq_cst_fence:541; GFX11-CU:       ; %bb.0: ; %entry542; GFX11-CU-NEXT:    s_endpgm543;544; GFX12-WGP-LABEL: workgroup_one_as_seq_cst_fence:545; GFX12-WGP:       ; %bb.0: ; %entry546; GFX12-WGP-NEXT:    s_endpgm547;548; GFX12-CU-LABEL: workgroup_one_as_seq_cst_fence:549; GFX12-CU:       ; %bb.0: ; %entry550; GFX12-CU-NEXT:    s_endpgm551;552; GFX1250-LABEL: workgroup_one_as_seq_cst_fence:553; GFX1250:       ; %bb.0: ; %entry554; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1555; GFX1250-NEXT:    s_endpgm556entry:557  fence syncscope("workgroup-one-as") seq_cst, !mmra !{!"amdgpu-synchronize-as", !"local"}558  ret void559}560 561define amdgpu_kernel void @agent_acquire_fence() {562; GFX6-LABEL: agent_acquire_fence:563; GFX6:       ; %bb.0: ; %entry564; GFX6-NEXT:    s_waitcnt lgkmcnt(0)565; GFX6-NEXT:    s_endpgm566;567; GFX7-LABEL: agent_acquire_fence:568; GFX7:       ; %bb.0: ; %entry569; GFX7-NEXT:    s_waitcnt lgkmcnt(0)570; GFX7-NEXT:    s_endpgm571;572; GFX10-WGP-LABEL: agent_acquire_fence:573; GFX10-WGP:       ; %bb.0: ; %entry574; GFX10-WGP-NEXT:    s_waitcnt lgkmcnt(0)575; GFX10-WGP-NEXT:    s_endpgm576;577; GFX10-CU-LABEL: agent_acquire_fence:578; GFX10-CU:       ; %bb.0: ; %entry579; GFX10-CU-NEXT:    s_waitcnt lgkmcnt(0)580; GFX10-CU-NEXT:    s_endpgm581;582; SKIP-CACHE-INV-LABEL: agent_acquire_fence:583; SKIP-CACHE-INV:       ; %bb.0: ; %entry584; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)585; SKIP-CACHE-INV-NEXT:    s_endpgm586;587; GFX90A-NOTTGSPLIT-LABEL: agent_acquire_fence:588; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry589; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)590; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm591;592; GFX90A-TGSPLIT-LABEL: agent_acquire_fence:593; GFX90A-TGSPLIT:       ; %bb.0: ; %entry594; GFX90A-TGSPLIT-NEXT:    s_endpgm595;596; GFX942-NOTTGSPLIT-LABEL: agent_acquire_fence:597; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry598; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)599; GFX942-NOTTGSPLIT-NEXT:    s_endpgm600;601; GFX942-TGSPLIT-LABEL: agent_acquire_fence:602; GFX942-TGSPLIT:       ; %bb.0: ; %entry603; GFX942-TGSPLIT-NEXT:    s_endpgm604;605; GFX11-WGP-LABEL: agent_acquire_fence:606; GFX11-WGP:       ; %bb.0: ; %entry607; GFX11-WGP-NEXT:    s_waitcnt lgkmcnt(0)608; GFX11-WGP-NEXT:    s_endpgm609;610; GFX11-CU-LABEL: agent_acquire_fence:611; GFX11-CU:       ; %bb.0: ; %entry612; GFX11-CU-NEXT:    s_waitcnt lgkmcnt(0)613; GFX11-CU-NEXT:    s_endpgm614;615; GFX12-WGP-LABEL: agent_acquire_fence:616; GFX12-WGP:       ; %bb.0: ; %entry617; GFX12-WGP-NEXT:    s_wait_dscnt 0x0618; GFX12-WGP-NEXT:    s_endpgm619;620; GFX12-CU-LABEL: agent_acquire_fence:621; GFX12-CU:       ; %bb.0: ; %entry622; GFX12-CU-NEXT:    s_wait_dscnt 0x0623; GFX12-CU-NEXT:    s_endpgm624;625; GFX1250-LABEL: agent_acquire_fence:626; GFX1250:       ; %bb.0: ; %entry627; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1628; GFX1250-NEXT:    s_wait_dscnt 0x0629; GFX1250-NEXT:    s_endpgm630entry:631  fence syncscope("agent") acquire, !mmra !{!"amdgpu-synchronize-as", !"local"}632  ret void633}634 635define amdgpu_kernel void @agent_release_fence() {636; GFX6-LABEL: agent_release_fence:637; GFX6:       ; %bb.0: ; %entry638; GFX6-NEXT:    s_waitcnt lgkmcnt(0)639; GFX6-NEXT:    s_endpgm640;641; GFX7-LABEL: agent_release_fence:642; GFX7:       ; %bb.0: ; %entry643; GFX7-NEXT:    s_waitcnt lgkmcnt(0)644; GFX7-NEXT:    s_endpgm645;646; GFX10-WGP-LABEL: agent_release_fence:647; GFX10-WGP:       ; %bb.0: ; %entry648; GFX10-WGP-NEXT:    s_waitcnt lgkmcnt(0)649; GFX10-WGP-NEXT:    s_endpgm650;651; GFX10-CU-LABEL: agent_release_fence:652; GFX10-CU:       ; %bb.0: ; %entry653; GFX10-CU-NEXT:    s_waitcnt lgkmcnt(0)654; GFX10-CU-NEXT:    s_endpgm655;656; SKIP-CACHE-INV-LABEL: agent_release_fence:657; SKIP-CACHE-INV:       ; %bb.0: ; %entry658; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)659; SKIP-CACHE-INV-NEXT:    s_endpgm660;661; GFX90A-NOTTGSPLIT-LABEL: agent_release_fence:662; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry663; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)664; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm665;666; GFX90A-TGSPLIT-LABEL: agent_release_fence:667; GFX90A-TGSPLIT:       ; %bb.0: ; %entry668; GFX90A-TGSPLIT-NEXT:    s_endpgm669;670; GFX942-NOTTGSPLIT-LABEL: agent_release_fence:671; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry672; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)673; GFX942-NOTTGSPLIT-NEXT:    s_endpgm674;675; GFX942-TGSPLIT-LABEL: agent_release_fence:676; GFX942-TGSPLIT:       ; %bb.0: ; %entry677; GFX942-TGSPLIT-NEXT:    s_endpgm678;679; GFX11-WGP-LABEL: agent_release_fence:680; GFX11-WGP:       ; %bb.0: ; %entry681; GFX11-WGP-NEXT:    s_waitcnt lgkmcnt(0)682; GFX11-WGP-NEXT:    s_endpgm683;684; GFX11-CU-LABEL: agent_release_fence:685; GFX11-CU:       ; %bb.0: ; %entry686; GFX11-CU-NEXT:    s_waitcnt lgkmcnt(0)687; GFX11-CU-NEXT:    s_endpgm688;689; GFX12-WGP-LABEL: agent_release_fence:690; GFX12-WGP:       ; %bb.0: ; %entry691; GFX12-WGP-NEXT:    s_wait_dscnt 0x0692; GFX12-WGP-NEXT:    s_endpgm693;694; GFX12-CU-LABEL: agent_release_fence:695; GFX12-CU:       ; %bb.0: ; %entry696; GFX12-CU-NEXT:    s_wait_dscnt 0x0697; GFX12-CU-NEXT:    s_endpgm698;699; GFX1250-LABEL: agent_release_fence:700; GFX1250:       ; %bb.0: ; %entry701; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1702; GFX1250-NEXT:    s_wait_dscnt 0x0703; GFX1250-NEXT:    s_endpgm704entry:705  fence syncscope("agent") release, !mmra !{!"amdgpu-synchronize-as", !"local"}706  ret void707}708 709define amdgpu_kernel void @agent_acq_rel_fence() {710; GFX6-LABEL: agent_acq_rel_fence:711; GFX6:       ; %bb.0: ; %entry712; GFX6-NEXT:    s_waitcnt lgkmcnt(0)713; GFX6-NEXT:    s_endpgm714;715; GFX7-LABEL: agent_acq_rel_fence:716; GFX7:       ; %bb.0: ; %entry717; GFX7-NEXT:    s_waitcnt lgkmcnt(0)718; GFX7-NEXT:    s_endpgm719;720; GFX10-WGP-LABEL: agent_acq_rel_fence:721; GFX10-WGP:       ; %bb.0: ; %entry722; GFX10-WGP-NEXT:    s_waitcnt lgkmcnt(0)723; GFX10-WGP-NEXT:    s_endpgm724;725; GFX10-CU-LABEL: agent_acq_rel_fence:726; GFX10-CU:       ; %bb.0: ; %entry727; GFX10-CU-NEXT:    s_waitcnt lgkmcnt(0)728; GFX10-CU-NEXT:    s_endpgm729;730; SKIP-CACHE-INV-LABEL: agent_acq_rel_fence:731; SKIP-CACHE-INV:       ; %bb.0: ; %entry732; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)733; SKIP-CACHE-INV-NEXT:    s_endpgm734;735; GFX90A-NOTTGSPLIT-LABEL: agent_acq_rel_fence:736; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry737; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)738; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm739;740; GFX90A-TGSPLIT-LABEL: agent_acq_rel_fence:741; GFX90A-TGSPLIT:       ; %bb.0: ; %entry742; GFX90A-TGSPLIT-NEXT:    s_endpgm743;744; GFX942-NOTTGSPLIT-LABEL: agent_acq_rel_fence:745; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry746; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)747; GFX942-NOTTGSPLIT-NEXT:    s_endpgm748;749; GFX942-TGSPLIT-LABEL: agent_acq_rel_fence:750; GFX942-TGSPLIT:       ; %bb.0: ; %entry751; GFX942-TGSPLIT-NEXT:    s_endpgm752;753; GFX11-WGP-LABEL: agent_acq_rel_fence:754; GFX11-WGP:       ; %bb.0: ; %entry755; GFX11-WGP-NEXT:    s_waitcnt lgkmcnt(0)756; GFX11-WGP-NEXT:    s_endpgm757;758; GFX11-CU-LABEL: agent_acq_rel_fence:759; GFX11-CU:       ; %bb.0: ; %entry760; GFX11-CU-NEXT:    s_waitcnt lgkmcnt(0)761; GFX11-CU-NEXT:    s_endpgm762;763; GFX12-WGP-LABEL: agent_acq_rel_fence:764; GFX12-WGP:       ; %bb.0: ; %entry765; GFX12-WGP-NEXT:    s_wait_dscnt 0x0766; GFX12-WGP-NEXT:    s_endpgm767;768; GFX12-CU-LABEL: agent_acq_rel_fence:769; GFX12-CU:       ; %bb.0: ; %entry770; GFX12-CU-NEXT:    s_wait_dscnt 0x0771; GFX12-CU-NEXT:    s_endpgm772;773; GFX1250-LABEL: agent_acq_rel_fence:774; GFX1250:       ; %bb.0: ; %entry775; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1776; GFX1250-NEXT:    s_wait_dscnt 0x0777; GFX1250-NEXT:    s_endpgm778entry:779  fence syncscope("agent") acq_rel, !mmra !{!"amdgpu-synchronize-as", !"local"}780  ret void781}782 783define amdgpu_kernel void @agent_seq_cst_fence() {784; GFX6-LABEL: agent_seq_cst_fence:785; GFX6:       ; %bb.0: ; %entry786; GFX6-NEXT:    s_waitcnt lgkmcnt(0)787; GFX6-NEXT:    s_endpgm788;789; GFX7-LABEL: agent_seq_cst_fence:790; GFX7:       ; %bb.0: ; %entry791; GFX7-NEXT:    s_waitcnt lgkmcnt(0)792; GFX7-NEXT:    s_endpgm793;794; GFX10-WGP-LABEL: agent_seq_cst_fence:795; GFX10-WGP:       ; %bb.0: ; %entry796; GFX10-WGP-NEXT:    s_waitcnt lgkmcnt(0)797; GFX10-WGP-NEXT:    s_endpgm798;799; GFX10-CU-LABEL: agent_seq_cst_fence:800; GFX10-CU:       ; %bb.0: ; %entry801; GFX10-CU-NEXT:    s_waitcnt lgkmcnt(0)802; GFX10-CU-NEXT:    s_endpgm803;804; SKIP-CACHE-INV-LABEL: agent_seq_cst_fence:805; SKIP-CACHE-INV:       ; %bb.0: ; %entry806; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)807; SKIP-CACHE-INV-NEXT:    s_endpgm808;809; GFX90A-NOTTGSPLIT-LABEL: agent_seq_cst_fence:810; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry811; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)812; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm813;814; GFX90A-TGSPLIT-LABEL: agent_seq_cst_fence:815; GFX90A-TGSPLIT:       ; %bb.0: ; %entry816; GFX90A-TGSPLIT-NEXT:    s_endpgm817;818; GFX942-NOTTGSPLIT-LABEL: agent_seq_cst_fence:819; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry820; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)821; GFX942-NOTTGSPLIT-NEXT:    s_endpgm822;823; GFX942-TGSPLIT-LABEL: agent_seq_cst_fence:824; GFX942-TGSPLIT:       ; %bb.0: ; %entry825; GFX942-TGSPLIT-NEXT:    s_endpgm826;827; GFX11-WGP-LABEL: agent_seq_cst_fence:828; GFX11-WGP:       ; %bb.0: ; %entry829; GFX11-WGP-NEXT:    s_waitcnt lgkmcnt(0)830; GFX11-WGP-NEXT:    s_endpgm831;832; GFX11-CU-LABEL: agent_seq_cst_fence:833; GFX11-CU:       ; %bb.0: ; %entry834; GFX11-CU-NEXT:    s_waitcnt lgkmcnt(0)835; GFX11-CU-NEXT:    s_endpgm836;837; GFX12-WGP-LABEL: agent_seq_cst_fence:838; GFX12-WGP:       ; %bb.0: ; %entry839; GFX12-WGP-NEXT:    s_wait_dscnt 0x0840; GFX12-WGP-NEXT:    s_endpgm841;842; GFX12-CU-LABEL: agent_seq_cst_fence:843; GFX12-CU:       ; %bb.0: ; %entry844; GFX12-CU-NEXT:    s_wait_dscnt 0x0845; GFX12-CU-NEXT:    s_endpgm846;847; GFX1250-LABEL: agent_seq_cst_fence:848; GFX1250:       ; %bb.0: ; %entry849; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1850; GFX1250-NEXT:    s_wait_dscnt 0x0851; GFX1250-NEXT:    s_endpgm852entry:853  fence syncscope("agent") seq_cst, !mmra !{!"amdgpu-synchronize-as", !"local"}854  ret void855}856 857define amdgpu_kernel void @agent_one_as_acquire_fence() {858; GFX6-LABEL: agent_one_as_acquire_fence:859; GFX6:       ; %bb.0: ; %entry860; GFX6-NEXT:    s_endpgm861;862; GFX7-LABEL: agent_one_as_acquire_fence:863; GFX7:       ; %bb.0: ; %entry864; GFX7-NEXT:    s_endpgm865;866; GFX10-WGP-LABEL: agent_one_as_acquire_fence:867; GFX10-WGP:       ; %bb.0: ; %entry868; GFX10-WGP-NEXT:    s_endpgm869;870; GFX10-CU-LABEL: agent_one_as_acquire_fence:871; GFX10-CU:       ; %bb.0: ; %entry872; GFX10-CU-NEXT:    s_endpgm873;874; SKIP-CACHE-INV-LABEL: agent_one_as_acquire_fence:875; SKIP-CACHE-INV:       ; %bb.0: ; %entry876; SKIP-CACHE-INV-NEXT:    s_endpgm877;878; GFX90A-NOTTGSPLIT-LABEL: agent_one_as_acquire_fence:879; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry880; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm881;882; GFX90A-TGSPLIT-LABEL: agent_one_as_acquire_fence:883; GFX90A-TGSPLIT:       ; %bb.0: ; %entry884; GFX90A-TGSPLIT-NEXT:    s_endpgm885;886; GFX942-NOTTGSPLIT-LABEL: agent_one_as_acquire_fence:887; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry888; GFX942-NOTTGSPLIT-NEXT:    s_endpgm889;890; GFX942-TGSPLIT-LABEL: agent_one_as_acquire_fence:891; GFX942-TGSPLIT:       ; %bb.0: ; %entry892; GFX942-TGSPLIT-NEXT:    s_endpgm893;894; GFX11-WGP-LABEL: agent_one_as_acquire_fence:895; GFX11-WGP:       ; %bb.0: ; %entry896; GFX11-WGP-NEXT:    s_endpgm897;898; GFX11-CU-LABEL: agent_one_as_acquire_fence:899; GFX11-CU:       ; %bb.0: ; %entry900; GFX11-CU-NEXT:    s_endpgm901;902; GFX12-WGP-LABEL: agent_one_as_acquire_fence:903; GFX12-WGP:       ; %bb.0: ; %entry904; GFX12-WGP-NEXT:    s_endpgm905;906; GFX12-CU-LABEL: agent_one_as_acquire_fence:907; GFX12-CU:       ; %bb.0: ; %entry908; GFX12-CU-NEXT:    s_endpgm909;910; GFX1250-LABEL: agent_one_as_acquire_fence:911; GFX1250:       ; %bb.0: ; %entry912; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1913; GFX1250-NEXT:    s_endpgm914entry:915  fence syncscope("agent-one-as") acquire, !mmra !{!"amdgpu-synchronize-as", !"local"}916  ret void917}918 919define amdgpu_kernel void @agent_one_as_release_fence() {920; GFX6-LABEL: agent_one_as_release_fence:921; GFX6:       ; %bb.0: ; %entry922; GFX6-NEXT:    s_endpgm923;924; GFX7-LABEL: agent_one_as_release_fence:925; GFX7:       ; %bb.0: ; %entry926; GFX7-NEXT:    s_endpgm927;928; GFX10-WGP-LABEL: agent_one_as_release_fence:929; GFX10-WGP:       ; %bb.0: ; %entry930; GFX10-WGP-NEXT:    s_endpgm931;932; GFX10-CU-LABEL: agent_one_as_release_fence:933; GFX10-CU:       ; %bb.0: ; %entry934; GFX10-CU-NEXT:    s_endpgm935;936; SKIP-CACHE-INV-LABEL: agent_one_as_release_fence:937; SKIP-CACHE-INV:       ; %bb.0: ; %entry938; SKIP-CACHE-INV-NEXT:    s_endpgm939;940; GFX90A-NOTTGSPLIT-LABEL: agent_one_as_release_fence:941; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry942; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm943;944; GFX90A-TGSPLIT-LABEL: agent_one_as_release_fence:945; GFX90A-TGSPLIT:       ; %bb.0: ; %entry946; GFX90A-TGSPLIT-NEXT:    s_endpgm947;948; GFX942-NOTTGSPLIT-LABEL: agent_one_as_release_fence:949; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry950; GFX942-NOTTGSPLIT-NEXT:    s_endpgm951;952; GFX942-TGSPLIT-LABEL: agent_one_as_release_fence:953; GFX942-TGSPLIT:       ; %bb.0: ; %entry954; GFX942-TGSPLIT-NEXT:    s_endpgm955;956; GFX11-WGP-LABEL: agent_one_as_release_fence:957; GFX11-WGP:       ; %bb.0: ; %entry958; GFX11-WGP-NEXT:    s_endpgm959;960; GFX11-CU-LABEL: agent_one_as_release_fence:961; GFX11-CU:       ; %bb.0: ; %entry962; GFX11-CU-NEXT:    s_endpgm963;964; GFX12-WGP-LABEL: agent_one_as_release_fence:965; GFX12-WGP:       ; %bb.0: ; %entry966; GFX12-WGP-NEXT:    s_endpgm967;968; GFX12-CU-LABEL: agent_one_as_release_fence:969; GFX12-CU:       ; %bb.0: ; %entry970; GFX12-CU-NEXT:    s_endpgm971;972; GFX1250-LABEL: agent_one_as_release_fence:973; GFX1250:       ; %bb.0: ; %entry974; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1975; GFX1250-NEXT:    s_endpgm976entry:977  fence syncscope("agent-one-as") release, !mmra !{!"amdgpu-synchronize-as", !"local"}978  ret void979}980 981define amdgpu_kernel void @agent_one_as_acq_rel_fence() {982; GFX6-LABEL: agent_one_as_acq_rel_fence:983; GFX6:       ; %bb.0: ; %entry984; GFX6-NEXT:    s_endpgm985;986; GFX7-LABEL: agent_one_as_acq_rel_fence:987; GFX7:       ; %bb.0: ; %entry988; GFX7-NEXT:    s_endpgm989;990; GFX10-WGP-LABEL: agent_one_as_acq_rel_fence:991; GFX10-WGP:       ; %bb.0: ; %entry992; GFX10-WGP-NEXT:    s_endpgm993;994; GFX10-CU-LABEL: agent_one_as_acq_rel_fence:995; GFX10-CU:       ; %bb.0: ; %entry996; GFX10-CU-NEXT:    s_endpgm997;998; SKIP-CACHE-INV-LABEL: agent_one_as_acq_rel_fence:999; SKIP-CACHE-INV:       ; %bb.0: ; %entry1000; SKIP-CACHE-INV-NEXT:    s_endpgm1001;1002; GFX90A-NOTTGSPLIT-LABEL: agent_one_as_acq_rel_fence:1003; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry1004; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm1005;1006; GFX90A-TGSPLIT-LABEL: agent_one_as_acq_rel_fence:1007; GFX90A-TGSPLIT:       ; %bb.0: ; %entry1008; GFX90A-TGSPLIT-NEXT:    s_endpgm1009;1010; GFX942-NOTTGSPLIT-LABEL: agent_one_as_acq_rel_fence:1011; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry1012; GFX942-NOTTGSPLIT-NEXT:    s_endpgm1013;1014; GFX942-TGSPLIT-LABEL: agent_one_as_acq_rel_fence:1015; GFX942-TGSPLIT:       ; %bb.0: ; %entry1016; GFX942-TGSPLIT-NEXT:    s_endpgm1017;1018; GFX11-WGP-LABEL: agent_one_as_acq_rel_fence:1019; GFX11-WGP:       ; %bb.0: ; %entry1020; GFX11-WGP-NEXT:    s_endpgm1021;1022; GFX11-CU-LABEL: agent_one_as_acq_rel_fence:1023; GFX11-CU:       ; %bb.0: ; %entry1024; GFX11-CU-NEXT:    s_endpgm1025;1026; GFX12-WGP-LABEL: agent_one_as_acq_rel_fence:1027; GFX12-WGP:       ; %bb.0: ; %entry1028; GFX12-WGP-NEXT:    s_endpgm1029;1030; GFX12-CU-LABEL: agent_one_as_acq_rel_fence:1031; GFX12-CU:       ; %bb.0: ; %entry1032; GFX12-CU-NEXT:    s_endpgm1033;1034; GFX1250-LABEL: agent_one_as_acq_rel_fence:1035; GFX1250:       ; %bb.0: ; %entry1036; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11037; GFX1250-NEXT:    s_endpgm1038entry:1039  fence syncscope("agent-one-as") acq_rel, !mmra !{!"amdgpu-synchronize-as", !"local"}1040  ret void1041}1042 1043define amdgpu_kernel void @agent_one_as_seq_cst_fence() {1044; GFX6-LABEL: agent_one_as_seq_cst_fence:1045; GFX6:       ; %bb.0: ; %entry1046; GFX6-NEXT:    s_endpgm1047;1048; GFX7-LABEL: agent_one_as_seq_cst_fence:1049; GFX7:       ; %bb.0: ; %entry1050; GFX7-NEXT:    s_endpgm1051;1052; GFX10-WGP-LABEL: agent_one_as_seq_cst_fence:1053; GFX10-WGP:       ; %bb.0: ; %entry1054; GFX10-WGP-NEXT:    s_endpgm1055;1056; GFX10-CU-LABEL: agent_one_as_seq_cst_fence:1057; GFX10-CU:       ; %bb.0: ; %entry1058; GFX10-CU-NEXT:    s_endpgm1059;1060; SKIP-CACHE-INV-LABEL: agent_one_as_seq_cst_fence:1061; SKIP-CACHE-INV:       ; %bb.0: ; %entry1062; SKIP-CACHE-INV-NEXT:    s_endpgm1063;1064; GFX90A-NOTTGSPLIT-LABEL: agent_one_as_seq_cst_fence:1065; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry1066; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm1067;1068; GFX90A-TGSPLIT-LABEL: agent_one_as_seq_cst_fence:1069; GFX90A-TGSPLIT:       ; %bb.0: ; %entry1070; GFX90A-TGSPLIT-NEXT:    s_endpgm1071;1072; GFX942-NOTTGSPLIT-LABEL: agent_one_as_seq_cst_fence:1073; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry1074; GFX942-NOTTGSPLIT-NEXT:    s_endpgm1075;1076; GFX942-TGSPLIT-LABEL: agent_one_as_seq_cst_fence:1077; GFX942-TGSPLIT:       ; %bb.0: ; %entry1078; GFX942-TGSPLIT-NEXT:    s_endpgm1079;1080; GFX11-WGP-LABEL: agent_one_as_seq_cst_fence:1081; GFX11-WGP:       ; %bb.0: ; %entry1082; GFX11-WGP-NEXT:    s_endpgm1083;1084; GFX11-CU-LABEL: agent_one_as_seq_cst_fence:1085; GFX11-CU:       ; %bb.0: ; %entry1086; GFX11-CU-NEXT:    s_endpgm1087;1088; GFX12-WGP-LABEL: agent_one_as_seq_cst_fence:1089; GFX12-WGP:       ; %bb.0: ; %entry1090; GFX12-WGP-NEXT:    s_endpgm1091;1092; GFX12-CU-LABEL: agent_one_as_seq_cst_fence:1093; GFX12-CU:       ; %bb.0: ; %entry1094; GFX12-CU-NEXT:    s_endpgm1095;1096; GFX1250-LABEL: agent_one_as_seq_cst_fence:1097; GFX1250:       ; %bb.0: ; %entry1098; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11099; GFX1250-NEXT:    s_endpgm1100entry:1101  fence syncscope("agent-one-as") seq_cst, !mmra !{!"amdgpu-synchronize-as", !"local"}1102  ret void1103}1104 1105define amdgpu_kernel void @system_acquire_fence() {1106; GFX6-LABEL: system_acquire_fence:1107; GFX6:       ; %bb.0: ; %entry1108; GFX6-NEXT:    s_waitcnt lgkmcnt(0)1109; GFX6-NEXT:    s_endpgm1110;1111; GFX7-LABEL: system_acquire_fence:1112; GFX7:       ; %bb.0: ; %entry1113; GFX7-NEXT:    s_waitcnt lgkmcnt(0)1114; GFX7-NEXT:    s_endpgm1115;1116; GFX10-WGP-LABEL: system_acquire_fence:1117; GFX10-WGP:       ; %bb.0: ; %entry1118; GFX10-WGP-NEXT:    s_waitcnt lgkmcnt(0)1119; GFX10-WGP-NEXT:    s_endpgm1120;1121; GFX10-CU-LABEL: system_acquire_fence:1122; GFX10-CU:       ; %bb.0: ; %entry1123; GFX10-CU-NEXT:    s_waitcnt lgkmcnt(0)1124; GFX10-CU-NEXT:    s_endpgm1125;1126; SKIP-CACHE-INV-LABEL: system_acquire_fence:1127; SKIP-CACHE-INV:       ; %bb.0: ; %entry1128; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)1129; SKIP-CACHE-INV-NEXT:    s_endpgm1130;1131; GFX90A-NOTTGSPLIT-LABEL: system_acquire_fence:1132; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry1133; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)1134; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm1135;1136; GFX90A-TGSPLIT-LABEL: system_acquire_fence:1137; GFX90A-TGSPLIT:       ; %bb.0: ; %entry1138; GFX90A-TGSPLIT-NEXT:    s_endpgm1139;1140; GFX942-NOTTGSPLIT-LABEL: system_acquire_fence:1141; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry1142; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)1143; GFX942-NOTTGSPLIT-NEXT:    s_endpgm1144;1145; GFX942-TGSPLIT-LABEL: system_acquire_fence:1146; GFX942-TGSPLIT:       ; %bb.0: ; %entry1147; GFX942-TGSPLIT-NEXT:    s_endpgm1148;1149; GFX11-WGP-LABEL: system_acquire_fence:1150; GFX11-WGP:       ; %bb.0: ; %entry1151; GFX11-WGP-NEXT:    s_waitcnt lgkmcnt(0)1152; GFX11-WGP-NEXT:    s_endpgm1153;1154; GFX11-CU-LABEL: system_acquire_fence:1155; GFX11-CU:       ; %bb.0: ; %entry1156; GFX11-CU-NEXT:    s_waitcnt lgkmcnt(0)1157; GFX11-CU-NEXT:    s_endpgm1158;1159; GFX12-WGP-LABEL: system_acquire_fence:1160; GFX12-WGP:       ; %bb.0: ; %entry1161; GFX12-WGP-NEXT:    s_wait_dscnt 0x01162; GFX12-WGP-NEXT:    s_endpgm1163;1164; GFX12-CU-LABEL: system_acquire_fence:1165; GFX12-CU:       ; %bb.0: ; %entry1166; GFX12-CU-NEXT:    s_wait_dscnt 0x01167; GFX12-CU-NEXT:    s_endpgm1168;1169; GFX1250-LABEL: system_acquire_fence:1170; GFX1250:       ; %bb.0: ; %entry1171; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11172; GFX1250-NEXT:    s_wait_dscnt 0x01173; GFX1250-NEXT:    s_endpgm1174entry:1175  fence acquire, !mmra !{!"amdgpu-synchronize-as", !"local"}1176  ret void1177}1178 1179define amdgpu_kernel void @system_release_fence() {1180; GFX6-LABEL: system_release_fence:1181; GFX6:       ; %bb.0: ; %entry1182; GFX6-NEXT:    s_waitcnt lgkmcnt(0)1183; GFX6-NEXT:    s_endpgm1184;1185; GFX7-LABEL: system_release_fence:1186; GFX7:       ; %bb.0: ; %entry1187; GFX7-NEXT:    s_waitcnt lgkmcnt(0)1188; GFX7-NEXT:    s_endpgm1189;1190; GFX10-WGP-LABEL: system_release_fence:1191; GFX10-WGP:       ; %bb.0: ; %entry1192; GFX10-WGP-NEXT:    s_waitcnt lgkmcnt(0)1193; GFX10-WGP-NEXT:    s_endpgm1194;1195; GFX10-CU-LABEL: system_release_fence:1196; GFX10-CU:       ; %bb.0: ; %entry1197; GFX10-CU-NEXT:    s_waitcnt lgkmcnt(0)1198; GFX10-CU-NEXT:    s_endpgm1199;1200; SKIP-CACHE-INV-LABEL: system_release_fence:1201; SKIP-CACHE-INV:       ; %bb.0: ; %entry1202; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)1203; SKIP-CACHE-INV-NEXT:    s_endpgm1204;1205; GFX90A-NOTTGSPLIT-LABEL: system_release_fence:1206; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry1207; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)1208; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm1209;1210; GFX90A-TGSPLIT-LABEL: system_release_fence:1211; GFX90A-TGSPLIT:       ; %bb.0: ; %entry1212; GFX90A-TGSPLIT-NEXT:    s_endpgm1213;1214; GFX942-NOTTGSPLIT-LABEL: system_release_fence:1215; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry1216; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)1217; GFX942-NOTTGSPLIT-NEXT:    s_endpgm1218;1219; GFX942-TGSPLIT-LABEL: system_release_fence:1220; GFX942-TGSPLIT:       ; %bb.0: ; %entry1221; GFX942-TGSPLIT-NEXT:    s_endpgm1222;1223; GFX11-WGP-LABEL: system_release_fence:1224; GFX11-WGP:       ; %bb.0: ; %entry1225; GFX11-WGP-NEXT:    s_waitcnt lgkmcnt(0)1226; GFX11-WGP-NEXT:    s_endpgm1227;1228; GFX11-CU-LABEL: system_release_fence:1229; GFX11-CU:       ; %bb.0: ; %entry1230; GFX11-CU-NEXT:    s_waitcnt lgkmcnt(0)1231; GFX11-CU-NEXT:    s_endpgm1232;1233; GFX12-WGP-LABEL: system_release_fence:1234; GFX12-WGP:       ; %bb.0: ; %entry1235; GFX12-WGP-NEXT:    s_wait_dscnt 0x01236; GFX12-WGP-NEXT:    s_endpgm1237;1238; GFX12-CU-LABEL: system_release_fence:1239; GFX12-CU:       ; %bb.0: ; %entry1240; GFX12-CU-NEXT:    s_wait_dscnt 0x01241; GFX12-CU-NEXT:    s_endpgm1242;1243; GFX1250-LABEL: system_release_fence:1244; GFX1250:       ; %bb.0: ; %entry1245; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11246; GFX1250-NEXT:    s_wait_dscnt 0x01247; GFX1250-NEXT:    s_endpgm1248entry:1249  fence release, !mmra !{!"amdgpu-synchronize-as", !"local"}1250  ret void1251}1252 1253define amdgpu_kernel void @system_acq_rel_fence() {1254; GFX6-LABEL: system_acq_rel_fence:1255; GFX6:       ; %bb.0: ; %entry1256; GFX6-NEXT:    s_waitcnt lgkmcnt(0)1257; GFX6-NEXT:    s_endpgm1258;1259; GFX7-LABEL: system_acq_rel_fence:1260; GFX7:       ; %bb.0: ; %entry1261; GFX7-NEXT:    s_waitcnt lgkmcnt(0)1262; GFX7-NEXT:    s_endpgm1263;1264; GFX10-WGP-LABEL: system_acq_rel_fence:1265; GFX10-WGP:       ; %bb.0: ; %entry1266; GFX10-WGP-NEXT:    s_waitcnt lgkmcnt(0)1267; GFX10-WGP-NEXT:    s_endpgm1268;1269; GFX10-CU-LABEL: system_acq_rel_fence:1270; GFX10-CU:       ; %bb.0: ; %entry1271; GFX10-CU-NEXT:    s_waitcnt lgkmcnt(0)1272; GFX10-CU-NEXT:    s_endpgm1273;1274; SKIP-CACHE-INV-LABEL: system_acq_rel_fence:1275; SKIP-CACHE-INV:       ; %bb.0: ; %entry1276; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)1277; SKIP-CACHE-INV-NEXT:    s_endpgm1278;1279; GFX90A-NOTTGSPLIT-LABEL: system_acq_rel_fence:1280; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry1281; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)1282; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm1283;1284; GFX90A-TGSPLIT-LABEL: system_acq_rel_fence:1285; GFX90A-TGSPLIT:       ; %bb.0: ; %entry1286; GFX90A-TGSPLIT-NEXT:    s_endpgm1287;1288; GFX942-NOTTGSPLIT-LABEL: system_acq_rel_fence:1289; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry1290; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)1291; GFX942-NOTTGSPLIT-NEXT:    s_endpgm1292;1293; GFX942-TGSPLIT-LABEL: system_acq_rel_fence:1294; GFX942-TGSPLIT:       ; %bb.0: ; %entry1295; GFX942-TGSPLIT-NEXT:    s_endpgm1296;1297; GFX11-WGP-LABEL: system_acq_rel_fence:1298; GFX11-WGP:       ; %bb.0: ; %entry1299; GFX11-WGP-NEXT:    s_waitcnt lgkmcnt(0)1300; GFX11-WGP-NEXT:    s_endpgm1301;1302; GFX11-CU-LABEL: system_acq_rel_fence:1303; GFX11-CU:       ; %bb.0: ; %entry1304; GFX11-CU-NEXT:    s_waitcnt lgkmcnt(0)1305; GFX11-CU-NEXT:    s_endpgm1306;1307; GFX12-WGP-LABEL: system_acq_rel_fence:1308; GFX12-WGP:       ; %bb.0: ; %entry1309; GFX12-WGP-NEXT:    s_wait_dscnt 0x01310; GFX12-WGP-NEXT:    s_endpgm1311;1312; GFX12-CU-LABEL: system_acq_rel_fence:1313; GFX12-CU:       ; %bb.0: ; %entry1314; GFX12-CU-NEXT:    s_wait_dscnt 0x01315; GFX12-CU-NEXT:    s_endpgm1316;1317; GFX1250-LABEL: system_acq_rel_fence:1318; GFX1250:       ; %bb.0: ; %entry1319; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11320; GFX1250-NEXT:    s_wait_dscnt 0x01321; GFX1250-NEXT:    s_endpgm1322entry:1323  fence acq_rel, !mmra !{!"amdgpu-synchronize-as", !"local"}1324  ret void1325}1326 1327define amdgpu_kernel void @system_seq_cst_fence() {1328; GFX6-LABEL: system_seq_cst_fence:1329; GFX6:       ; %bb.0: ; %entry1330; GFX6-NEXT:    s_waitcnt lgkmcnt(0)1331; GFX6-NEXT:    s_endpgm1332;1333; GFX7-LABEL: system_seq_cst_fence:1334; GFX7:       ; %bb.0: ; %entry1335; GFX7-NEXT:    s_waitcnt lgkmcnt(0)1336; GFX7-NEXT:    s_endpgm1337;1338; GFX10-WGP-LABEL: system_seq_cst_fence:1339; GFX10-WGP:       ; %bb.0: ; %entry1340; GFX10-WGP-NEXT:    s_waitcnt lgkmcnt(0)1341; GFX10-WGP-NEXT:    s_endpgm1342;1343; GFX10-CU-LABEL: system_seq_cst_fence:1344; GFX10-CU:       ; %bb.0: ; %entry1345; GFX10-CU-NEXT:    s_waitcnt lgkmcnt(0)1346; GFX10-CU-NEXT:    s_endpgm1347;1348; SKIP-CACHE-INV-LABEL: system_seq_cst_fence:1349; SKIP-CACHE-INV:       ; %bb.0: ; %entry1350; SKIP-CACHE-INV-NEXT:    s_waitcnt lgkmcnt(0)1351; SKIP-CACHE-INV-NEXT:    s_endpgm1352;1353; GFX90A-NOTTGSPLIT-LABEL: system_seq_cst_fence:1354; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry1355; GFX90A-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)1356; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm1357;1358; GFX90A-TGSPLIT-LABEL: system_seq_cst_fence:1359; GFX90A-TGSPLIT:       ; %bb.0: ; %entry1360; GFX90A-TGSPLIT-NEXT:    s_endpgm1361;1362; GFX942-NOTTGSPLIT-LABEL: system_seq_cst_fence:1363; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry1364; GFX942-NOTTGSPLIT-NEXT:    s_waitcnt lgkmcnt(0)1365; GFX942-NOTTGSPLIT-NEXT:    s_endpgm1366;1367; GFX942-TGSPLIT-LABEL: system_seq_cst_fence:1368; GFX942-TGSPLIT:       ; %bb.0: ; %entry1369; GFX942-TGSPLIT-NEXT:    s_endpgm1370;1371; GFX11-WGP-LABEL: system_seq_cst_fence:1372; GFX11-WGP:       ; %bb.0: ; %entry1373; GFX11-WGP-NEXT:    s_waitcnt lgkmcnt(0)1374; GFX11-WGP-NEXT:    s_endpgm1375;1376; GFX11-CU-LABEL: system_seq_cst_fence:1377; GFX11-CU:       ; %bb.0: ; %entry1378; GFX11-CU-NEXT:    s_waitcnt lgkmcnt(0)1379; GFX11-CU-NEXT:    s_endpgm1380;1381; GFX12-WGP-LABEL: system_seq_cst_fence:1382; GFX12-WGP:       ; %bb.0: ; %entry1383; GFX12-WGP-NEXT:    s_wait_dscnt 0x01384; GFX12-WGP-NEXT:    s_endpgm1385;1386; GFX12-CU-LABEL: system_seq_cst_fence:1387; GFX12-CU:       ; %bb.0: ; %entry1388; GFX12-CU-NEXT:    s_wait_dscnt 0x01389; GFX12-CU-NEXT:    s_endpgm1390;1391; GFX1250-LABEL: system_seq_cst_fence:1392; GFX1250:       ; %bb.0: ; %entry1393; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11394; GFX1250-NEXT:    s_wait_dscnt 0x01395; GFX1250-NEXT:    s_endpgm1396entry:1397  fence seq_cst, !mmra !{!"amdgpu-synchronize-as", !"local"}1398  ret void1399}1400 1401define amdgpu_kernel void @system_one_as_acquire_fence() {1402; GFX6-LABEL: system_one_as_acquire_fence:1403; GFX6:       ; %bb.0: ; %entry1404; GFX6-NEXT:    s_endpgm1405;1406; GFX7-LABEL: system_one_as_acquire_fence:1407; GFX7:       ; %bb.0: ; %entry1408; GFX7-NEXT:    s_endpgm1409;1410; GFX10-WGP-LABEL: system_one_as_acquire_fence:1411; GFX10-WGP:       ; %bb.0: ; %entry1412; GFX10-WGP-NEXT:    s_endpgm1413;1414; GFX10-CU-LABEL: system_one_as_acquire_fence:1415; GFX10-CU:       ; %bb.0: ; %entry1416; GFX10-CU-NEXT:    s_endpgm1417;1418; SKIP-CACHE-INV-LABEL: system_one_as_acquire_fence:1419; SKIP-CACHE-INV:       ; %bb.0: ; %entry1420; SKIP-CACHE-INV-NEXT:    s_endpgm1421;1422; GFX90A-NOTTGSPLIT-LABEL: system_one_as_acquire_fence:1423; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry1424; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm1425;1426; GFX90A-TGSPLIT-LABEL: system_one_as_acquire_fence:1427; GFX90A-TGSPLIT:       ; %bb.0: ; %entry1428; GFX90A-TGSPLIT-NEXT:    s_endpgm1429;1430; GFX942-NOTTGSPLIT-LABEL: system_one_as_acquire_fence:1431; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry1432; GFX942-NOTTGSPLIT-NEXT:    s_endpgm1433;1434; GFX942-TGSPLIT-LABEL: system_one_as_acquire_fence:1435; GFX942-TGSPLIT:       ; %bb.0: ; %entry1436; GFX942-TGSPLIT-NEXT:    s_endpgm1437;1438; GFX11-WGP-LABEL: system_one_as_acquire_fence:1439; GFX11-WGP:       ; %bb.0: ; %entry1440; GFX11-WGP-NEXT:    s_endpgm1441;1442; GFX11-CU-LABEL: system_one_as_acquire_fence:1443; GFX11-CU:       ; %bb.0: ; %entry1444; GFX11-CU-NEXT:    s_endpgm1445;1446; GFX12-WGP-LABEL: system_one_as_acquire_fence:1447; GFX12-WGP:       ; %bb.0: ; %entry1448; GFX12-WGP-NEXT:    s_endpgm1449;1450; GFX12-CU-LABEL: system_one_as_acquire_fence:1451; GFX12-CU:       ; %bb.0: ; %entry1452; GFX12-CU-NEXT:    s_endpgm1453;1454; GFX1250-LABEL: system_one_as_acquire_fence:1455; GFX1250:       ; %bb.0: ; %entry1456; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11457; GFX1250-NEXT:    s_endpgm1458entry:1459  fence syncscope("one-as") acquire, !mmra !{!"amdgpu-synchronize-as", !"local"}1460  ret void1461}1462 1463define amdgpu_kernel void @system_one_as_release_fence() {1464; GFX6-LABEL: system_one_as_release_fence:1465; GFX6:       ; %bb.0: ; %entry1466; GFX6-NEXT:    s_endpgm1467;1468; GFX7-LABEL: system_one_as_release_fence:1469; GFX7:       ; %bb.0: ; %entry1470; GFX7-NEXT:    s_endpgm1471;1472; GFX10-WGP-LABEL: system_one_as_release_fence:1473; GFX10-WGP:       ; %bb.0: ; %entry1474; GFX10-WGP-NEXT:    s_endpgm1475;1476; GFX10-CU-LABEL: system_one_as_release_fence:1477; GFX10-CU:       ; %bb.0: ; %entry1478; GFX10-CU-NEXT:    s_endpgm1479;1480; SKIP-CACHE-INV-LABEL: system_one_as_release_fence:1481; SKIP-CACHE-INV:       ; %bb.0: ; %entry1482; SKIP-CACHE-INV-NEXT:    s_endpgm1483;1484; GFX90A-NOTTGSPLIT-LABEL: system_one_as_release_fence:1485; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry1486; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm1487;1488; GFX90A-TGSPLIT-LABEL: system_one_as_release_fence:1489; GFX90A-TGSPLIT:       ; %bb.0: ; %entry1490; GFX90A-TGSPLIT-NEXT:    s_endpgm1491;1492; GFX942-NOTTGSPLIT-LABEL: system_one_as_release_fence:1493; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry1494; GFX942-NOTTGSPLIT-NEXT:    s_endpgm1495;1496; GFX942-TGSPLIT-LABEL: system_one_as_release_fence:1497; GFX942-TGSPLIT:       ; %bb.0: ; %entry1498; GFX942-TGSPLIT-NEXT:    s_endpgm1499;1500; GFX11-WGP-LABEL: system_one_as_release_fence:1501; GFX11-WGP:       ; %bb.0: ; %entry1502; GFX11-WGP-NEXT:    s_endpgm1503;1504; GFX11-CU-LABEL: system_one_as_release_fence:1505; GFX11-CU:       ; %bb.0: ; %entry1506; GFX11-CU-NEXT:    s_endpgm1507;1508; GFX12-WGP-LABEL: system_one_as_release_fence:1509; GFX12-WGP:       ; %bb.0: ; %entry1510; GFX12-WGP-NEXT:    s_endpgm1511;1512; GFX12-CU-LABEL: system_one_as_release_fence:1513; GFX12-CU:       ; %bb.0: ; %entry1514; GFX12-CU-NEXT:    s_endpgm1515;1516; GFX1250-LABEL: system_one_as_release_fence:1517; GFX1250:       ; %bb.0: ; %entry1518; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11519; GFX1250-NEXT:    s_endpgm1520entry:1521  fence syncscope("one-as") release, !mmra !{!"amdgpu-synchronize-as", !"local"}1522  ret void1523}1524 1525define amdgpu_kernel void @system_one_as_acq_rel_fence() {1526; GFX6-LABEL: system_one_as_acq_rel_fence:1527; GFX6:       ; %bb.0: ; %entry1528; GFX6-NEXT:    s_endpgm1529;1530; GFX7-LABEL: system_one_as_acq_rel_fence:1531; GFX7:       ; %bb.0: ; %entry1532; GFX7-NEXT:    s_endpgm1533;1534; GFX10-WGP-LABEL: system_one_as_acq_rel_fence:1535; GFX10-WGP:       ; %bb.0: ; %entry1536; GFX10-WGP-NEXT:    s_endpgm1537;1538; GFX10-CU-LABEL: system_one_as_acq_rel_fence:1539; GFX10-CU:       ; %bb.0: ; %entry1540; GFX10-CU-NEXT:    s_endpgm1541;1542; SKIP-CACHE-INV-LABEL: system_one_as_acq_rel_fence:1543; SKIP-CACHE-INV:       ; %bb.0: ; %entry1544; SKIP-CACHE-INV-NEXT:    s_endpgm1545;1546; GFX90A-NOTTGSPLIT-LABEL: system_one_as_acq_rel_fence:1547; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry1548; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm1549;1550; GFX90A-TGSPLIT-LABEL: system_one_as_acq_rel_fence:1551; GFX90A-TGSPLIT:       ; %bb.0: ; %entry1552; GFX90A-TGSPLIT-NEXT:    s_endpgm1553;1554; GFX942-NOTTGSPLIT-LABEL: system_one_as_acq_rel_fence:1555; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry1556; GFX942-NOTTGSPLIT-NEXT:    s_endpgm1557;1558; GFX942-TGSPLIT-LABEL: system_one_as_acq_rel_fence:1559; GFX942-TGSPLIT:       ; %bb.0: ; %entry1560; GFX942-TGSPLIT-NEXT:    s_endpgm1561;1562; GFX11-WGP-LABEL: system_one_as_acq_rel_fence:1563; GFX11-WGP:       ; %bb.0: ; %entry1564; GFX11-WGP-NEXT:    s_endpgm1565;1566; GFX11-CU-LABEL: system_one_as_acq_rel_fence:1567; GFX11-CU:       ; %bb.0: ; %entry1568; GFX11-CU-NEXT:    s_endpgm1569;1570; GFX12-WGP-LABEL: system_one_as_acq_rel_fence:1571; GFX12-WGP:       ; %bb.0: ; %entry1572; GFX12-WGP-NEXT:    s_endpgm1573;1574; GFX12-CU-LABEL: system_one_as_acq_rel_fence:1575; GFX12-CU:       ; %bb.0: ; %entry1576; GFX12-CU-NEXT:    s_endpgm1577;1578; GFX1250-LABEL: system_one_as_acq_rel_fence:1579; GFX1250:       ; %bb.0: ; %entry1580; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11581; GFX1250-NEXT:    s_endpgm1582entry:1583  fence syncscope("one-as") acq_rel, !mmra !{!"amdgpu-synchronize-as", !"local"}1584  ret void1585}1586 1587define amdgpu_kernel void @system_one_as_seq_cst_fence() {1588; GFX6-LABEL: system_one_as_seq_cst_fence:1589; GFX6:       ; %bb.0: ; %entry1590; GFX6-NEXT:    s_endpgm1591;1592; GFX7-LABEL: system_one_as_seq_cst_fence:1593; GFX7:       ; %bb.0: ; %entry1594; GFX7-NEXT:    s_endpgm1595;1596; GFX10-WGP-LABEL: system_one_as_seq_cst_fence:1597; GFX10-WGP:       ; %bb.0: ; %entry1598; GFX10-WGP-NEXT:    s_endpgm1599;1600; GFX10-CU-LABEL: system_one_as_seq_cst_fence:1601; GFX10-CU:       ; %bb.0: ; %entry1602; GFX10-CU-NEXT:    s_endpgm1603;1604; SKIP-CACHE-INV-LABEL: system_one_as_seq_cst_fence:1605; SKIP-CACHE-INV:       ; %bb.0: ; %entry1606; SKIP-CACHE-INV-NEXT:    s_endpgm1607;1608; GFX90A-NOTTGSPLIT-LABEL: system_one_as_seq_cst_fence:1609; GFX90A-NOTTGSPLIT:       ; %bb.0: ; %entry1610; GFX90A-NOTTGSPLIT-NEXT:    s_endpgm1611;1612; GFX90A-TGSPLIT-LABEL: system_one_as_seq_cst_fence:1613; GFX90A-TGSPLIT:       ; %bb.0: ; %entry1614; GFX90A-TGSPLIT-NEXT:    s_endpgm1615;1616; GFX942-NOTTGSPLIT-LABEL: system_one_as_seq_cst_fence:1617; GFX942-NOTTGSPLIT:       ; %bb.0: ; %entry1618; GFX942-NOTTGSPLIT-NEXT:    s_endpgm1619;1620; GFX942-TGSPLIT-LABEL: system_one_as_seq_cst_fence:1621; GFX942-TGSPLIT:       ; %bb.0: ; %entry1622; GFX942-TGSPLIT-NEXT:    s_endpgm1623;1624; GFX11-WGP-LABEL: system_one_as_seq_cst_fence:1625; GFX11-WGP:       ; %bb.0: ; %entry1626; GFX11-WGP-NEXT:    s_endpgm1627;1628; GFX11-CU-LABEL: system_one_as_seq_cst_fence:1629; GFX11-CU:       ; %bb.0: ; %entry1630; GFX11-CU-NEXT:    s_endpgm1631;1632; GFX12-WGP-LABEL: system_one_as_seq_cst_fence:1633; GFX12-WGP:       ; %bb.0: ; %entry1634; GFX12-WGP-NEXT:    s_endpgm1635;1636; GFX12-CU-LABEL: system_one_as_seq_cst_fence:1637; GFX12-CU:       ; %bb.0: ; %entry1638; GFX12-CU-NEXT:    s_endpgm1639;1640; GFX1250-LABEL: system_one_as_seq_cst_fence:1641; GFX1250:       ; %bb.0: ; %entry1642; GFX1250-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11643; GFX1250-NEXT:    s_endpgm1644entry:1645  fence syncscope("one-as") seq_cst, !mmra !{!"amdgpu-synchronize-as", !"local"}1646  ret void1647}1648