brintos

brintos / llvm-project-archived public Read only

0
0
Text · 93.8 KiB · 831d104 Raw
2300 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 32; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 < %s | FileCheck -enable-var-scope -check-prefix=GFX9 %s3; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1100 -mattr=+real-true16 < %s | FileCheck -enable-var-scope -check-prefixes=GFX11,GFX11-TRUE16 %s4; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1100 -mattr=-real-true16 < %s | FileCheck -enable-var-scope -check-prefixes=GFX11,GFX11-FAKE16 %s5 6define void @void_func_i1_inreg(i1 inreg %arg0) #0 {7; GFX9-LABEL: void_func_i1_inreg:8; GFX9:       ; %bb.0:9; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)10; GFX9-NEXT:    s_and_b32 s4, s16, 111; GFX9-NEXT:    v_mov_b32_e32 v0, s412; GFX9-NEXT:    global_store_byte v[0:1], v0, off13; GFX9-NEXT:    s_waitcnt vmcnt(0)14; GFX9-NEXT:    s_setpc_b64 s[30:31]15;16; GFX11-LABEL: void_func_i1_inreg:17; GFX11:       ; %bb.0:18; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)19; GFX11-NEXT:    s_and_b32 s0, s0, 120; GFX11-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)21; GFX11-NEXT:    v_mov_b32_e32 v0, s022; GFX11-NEXT:    global_store_b8 v[0:1], v0, off23; GFX11-NEXT:    s_setpc_b64 s[30:31]24  store i1 %arg0, ptr addrspace(1) poison25  ret void26}27 28define void @void_func_i8_inreg(i8 inreg %arg0) #0 {29; GFX9-LABEL: void_func_i8_inreg:30; GFX9:       ; %bb.0:31; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)32; GFX9-NEXT:    v_mov_b32_e32 v0, s1633; GFX9-NEXT:    global_store_byte v[0:1], v0, off34; GFX9-NEXT:    s_waitcnt vmcnt(0)35; GFX9-NEXT:    s_setpc_b64 s[30:31]36;37; GFX11-TRUE16-LABEL: void_func_i8_inreg:38; GFX11-TRUE16:       ; %bb.0:39; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)40; GFX11-TRUE16-NEXT:    v_mov_b16_e32 v0.l, s041; GFX11-TRUE16-NEXT:    global_store_b8 v[0:1], v0, off42; GFX11-TRUE16-NEXT:    s_setpc_b64 s[30:31]43;44; GFX11-FAKE16-LABEL: void_func_i8_inreg:45; GFX11-FAKE16:       ; %bb.0:46; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)47; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v0, s048; GFX11-FAKE16-NEXT:    global_store_b8 v[0:1], v0, off49; GFX11-FAKE16-NEXT:    s_setpc_b64 s[30:31]50  store i8 %arg0, ptr addrspace(1) poison51  ret void52}53 54define void @void_func_i16_inreg(i16 inreg %arg0) #0 {55; GFX9-LABEL: void_func_i16_inreg:56; GFX9:       ; %bb.0:57; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)58; GFX9-NEXT:    v_mov_b32_e32 v0, s1659; GFX9-NEXT:    global_store_short v[0:1], v0, off60; GFX9-NEXT:    s_waitcnt vmcnt(0)61; GFX9-NEXT:    s_setpc_b64 s[30:31]62;63; GFX11-TRUE16-LABEL: void_func_i16_inreg:64; GFX11-TRUE16:       ; %bb.0:65; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)66; GFX11-TRUE16-NEXT:    v_mov_b16_e32 v0.l, s067; GFX11-TRUE16-NEXT:    global_store_b16 v[0:1], v0, off68; GFX11-TRUE16-NEXT:    s_setpc_b64 s[30:31]69;70; GFX11-FAKE16-LABEL: void_func_i16_inreg:71; GFX11-FAKE16:       ; %bb.0:72; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)73; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v0, s074; GFX11-FAKE16-NEXT:    global_store_b16 v[0:1], v0, off75; GFX11-FAKE16-NEXT:    s_setpc_b64 s[30:31]76  store i16 %arg0, ptr addrspace(1) poison77  ret void78}79 80define void @void_func_i32_inreg(i32 inreg %arg0) #0 {81; GFX9-LABEL: void_func_i32_inreg:82; GFX9:       ; %bb.0:83; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)84; GFX9-NEXT:    v_mov_b32_e32 v0, s1685; GFX9-NEXT:    global_store_dword v[0:1], v0, off86; GFX9-NEXT:    s_waitcnt vmcnt(0)87; GFX9-NEXT:    s_setpc_b64 s[30:31]88;89; GFX11-LABEL: void_func_i32_inreg:90; GFX11:       ; %bb.0:91; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)92; GFX11-NEXT:    v_mov_b32_e32 v0, s093; GFX11-NEXT:    global_store_b32 v[0:1], v0, off94; GFX11-NEXT:    s_setpc_b64 s[30:31]95  store i32 %arg0, ptr addrspace(1) poison96  ret void97}98 99define void @void_func_i64_inreg(i64 inreg %arg0) #0 {100; GFX9-LABEL: void_func_i64_inreg:101; GFX9:       ; %bb.0:102; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)103; GFX9-NEXT:    v_mov_b32_e32 v0, s16104; GFX9-NEXT:    v_mov_b32_e32 v1, s17105; GFX9-NEXT:    global_store_dwordx2 v[0:1], v[0:1], off106; GFX9-NEXT:    s_waitcnt vmcnt(0)107; GFX9-NEXT:    s_setpc_b64 s[30:31]108;109; GFX11-LABEL: void_func_i64_inreg:110; GFX11:       ; %bb.0:111; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)112; GFX11-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1113; GFX11-NEXT:    global_store_b64 v[0:1], v[0:1], off114; GFX11-NEXT:    s_setpc_b64 s[30:31]115  store i64 %arg0, ptr addrspace(1) poison116  ret void117}118 119define void @void_func_f16_inreg(half inreg %arg0) #0 {120; GFX9-LABEL: void_func_f16_inreg:121; GFX9:       ; %bb.0:122; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)123; GFX9-NEXT:    v_mov_b32_e32 v0, s16124; GFX9-NEXT:    global_store_short v[0:1], v0, off125; GFX9-NEXT:    s_waitcnt vmcnt(0)126; GFX9-NEXT:    s_setpc_b64 s[30:31]127;128; GFX11-TRUE16-LABEL: void_func_f16_inreg:129; GFX11-TRUE16:       ; %bb.0:130; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)131; GFX11-TRUE16-NEXT:    v_mov_b16_e32 v0.l, s0132; GFX11-TRUE16-NEXT:    global_store_b16 v[0:1], v0, off133; GFX11-TRUE16-NEXT:    s_setpc_b64 s[30:31]134;135; GFX11-FAKE16-LABEL: void_func_f16_inreg:136; GFX11-FAKE16:       ; %bb.0:137; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)138; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v0, s0139; GFX11-FAKE16-NEXT:    global_store_b16 v[0:1], v0, off140; GFX11-FAKE16-NEXT:    s_setpc_b64 s[30:31]141  store half %arg0, ptr addrspace(1) poison142  ret void143}144 145define void @void_func_f32_inreg(float inreg %arg0) #0 {146; GFX9-LABEL: void_func_f32_inreg:147; GFX9:       ; %bb.0:148; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)149; GFX9-NEXT:    v_mov_b32_e32 v0, s16150; GFX9-NEXT:    global_store_dword v[0:1], v0, off151; GFX9-NEXT:    s_waitcnt vmcnt(0)152; GFX9-NEXT:    s_setpc_b64 s[30:31]153;154; GFX11-LABEL: void_func_f32_inreg:155; GFX11:       ; %bb.0:156; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)157; GFX11-NEXT:    v_mov_b32_e32 v0, s0158; GFX11-NEXT:    global_store_b32 v[0:1], v0, off159; GFX11-NEXT:    s_setpc_b64 s[30:31]160  store float %arg0, ptr addrspace(1) poison161  ret void162}163 164define void @void_func_f64_inreg(double inreg %arg0) #0 {165; GFX9-LABEL: void_func_f64_inreg:166; GFX9:       ; %bb.0:167; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)168; GFX9-NEXT:    v_mov_b32_e32 v0, s16169; GFX9-NEXT:    v_mov_b32_e32 v1, s17170; GFX9-NEXT:    global_store_dwordx2 v[0:1], v[0:1], off171; GFX9-NEXT:    s_waitcnt vmcnt(0)172; GFX9-NEXT:    s_setpc_b64 s[30:31]173;174; GFX11-LABEL: void_func_f64_inreg:175; GFX11:       ; %bb.0:176; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)177; GFX11-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1178; GFX11-NEXT:    global_store_b64 v[0:1], v[0:1], off179; GFX11-NEXT:    s_setpc_b64 s[30:31]180  store double %arg0, ptr addrspace(1) poison181  ret void182}183 184define void @void_func_v2i16_inreg(<2 x i16> inreg %arg0) #0 {185; GFX9-LABEL: void_func_v2i16_inreg:186; GFX9:       ; %bb.0:187; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)188; GFX9-NEXT:    v_mov_b32_e32 v0, s16189; GFX9-NEXT:    global_store_dword v[0:1], v0, off190; GFX9-NEXT:    s_waitcnt vmcnt(0)191; GFX9-NEXT:    s_setpc_b64 s[30:31]192;193; GFX11-LABEL: void_func_v2i16_inreg:194; GFX11:       ; %bb.0:195; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)196; GFX11-NEXT:    v_mov_b32_e32 v0, s0197; GFX11-NEXT:    global_store_b32 v[0:1], v0, off198; GFX11-NEXT:    s_setpc_b64 s[30:31]199  store <2 x i16> %arg0, ptr addrspace(1) poison200  ret void201}202 203define void @void_func_v3i16_inreg(<3 x i16> inreg %arg0) #0 {204; GFX9-LABEL: void_func_v3i16_inreg:205; GFX9:       ; %bb.0:206; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)207; GFX9-NEXT:    v_mov_b32_e32 v0, s17208; GFX9-NEXT:    global_store_short v[0:1], v0, off209; GFX9-NEXT:    v_mov_b32_e32 v0, s16210; GFX9-NEXT:    global_store_dword v[0:1], v0, off211; GFX9-NEXT:    s_waitcnt vmcnt(0)212; GFX9-NEXT:    s_setpc_b64 s[30:31]213;214; GFX11-LABEL: void_func_v3i16_inreg:215; GFX11:       ; %bb.0:216; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)217; GFX11-NEXT:    v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0218; GFX11-NEXT:    s_clause 0x1219; GFX11-NEXT:    global_store_b16 v[0:1], v0, off220; GFX11-NEXT:    global_store_b32 v[0:1], v1, off221; GFX11-NEXT:    s_setpc_b64 s[30:31]222  store <3 x i16> %arg0, ptr addrspace(1) poison223  ret void224}225 226define void @void_func_v4i16_inreg(<4 x i16> inreg %arg0) #0 {227; GFX89-LABEL: void_func_v4i16_inreg:228; GFX89:       ; %bb.0:229; GFX89-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)230; GFX89-NEXT:    v_mov_b32_e32 v0, s4231; GFX89-NEXT:    v_mov_b32_e32 v1, s5232; GFX89-NEXT:    global_store_dwordx2 v[0:1], v[0:1], off233; GFX89-NEXT:    s_waitcnt vmcnt(0)234; GFX89-NEXT:    s_setpc_b64 s[30:31]235;236; GFX9-LABEL: void_func_v4i16_inreg:237; GFX9:       ; %bb.0:238; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)239; GFX9-NEXT:    v_mov_b32_e32 v0, s16240; GFX9-NEXT:    v_mov_b32_e32 v1, s17241; GFX9-NEXT:    global_store_dwordx2 v[0:1], v[0:1], off242; GFX9-NEXT:    s_waitcnt vmcnt(0)243; GFX9-NEXT:    s_setpc_b64 s[30:31]244;245; GFX11-LABEL: void_func_v4i16_inreg:246; GFX11:       ; %bb.0:247; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)248; GFX11-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1249; GFX11-NEXT:    global_store_b64 v[0:1], v[0:1], off250; GFX11-NEXT:    s_setpc_b64 s[30:31]251  store <4 x i16> %arg0, ptr addrspace(1) poison252  ret void253}254 255define void @void_func_v5i16_inreg(<5 x i16> inreg %arg0) #0 {256; GFX9-LABEL: void_func_v5i16_inreg:257; GFX9:       ; %bb.0:258; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)259; GFX9-NEXT:    v_mov_b32_e32 v0, s18260; GFX9-NEXT:    global_store_short v[0:1], v0, off261; GFX9-NEXT:    v_mov_b32_e32 v0, s16262; GFX9-NEXT:    v_mov_b32_e32 v1, s17263; GFX9-NEXT:    global_store_dwordx2 v[0:1], v[0:1], off264; GFX9-NEXT:    s_waitcnt vmcnt(0)265; GFX9-NEXT:    s_setpc_b64 s[30:31]266;267; GFX11-LABEL: void_func_v5i16_inreg:268; GFX11:       ; %bb.0:269; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)270; GFX11-NEXT:    v_dual_mov_b32 v2, s2 :: v_dual_mov_b32 v1, s1271; GFX11-NEXT:    v_mov_b32_e32 v0, s0272; GFX11-NEXT:    s_clause 0x1273; GFX11-NEXT:    global_store_b16 v[0:1], v2, off274; GFX11-NEXT:    global_store_b64 v[0:1], v[0:1], off275; GFX11-NEXT:    s_setpc_b64 s[30:31]276  store <5 x i16> %arg0, ptr addrspace(1) poison277  ret void278}279 280define void @void_func_v8i16_inreg(<8 x i16> inreg %arg0) #0 {281; GFX9-LABEL: void_func_v8i16_inreg:282; GFX9:       ; %bb.0:283; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)284; GFX9-NEXT:    v_mov_b32_e32 v0, s16285; GFX9-NEXT:    v_mov_b32_e32 v1, s17286; GFX9-NEXT:    v_mov_b32_e32 v2, s18287; GFX9-NEXT:    v_mov_b32_e32 v3, s19288; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off289; GFX9-NEXT:    s_waitcnt vmcnt(0)290; GFX9-NEXT:    s_setpc_b64 s[30:31]291;292; GFX11-LABEL: void_func_v8i16_inreg:293; GFX11:       ; %bb.0:294; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)295; GFX11-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1296; GFX11-NEXT:    v_dual_mov_b32 v2, s2 :: v_dual_mov_b32 v3, s3297; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off298; GFX11-NEXT:    s_setpc_b64 s[30:31]299  store <8 x i16> %arg0, ptr addrspace(1) poison300  ret void301}302 303define void @void_func_v2i32_inreg(<2 x i32> inreg %arg0) #0 {304; GFX9-LABEL: void_func_v2i32_inreg:305; GFX9:       ; %bb.0:306; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)307; GFX9-NEXT:    v_mov_b32_e32 v0, s16308; GFX9-NEXT:    v_mov_b32_e32 v1, s17309; GFX9-NEXT:    global_store_dwordx2 v[0:1], v[0:1], off310; GFX9-NEXT:    s_waitcnt vmcnt(0)311; GFX9-NEXT:    s_setpc_b64 s[30:31]312;313; GFX11-LABEL: void_func_v2i32_inreg:314; GFX11:       ; %bb.0:315; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)316; GFX11-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1317; GFX11-NEXT:    global_store_b64 v[0:1], v[0:1], off318; GFX11-NEXT:    s_setpc_b64 s[30:31]319  store <2 x i32> %arg0, ptr addrspace(1) poison320  ret void321}322 323define void @void_func_v3i32_inreg(<3 x i32> inreg %arg0) #0 {324; GFX9-LABEL: void_func_v3i32_inreg:325; GFX9:       ; %bb.0:326; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)327; GFX9-NEXT:    v_mov_b32_e32 v0, s16328; GFX9-NEXT:    v_mov_b32_e32 v1, s17329; GFX9-NEXT:    v_mov_b32_e32 v2, s18330; GFX9-NEXT:    global_store_dwordx3 v[0:1], v[0:2], off331; GFX9-NEXT:    s_waitcnt vmcnt(0)332; GFX9-NEXT:    s_setpc_b64 s[30:31]333;334; GFX11-LABEL: void_func_v3i32_inreg:335; GFX11:       ; %bb.0:336; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)337; GFX11-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1338; GFX11-NEXT:    v_mov_b32_e32 v2, s2339; GFX11-NEXT:    global_store_b96 v[0:1], v[0:2], off340; GFX11-NEXT:    s_setpc_b64 s[30:31]341  store <3 x i32> %arg0, ptr addrspace(1) poison342  ret void343}344 345define void @void_func_v4i32_inreg(<4 x i32> inreg %arg0) #0 {346; GFX9-LABEL: void_func_v4i32_inreg:347; GFX9:       ; %bb.0:348; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)349; GFX9-NEXT:    v_mov_b32_e32 v0, s16350; GFX9-NEXT:    v_mov_b32_e32 v1, s17351; GFX9-NEXT:    v_mov_b32_e32 v2, s18352; GFX9-NEXT:    v_mov_b32_e32 v3, s19353; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off354; GFX9-NEXT:    s_waitcnt vmcnt(0)355; GFX9-NEXT:    s_setpc_b64 s[30:31]356;357; GFX11-LABEL: void_func_v4i32_inreg:358; GFX11:       ; %bb.0:359; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)360; GFX11-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1361; GFX11-NEXT:    v_dual_mov_b32 v2, s2 :: v_dual_mov_b32 v3, s3362; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off363; GFX11-NEXT:    s_setpc_b64 s[30:31]364  store <4 x i32> %arg0, ptr addrspace(1) poison365  ret void366}367 368define void @void_func_v5i32_inreg(<5 x i32> inreg %arg0) #0 {369; GFX9-LABEL: void_func_v5i32_inreg:370; GFX9:       ; %bb.0:371; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)372; GFX9-NEXT:    v_mov_b32_e32 v0, s20373; GFX9-NEXT:    global_store_dword v[0:1], v0, off374; GFX9-NEXT:    v_mov_b32_e32 v0, s16375; GFX9-NEXT:    v_mov_b32_e32 v1, s17376; GFX9-NEXT:    v_mov_b32_e32 v2, s18377; GFX9-NEXT:    v_mov_b32_e32 v3, s19378; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off379; GFX9-NEXT:    s_waitcnt vmcnt(0)380; GFX9-NEXT:    s_setpc_b64 s[30:31]381;382; GFX11-LABEL: void_func_v5i32_inreg:383; GFX11:       ; %bb.0:384; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)385; GFX11-NEXT:    v_dual_mov_b32 v4, s16 :: v_dual_mov_b32 v1, s1386; GFX11-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v3, s3387; GFX11-NEXT:    v_mov_b32_e32 v2, s2388; GFX11-NEXT:    s_clause 0x1389; GFX11-NEXT:    global_store_b32 v[0:1], v4, off390; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off391; GFX11-NEXT:    s_setpc_b64 s[30:31]392  store <5 x i32> %arg0, ptr addrspace(1) poison393  ret void394}395 396define void @void_func_v8i32_inreg(<8 x i32> inreg %arg0) #0 {397; GFX9-LABEL: void_func_v8i32_inreg:398; GFX9:       ; %bb.0:399; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)400; GFX9-NEXT:    v_mov_b32_e32 v0, s20401; GFX9-NEXT:    v_mov_b32_e32 v1, s21402; GFX9-NEXT:    v_mov_b32_e32 v2, s22403; GFX9-NEXT:    v_mov_b32_e32 v3, s23404; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off405; GFX9-NEXT:    s_nop 0406; GFX9-NEXT:    v_mov_b32_e32 v0, s16407; GFX9-NEXT:    v_mov_b32_e32 v1, s17408; GFX9-NEXT:    v_mov_b32_e32 v2, s18409; GFX9-NEXT:    v_mov_b32_e32 v3, s19410; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off411; GFX9-NEXT:    s_waitcnt vmcnt(0)412; GFX9-NEXT:    s_setpc_b64 s[30:31]413;414; GFX11-LABEL: void_func_v8i32_inreg:415; GFX11:       ; %bb.0:416; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)417; GFX11-NEXT:    v_dual_mov_b32 v0, s16 :: v_dual_mov_b32 v1, s17418; GFX11-NEXT:    v_dual_mov_b32 v2, s18 :: v_dual_mov_b32 v3, s19419; GFX11-NEXT:    v_dual_mov_b32 v4, s0 :: v_dual_mov_b32 v5, s1420; GFX11-NEXT:    v_dual_mov_b32 v6, s2 :: v_dual_mov_b32 v7, s3421; GFX11-NEXT:    s_clause 0x1422; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off423; GFX11-NEXT:    global_store_b128 v[0:1], v[4:7], off424; GFX11-NEXT:    s_setpc_b64 s[30:31]425  store <8 x i32> %arg0, ptr addrspace(1) poison426  ret void427}428 429define void @void_func_v16i32_inreg(<16 x i32> inreg %arg0) #0 {430; CIGFX89-LABEL: void_func_v16i32_inreg:431; CIGFX89:       ; %bb.0:432; CIGFX89-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)433; CIGFX89-NEXT:    v_mov_b32_e32 v0, s16434; CIGFX89-NEXT:    v_mov_b32_e32 v1, s17435; CIGFX89-NEXT:    v_mov_b32_e32 v2, s18436; CIGFX89-NEXT:    v_mov_b32_e32 v3, s19437; CIGFX89-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off438; CIGFX89-NEXT:    s_nop 0439; CIGFX89-NEXT:    v_mov_b32_e32 v0, s12440; CIGFX89-NEXT:    v_mov_b32_e32 v1, s13441; CIGFX89-NEXT:    v_mov_b32_e32 v2, s14442; CIGFX89-NEXT:    v_mov_b32_e32 v3, s15443; CIGFX89-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off444; CIGFX89-NEXT:    s_nop 0445; CIGFX89-NEXT:    v_mov_b32_e32 v0, s8446; CIGFX89-NEXT:    v_mov_b32_e32 v1, s9447; CIGFX89-NEXT:    v_mov_b32_e32 v2, s10448; CIGFX89-NEXT:    v_mov_b32_e32 v3, s11449; CIGFX89-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off450; CIGFX89-NEXT:    s_nop 0451; CIGFX89-NEXT:    v_mov_b32_e32 v0, s4452; CIGFX89-NEXT:    v_mov_b32_e32 v1, s5453; CIGFX89-NEXT:    v_mov_b32_e32 v2, s6454; CIGFX89-NEXT:    v_mov_b32_e32 v3, s7455; CIGFX89-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off456; CIGFX89-NEXT:    s_waitcnt vmcnt(0)457; CIGFX89-NEXT:    s_setpc_b64 s[30:31]458;459; GFX9-LABEL: void_func_v16i32_inreg:460; GFX9:       ; %bb.0:461; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)462; GFX9-NEXT:    v_mov_b32_e32 v3, v1463; GFX9-NEXT:    v_mov_b32_e32 v2, v0464; GFX9-NEXT:    v_mov_b32_e32 v0, s28465; GFX9-NEXT:    v_mov_b32_e32 v1, s29466; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off467; GFX9-NEXT:    s_nop 0468; GFX9-NEXT:    v_mov_b32_e32 v0, s24469; GFX9-NEXT:    v_mov_b32_e32 v1, s25470; GFX9-NEXT:    v_mov_b32_e32 v2, s26471; GFX9-NEXT:    v_mov_b32_e32 v3, s27472; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off473; GFX9-NEXT:    s_nop 0474; GFX9-NEXT:    v_mov_b32_e32 v0, s20475; GFX9-NEXT:    v_mov_b32_e32 v1, s21476; GFX9-NEXT:    v_mov_b32_e32 v2, s22477; GFX9-NEXT:    v_mov_b32_e32 v3, s23478; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off479; GFX9-NEXT:    s_nop 0480; GFX9-NEXT:    v_mov_b32_e32 v0, s16481; GFX9-NEXT:    v_mov_b32_e32 v1, s17482; GFX9-NEXT:    v_mov_b32_e32 v2, s18483; GFX9-NEXT:    v_mov_b32_e32 v3, s19484; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off485; GFX9-NEXT:    s_waitcnt vmcnt(0)486; GFX9-NEXT:    s_setpc_b64 s[30:31]487;488; GFX11-LABEL: void_func_v16i32_inreg:489; GFX11:       ; %bb.0:490; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)491; GFX11-NEXT:    v_dual_mov_b32 v0, s24 :: v_dual_mov_b32 v1, s25492; GFX11-NEXT:    v_dual_mov_b32 v2, s26 :: v_dual_mov_b32 v3, s27493; GFX11-NEXT:    v_dual_mov_b32 v4, s20 :: v_dual_mov_b32 v5, s21494; GFX11-NEXT:    v_dual_mov_b32 v6, s22 :: v_dual_mov_b32 v7, s23495; GFX11-NEXT:    v_dual_mov_b32 v8, s16 :: v_dual_mov_b32 v9, s17496; GFX11-NEXT:    v_dual_mov_b32 v10, s18 :: v_dual_mov_b32 v11, s19497; GFX11-NEXT:    v_dual_mov_b32 v12, s0 :: v_dual_mov_b32 v13, s1498; GFX11-NEXT:    v_dual_mov_b32 v14, s2 :: v_dual_mov_b32 v15, s3499; GFX11-NEXT:    s_clause 0x3500; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off501; GFX11-NEXT:    global_store_b128 v[0:1], v[4:7], off502; GFX11-NEXT:    global_store_b128 v[0:1], v[8:11], off503; GFX11-NEXT:    global_store_b128 v[0:1], v[12:15], off504; GFX11-NEXT:    s_setpc_b64 s[30:31]505  store <16 x i32> %arg0, ptr addrspace(1) poison506  ret void507}508 509define void @void_func_v32i32_inreg(<32 x i32> inreg %arg0) #0 {510; GFX9-LABEL: void_func_v32i32_inreg:511; GFX9:       ; %bb.0:512; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)513; GFX9-NEXT:    v_mov_b32_e32 v19, v1514; GFX9-NEXT:    v_mov_b32_e32 v18, v0515; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[14:17], off516; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[10:13], off517; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[6:9], off518; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[2:5], off519; GFX9-NEXT:    v_mov_b32_e32 v16, s28520; GFX9-NEXT:    v_mov_b32_e32 v17, s29521; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[16:19], off522; GFX9-NEXT:    v_mov_b32_e32 v0, s24523; GFX9-NEXT:    v_mov_b32_e32 v1, s25524; GFX9-NEXT:    v_mov_b32_e32 v2, s26525; GFX9-NEXT:    v_mov_b32_e32 v3, s27526; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off527; GFX9-NEXT:    s_nop 0528; GFX9-NEXT:    v_mov_b32_e32 v0, s20529; GFX9-NEXT:    v_mov_b32_e32 v1, s21530; GFX9-NEXT:    v_mov_b32_e32 v2, s22531; GFX9-NEXT:    v_mov_b32_e32 v3, s23532; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off533; GFX9-NEXT:    s_nop 0534; GFX9-NEXT:    v_mov_b32_e32 v0, s16535; GFX9-NEXT:    v_mov_b32_e32 v1, s17536; GFX9-NEXT:    v_mov_b32_e32 v2, s18537; GFX9-NEXT:    v_mov_b32_e32 v3, s19538; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off539; GFX9-NEXT:    s_waitcnt vmcnt(0)540; GFX9-NEXT:    s_setpc_b64 s[30:31]541;542; GFX11-LABEL: void_func_v32i32_inreg:543; GFX11:       ; %bb.0:544; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)545; GFX11-NEXT:    v_dual_mov_b32 v15, v1 :: v_dual_mov_b32 v14, v0546; GFX11-NEXT:    s_clause 0x2547; GFX11-NEXT:    global_store_b128 v[0:1], v[10:13], off548; GFX11-NEXT:    global_store_b128 v[0:1], v[6:9], off549; GFX11-NEXT:    global_store_b128 v[0:1], v[2:5], off550; GFX11-NEXT:    v_dual_mov_b32 v12, s28 :: v_dual_mov_b32 v13, s29551; GFX11-NEXT:    v_dual_mov_b32 v0, s24 :: v_dual_mov_b32 v1, s25552; GFX11-NEXT:    v_dual_mov_b32 v2, s26 :: v_dual_mov_b32 v3, s27553; GFX11-NEXT:    v_dual_mov_b32 v4, s20 :: v_dual_mov_b32 v5, s21554; GFX11-NEXT:    v_dual_mov_b32 v6, s22 :: v_dual_mov_b32 v7, s23555; GFX11-NEXT:    v_dual_mov_b32 v8, s16 :: v_dual_mov_b32 v9, s17556; GFX11-NEXT:    v_dual_mov_b32 v10, s18 :: v_dual_mov_b32 v11, s19557; GFX11-NEXT:    v_dual_mov_b32 v16, s0 :: v_dual_mov_b32 v17, s1558; GFX11-NEXT:    v_dual_mov_b32 v18, s2 :: v_dual_mov_b32 v19, s3559; GFX11-NEXT:    s_clause 0x4560; GFX11-NEXT:    global_store_b128 v[0:1], v[12:15], off561; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off562; GFX11-NEXT:    global_store_b128 v[0:1], v[4:7], off563; GFX11-NEXT:    global_store_b128 v[0:1], v[8:11], off564; GFX11-NEXT:    global_store_b128 v[0:1], v[16:19], off565; GFX11-NEXT:    s_setpc_b64 s[30:31]566  store <32 x i32> %arg0, ptr addrspace(1) poison567  ret void568}569 570define void @void_func_v2i64_inreg(<2 x i64> inreg %arg0) #0 {571; GFX9-LABEL: void_func_v2i64_inreg:572; GFX9:       ; %bb.0:573; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)574; GFX9-NEXT:    v_mov_b32_e32 v0, s16575; GFX9-NEXT:    v_mov_b32_e32 v1, s17576; GFX9-NEXT:    v_mov_b32_e32 v2, s18577; GFX9-NEXT:    v_mov_b32_e32 v3, s19578; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off579; GFX9-NEXT:    s_waitcnt vmcnt(0)580; GFX9-NEXT:    s_setpc_b64 s[30:31]581;582; GFX11-LABEL: void_func_v2i64_inreg:583; GFX11:       ; %bb.0:584; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)585; GFX11-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1586; GFX11-NEXT:    v_dual_mov_b32 v2, s2 :: v_dual_mov_b32 v3, s3587; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off588; GFX11-NEXT:    s_setpc_b64 s[30:31]589  store <2 x i64> %arg0, ptr addrspace(1) poison590  ret void591}592 593define void @void_func_v3i64_inreg(<3 x i64> inreg %arg0) #0 {594; GFX9-LABEL: void_func_v3i64_inreg:595; GFX9:       ; %bb.0:596; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)597; GFX9-NEXT:    v_mov_b32_e32 v0, s20598; GFX9-NEXT:    v_mov_b32_e32 v1, s21599; GFX9-NEXT:    global_store_dwordx2 v[0:1], v[0:1], off600; GFX9-NEXT:    v_mov_b32_e32 v0, s16601; GFX9-NEXT:    v_mov_b32_e32 v1, s17602; GFX9-NEXT:    v_mov_b32_e32 v2, s18603; GFX9-NEXT:    v_mov_b32_e32 v3, s19604; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off605; GFX9-NEXT:    s_waitcnt vmcnt(0)606; GFX9-NEXT:    s_setpc_b64 s[30:31]607;608; GFX11-LABEL: void_func_v3i64_inreg:609; GFX11:       ; %bb.0:610; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)611; GFX11-NEXT:    v_dual_mov_b32 v4, s16 :: v_dual_mov_b32 v5, s17612; GFX11-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1613; GFX11-NEXT:    v_dual_mov_b32 v2, s2 :: v_dual_mov_b32 v3, s3614; GFX11-NEXT:    s_clause 0x1615; GFX11-NEXT:    global_store_b64 v[0:1], v[4:5], off616; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off617; GFX11-NEXT:    s_setpc_b64 s[30:31]618  store <3 x i64> %arg0, ptr addrspace(1) poison619  ret void620}621 622define void @void_func_v4i64_inreg(<4 x i64> inreg %arg0) #0 {623; GFX9-LABEL: void_func_v4i64_inreg:624; GFX9:       ; %bb.0:625; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)626; GFX9-NEXT:    v_mov_b32_e32 v0, s20627; GFX9-NEXT:    v_mov_b32_e32 v1, s21628; GFX9-NEXT:    v_mov_b32_e32 v2, s22629; GFX9-NEXT:    v_mov_b32_e32 v3, s23630; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off631; GFX9-NEXT:    s_nop 0632; GFX9-NEXT:    v_mov_b32_e32 v0, s16633; GFX9-NEXT:    v_mov_b32_e32 v1, s17634; GFX9-NEXT:    v_mov_b32_e32 v2, s18635; GFX9-NEXT:    v_mov_b32_e32 v3, s19636; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off637; GFX9-NEXT:    s_waitcnt vmcnt(0)638; GFX9-NEXT:    s_setpc_b64 s[30:31]639;640; GFX11-LABEL: void_func_v4i64_inreg:641; GFX11:       ; %bb.0:642; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)643; GFX11-NEXT:    v_dual_mov_b32 v0, s16 :: v_dual_mov_b32 v1, s17644; GFX11-NEXT:    v_dual_mov_b32 v2, s18 :: v_dual_mov_b32 v3, s19645; GFX11-NEXT:    v_dual_mov_b32 v4, s0 :: v_dual_mov_b32 v5, s1646; GFX11-NEXT:    v_dual_mov_b32 v6, s2 :: v_dual_mov_b32 v7, s3647; GFX11-NEXT:    s_clause 0x1648; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off649; GFX11-NEXT:    global_store_b128 v[0:1], v[4:7], off650; GFX11-NEXT:    s_setpc_b64 s[30:31]651  store <4 x i64> %arg0, ptr addrspace(1) poison652  ret void653}654 655define void @void_func_v5i64_inreg(<5 x i64> inreg %arg0) #0 {656; GFX9-LABEL: void_func_v5i64_inreg:657; GFX9:       ; %bb.0:658; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)659; GFX9-NEXT:    v_mov_b32_e32 v0, s20660; GFX9-NEXT:    v_mov_b32_e32 v1, s21661; GFX9-NEXT:    v_mov_b32_e32 v2, s22662; GFX9-NEXT:    v_mov_b32_e32 v3, s23663; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off664; GFX9-NEXT:    s_nop 0665; GFX9-NEXT:    v_mov_b32_e32 v0, s16666; GFX9-NEXT:    v_mov_b32_e32 v1, s17667; GFX9-NEXT:    v_mov_b32_e32 v2, s18668; GFX9-NEXT:    v_mov_b32_e32 v3, s19669; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off670; GFX9-NEXT:    s_nop 0671; GFX9-NEXT:    v_mov_b32_e32 v0, s24672; GFX9-NEXT:    v_mov_b32_e32 v1, s25673; GFX9-NEXT:    global_store_dwordx2 v[0:1], v[0:1], off674; GFX9-NEXT:    s_waitcnt vmcnt(0)675; GFX9-NEXT:    s_setpc_b64 s[30:31]676;677; GFX11-LABEL: void_func_v5i64_inreg:678; GFX11:       ; %bb.0:679; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)680; GFX11-NEXT:    v_dual_mov_b32 v0, s16 :: v_dual_mov_b32 v1, s17681; GFX11-NEXT:    v_dual_mov_b32 v2, s18 :: v_dual_mov_b32 v3, s19682; GFX11-NEXT:    v_dual_mov_b32 v4, s0 :: v_dual_mov_b32 v5, s1683; GFX11-NEXT:    v_dual_mov_b32 v6, s2 :: v_dual_mov_b32 v7, s3684; GFX11-NEXT:    v_dual_mov_b32 v8, s20 :: v_dual_mov_b32 v9, s21685; GFX11-NEXT:    s_clause 0x2686; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off687; GFX11-NEXT:    global_store_b128 v[0:1], v[4:7], off688; GFX11-NEXT:    global_store_b64 v[0:1], v[8:9], off689; GFX11-NEXT:    s_setpc_b64 s[30:31]690  store <5 x i64> %arg0, ptr addrspace(1) poison691  ret void692}693 694define void @void_func_v8i64_inreg(<8 x i64> inreg %arg0) #0 {695; GFX9-LABEL: void_func_v8i64_inreg:696; GFX9:       ; %bb.0:697; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)698; GFX9-NEXT:    v_mov_b32_e32 v3, v1699; GFX9-NEXT:    v_mov_b32_e32 v2, v0700; GFX9-NEXT:    v_mov_b32_e32 v0, s28701; GFX9-NEXT:    v_mov_b32_e32 v1, s29702; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off703; GFX9-NEXT:    s_nop 0704; GFX9-NEXT:    v_mov_b32_e32 v0, s24705; GFX9-NEXT:    v_mov_b32_e32 v1, s25706; GFX9-NEXT:    v_mov_b32_e32 v2, s26707; GFX9-NEXT:    v_mov_b32_e32 v3, s27708; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off709; GFX9-NEXT:    s_nop 0710; GFX9-NEXT:    v_mov_b32_e32 v0, s20711; GFX9-NEXT:    v_mov_b32_e32 v1, s21712; GFX9-NEXT:    v_mov_b32_e32 v2, s22713; GFX9-NEXT:    v_mov_b32_e32 v3, s23714; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off715; GFX9-NEXT:    s_nop 0716; GFX9-NEXT:    v_mov_b32_e32 v0, s16717; GFX9-NEXT:    v_mov_b32_e32 v1, s17718; GFX9-NEXT:    v_mov_b32_e32 v2, s18719; GFX9-NEXT:    v_mov_b32_e32 v3, s19720; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off721; GFX9-NEXT:    s_waitcnt vmcnt(0)722; GFX9-NEXT:    s_setpc_b64 s[30:31]723;724; GFX11-LABEL: void_func_v8i64_inreg:725; GFX11:       ; %bb.0:726; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)727; GFX11-NEXT:    v_dual_mov_b32 v0, s24 :: v_dual_mov_b32 v1, s25728; GFX11-NEXT:    v_dual_mov_b32 v2, s26 :: v_dual_mov_b32 v3, s27729; GFX11-NEXT:    v_dual_mov_b32 v4, s20 :: v_dual_mov_b32 v5, s21730; GFX11-NEXT:    v_dual_mov_b32 v6, s22 :: v_dual_mov_b32 v7, s23731; GFX11-NEXT:    v_dual_mov_b32 v8, s16 :: v_dual_mov_b32 v9, s17732; GFX11-NEXT:    v_dual_mov_b32 v10, s18 :: v_dual_mov_b32 v11, s19733; GFX11-NEXT:    v_dual_mov_b32 v12, s0 :: v_dual_mov_b32 v13, s1734; GFX11-NEXT:    v_dual_mov_b32 v14, s2 :: v_dual_mov_b32 v15, s3735; GFX11-NEXT:    s_clause 0x3736; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off737; GFX11-NEXT:    global_store_b128 v[0:1], v[4:7], off738; GFX11-NEXT:    global_store_b128 v[0:1], v[8:11], off739; GFX11-NEXT:    global_store_b128 v[0:1], v[12:15], off740; GFX11-NEXT:    s_setpc_b64 s[30:31]741  store <8 x i64> %arg0, ptr addrspace(1) poison742  ret void743}744 745define void @void_func_v16i64_inreg(<16 x i64> inreg %arg0) #0 {746; GFX9-LABEL: void_func_v16i64_inreg:747; GFX9:       ; %bb.0:748; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)749; GFX9-NEXT:    v_mov_b32_e32 v19, v1750; GFX9-NEXT:    v_mov_b32_e32 v18, v0751; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[14:17], off752; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[10:13], off753; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[6:9], off754; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[2:5], off755; GFX9-NEXT:    v_mov_b32_e32 v16, s28756; GFX9-NEXT:    v_mov_b32_e32 v17, s29757; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[16:19], off758; GFX9-NEXT:    v_mov_b32_e32 v0, s24759; GFX9-NEXT:    v_mov_b32_e32 v1, s25760; GFX9-NEXT:    v_mov_b32_e32 v2, s26761; GFX9-NEXT:    v_mov_b32_e32 v3, s27762; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off763; GFX9-NEXT:    s_nop 0764; GFX9-NEXT:    v_mov_b32_e32 v0, s20765; GFX9-NEXT:    v_mov_b32_e32 v1, s21766; GFX9-NEXT:    v_mov_b32_e32 v2, s22767; GFX9-NEXT:    v_mov_b32_e32 v3, s23768; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off769; GFX9-NEXT:    s_nop 0770; GFX9-NEXT:    v_mov_b32_e32 v0, s16771; GFX9-NEXT:    v_mov_b32_e32 v1, s17772; GFX9-NEXT:    v_mov_b32_e32 v2, s18773; GFX9-NEXT:    v_mov_b32_e32 v3, s19774; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off775; GFX9-NEXT:    s_waitcnt vmcnt(0)776; GFX9-NEXT:    s_setpc_b64 s[30:31]777;778; GFX11-LABEL: void_func_v16i64_inreg:779; GFX11:       ; %bb.0:780; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)781; GFX11-NEXT:    v_dual_mov_b32 v15, v1 :: v_dual_mov_b32 v14, v0782; GFX11-NEXT:    s_clause 0x2783; GFX11-NEXT:    global_store_b128 v[0:1], v[10:13], off784; GFX11-NEXT:    global_store_b128 v[0:1], v[6:9], off785; GFX11-NEXT:    global_store_b128 v[0:1], v[2:5], off786; GFX11-NEXT:    v_dual_mov_b32 v12, s28 :: v_dual_mov_b32 v13, s29787; GFX11-NEXT:    v_dual_mov_b32 v0, s24 :: v_dual_mov_b32 v1, s25788; GFX11-NEXT:    v_dual_mov_b32 v2, s26 :: v_dual_mov_b32 v3, s27789; GFX11-NEXT:    v_dual_mov_b32 v4, s20 :: v_dual_mov_b32 v5, s21790; GFX11-NEXT:    v_dual_mov_b32 v6, s22 :: v_dual_mov_b32 v7, s23791; GFX11-NEXT:    v_dual_mov_b32 v8, s16 :: v_dual_mov_b32 v9, s17792; GFX11-NEXT:    v_dual_mov_b32 v10, s18 :: v_dual_mov_b32 v11, s19793; GFX11-NEXT:    v_dual_mov_b32 v16, s0 :: v_dual_mov_b32 v17, s1794; GFX11-NEXT:    v_dual_mov_b32 v18, s2 :: v_dual_mov_b32 v19, s3795; GFX11-NEXT:    s_clause 0x4796; GFX11-NEXT:    global_store_b128 v[0:1], v[12:15], off797; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off798; GFX11-NEXT:    global_store_b128 v[0:1], v[4:7], off799; GFX11-NEXT:    global_store_b128 v[0:1], v[8:11], off800; GFX11-NEXT:    global_store_b128 v[0:1], v[16:19], off801; GFX11-NEXT:    s_setpc_b64 s[30:31]802  store <16 x i64> %arg0, ptr addrspace(1) poison803  ret void804}805 806define void @void_func_v2f16_inreg(<2 x half> inreg %arg0) #0 {807; GFX9-LABEL: void_func_v2f16_inreg:808; GFX9:       ; %bb.0:809; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)810; GFX9-NEXT:    v_mov_b32_e32 v0, s16811; GFX9-NEXT:    global_store_dword v[0:1], v0, off812; GFX9-NEXT:    s_waitcnt vmcnt(0)813; GFX9-NEXT:    s_setpc_b64 s[30:31]814;815; GFX11-LABEL: void_func_v2f16_inreg:816; GFX11:       ; %bb.0:817; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)818; GFX11-NEXT:    v_mov_b32_e32 v0, s0819; GFX11-NEXT:    global_store_b32 v[0:1], v0, off820; GFX11-NEXT:    s_setpc_b64 s[30:31]821  store <2 x half> %arg0, ptr addrspace(1) poison822  ret void823}824 825define void @void_func_v3f16_inreg(<3 x half> inreg %arg0) #0 {826; GFX9-LABEL: void_func_v3f16_inreg:827; GFX9:       ; %bb.0:828; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)829; GFX9-NEXT:    v_mov_b32_e32 v0, s17830; GFX9-NEXT:    global_store_short v[0:1], v0, off831; GFX9-NEXT:    v_mov_b32_e32 v0, s16832; GFX9-NEXT:    global_store_dword v[0:1], v0, off833; GFX9-NEXT:    s_waitcnt vmcnt(0)834; GFX9-NEXT:    s_setpc_b64 s[30:31]835;836; GFX11-LABEL: void_func_v3f16_inreg:837; GFX11:       ; %bb.0:838; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)839; GFX11-NEXT:    v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0840; GFX11-NEXT:    s_clause 0x1841; GFX11-NEXT:    global_store_b16 v[0:1], v0, off842; GFX11-NEXT:    global_store_b32 v[0:1], v1, off843; GFX11-NEXT:    s_setpc_b64 s[30:31]844  store <3 x half> %arg0, ptr addrspace(1) poison845  ret void846}847 848define void @void_func_v4f16_inreg(<4 x half> inreg %arg0) #0 {849; GFX9-LABEL: void_func_v4f16_inreg:850; GFX9:       ; %bb.0:851; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)852; GFX9-NEXT:    v_mov_b32_e32 v0, s16853; GFX9-NEXT:    v_mov_b32_e32 v1, s17854; GFX9-NEXT:    global_store_dwordx2 v[0:1], v[0:1], off855; GFX9-NEXT:    s_waitcnt vmcnt(0)856; GFX9-NEXT:    s_setpc_b64 s[30:31]857;858; GFX11-LABEL: void_func_v4f16_inreg:859; GFX11:       ; %bb.0:860; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)861; GFX11-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1862; GFX11-NEXT:    global_store_b64 v[0:1], v[0:1], off863; GFX11-NEXT:    s_setpc_b64 s[30:31]864  store <4 x half> %arg0, ptr addrspace(1) poison865  ret void866}867 868define void @void_func_v8f16_inreg(<8 x half> inreg %arg0) #0 {869; GFX9-LABEL: void_func_v8f16_inreg:870; GFX9:       ; %bb.0:871; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)872; GFX9-NEXT:    v_mov_b32_e32 v0, s16873; GFX9-NEXT:    v_mov_b32_e32 v1, s17874; GFX9-NEXT:    v_mov_b32_e32 v2, s18875; GFX9-NEXT:    v_mov_b32_e32 v3, s19876; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off877; GFX9-NEXT:    s_waitcnt vmcnt(0)878; GFX9-NEXT:    s_setpc_b64 s[30:31]879;880; GFX11-LABEL: void_func_v8f16_inreg:881; GFX11:       ; %bb.0:882; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)883; GFX11-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1884; GFX11-NEXT:    v_dual_mov_b32 v2, s2 :: v_dual_mov_b32 v3, s3885; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off886; GFX11-NEXT:    s_setpc_b64 s[30:31]887  store <8 x half> %arg0, ptr addrspace(1) poison888  ret void889}890 891define void @void_func_v16f16_inreg(<16 x half> inreg %arg0) #0 {892; GFX9-LABEL: void_func_v16f16_inreg:893; GFX9:       ; %bb.0:894; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)895; GFX9-NEXT:    v_mov_b32_e32 v0, s20896; GFX9-NEXT:    v_mov_b32_e32 v1, s21897; GFX9-NEXT:    v_mov_b32_e32 v2, s22898; GFX9-NEXT:    v_mov_b32_e32 v3, s23899; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off900; GFX9-NEXT:    s_nop 0901; GFX9-NEXT:    v_mov_b32_e32 v0, s16902; GFX9-NEXT:    v_mov_b32_e32 v1, s17903; GFX9-NEXT:    v_mov_b32_e32 v2, s18904; GFX9-NEXT:    v_mov_b32_e32 v3, s19905; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off906; GFX9-NEXT:    s_waitcnt vmcnt(0)907; GFX9-NEXT:    s_setpc_b64 s[30:31]908;909; GFX11-LABEL: void_func_v16f16_inreg:910; GFX11:       ; %bb.0:911; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)912; GFX11-NEXT:    v_dual_mov_b32 v0, s16 :: v_dual_mov_b32 v1, s17913; GFX11-NEXT:    v_dual_mov_b32 v2, s18 :: v_dual_mov_b32 v3, s19914; GFX11-NEXT:    v_dual_mov_b32 v4, s0 :: v_dual_mov_b32 v5, s1915; GFX11-NEXT:    v_dual_mov_b32 v6, s2 :: v_dual_mov_b32 v7, s3916; GFX11-NEXT:    s_clause 0x1917; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off918; GFX11-NEXT:    global_store_b128 v[0:1], v[4:7], off919; GFX11-NEXT:    s_setpc_b64 s[30:31]920  store <16 x half> %arg0, ptr addrspace(1) poison921  ret void922}923 924define void @void_func_v2f32_inreg(<2 x float> inreg %arg0) #0 {925; GFX9-LABEL: void_func_v2f32_inreg:926; GFX9:       ; %bb.0:927; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)928; GFX9-NEXT:    v_mov_b32_e32 v0, s16929; GFX9-NEXT:    v_mov_b32_e32 v1, s17930; GFX9-NEXT:    global_store_dwordx2 v[0:1], v[0:1], off931; GFX9-NEXT:    s_waitcnt vmcnt(0)932; GFX9-NEXT:    s_setpc_b64 s[30:31]933;934; GFX11-LABEL: void_func_v2f32_inreg:935; GFX11:       ; %bb.0:936; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)937; GFX11-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1938; GFX11-NEXT:    global_store_b64 v[0:1], v[0:1], off939; GFX11-NEXT:    s_setpc_b64 s[30:31]940  store <2 x float> %arg0, ptr addrspace(1) poison941  ret void942}943 944define void @void_func_v3f32_inreg(<3 x float> inreg %arg0) #0 {945; GFX9-LABEL: void_func_v3f32_inreg:946; GFX9:       ; %bb.0:947; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)948; GFX9-NEXT:    v_mov_b32_e32 v0, s16949; GFX9-NEXT:    v_mov_b32_e32 v1, s17950; GFX9-NEXT:    v_mov_b32_e32 v2, s18951; GFX9-NEXT:    global_store_dwordx3 v[0:1], v[0:2], off952; GFX9-NEXT:    s_waitcnt vmcnt(0)953; GFX9-NEXT:    s_setpc_b64 s[30:31]954;955; GFX11-LABEL: void_func_v3f32_inreg:956; GFX11:       ; %bb.0:957; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)958; GFX11-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1959; GFX11-NEXT:    v_mov_b32_e32 v2, s2960; GFX11-NEXT:    global_store_b96 v[0:1], v[0:2], off961; GFX11-NEXT:    s_setpc_b64 s[30:31]962  store <3 x float> %arg0, ptr addrspace(1) poison963  ret void964}965 966define void @void_func_v4f32_inreg(<4 x float> inreg %arg0) #0 {967; GFX9-LABEL: void_func_v4f32_inreg:968; GFX9:       ; %bb.0:969; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)970; GFX9-NEXT:    v_mov_b32_e32 v0, s16971; GFX9-NEXT:    v_mov_b32_e32 v1, s17972; GFX9-NEXT:    v_mov_b32_e32 v2, s18973; GFX9-NEXT:    v_mov_b32_e32 v3, s19974; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off975; GFX9-NEXT:    s_waitcnt vmcnt(0)976; GFX9-NEXT:    s_setpc_b64 s[30:31]977;978; GFX11-LABEL: void_func_v4f32_inreg:979; GFX11:       ; %bb.0:980; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)981; GFX11-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1982; GFX11-NEXT:    v_dual_mov_b32 v2, s2 :: v_dual_mov_b32 v3, s3983; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off984; GFX11-NEXT:    s_setpc_b64 s[30:31]985  store <4 x float> %arg0, ptr addrspace(1) poison986  ret void987}988 989define void @void_func_v8f32_inreg(<8 x float> inreg %arg0) #0 {990; GFX9-LABEL: void_func_v8f32_inreg:991; GFX9:       ; %bb.0:992; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)993; GFX9-NEXT:    v_mov_b32_e32 v0, s20994; GFX9-NEXT:    v_mov_b32_e32 v1, s21995; GFX9-NEXT:    v_mov_b32_e32 v2, s22996; GFX9-NEXT:    v_mov_b32_e32 v3, s23997; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off998; GFX9-NEXT:    s_nop 0999; GFX9-NEXT:    v_mov_b32_e32 v0, s161000; GFX9-NEXT:    v_mov_b32_e32 v1, s171001; GFX9-NEXT:    v_mov_b32_e32 v2, s181002; GFX9-NEXT:    v_mov_b32_e32 v3, s191003; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1004; GFX9-NEXT:    s_waitcnt vmcnt(0)1005; GFX9-NEXT:    s_setpc_b64 s[30:31]1006;1007; GFX11-LABEL: void_func_v8f32_inreg:1008; GFX11:       ; %bb.0:1009; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1010; GFX11-NEXT:    v_dual_mov_b32 v0, s16 :: v_dual_mov_b32 v1, s171011; GFX11-NEXT:    v_dual_mov_b32 v2, s18 :: v_dual_mov_b32 v3, s191012; GFX11-NEXT:    v_dual_mov_b32 v4, s0 :: v_dual_mov_b32 v5, s11013; GFX11-NEXT:    v_dual_mov_b32 v6, s2 :: v_dual_mov_b32 v7, s31014; GFX11-NEXT:    s_clause 0x11015; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off1016; GFX11-NEXT:    global_store_b128 v[0:1], v[4:7], off1017; GFX11-NEXT:    s_setpc_b64 s[30:31]1018  store <8 x float> %arg0, ptr addrspace(1) poison1019  ret void1020}1021 1022define void @void_func_v16f32_inreg(<16 x float> inreg %arg0) #0 {1023; GFX9-LABEL: void_func_v16f32_inreg:1024; GFX9:       ; %bb.0:1025; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1026; GFX9-NEXT:    v_mov_b32_e32 v3, v11027; GFX9-NEXT:    v_mov_b32_e32 v2, v01028; GFX9-NEXT:    v_mov_b32_e32 v0, s281029; GFX9-NEXT:    v_mov_b32_e32 v1, s291030; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1031; GFX9-NEXT:    s_nop 01032; GFX9-NEXT:    v_mov_b32_e32 v0, s241033; GFX9-NEXT:    v_mov_b32_e32 v1, s251034; GFX9-NEXT:    v_mov_b32_e32 v2, s261035; GFX9-NEXT:    v_mov_b32_e32 v3, s271036; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1037; GFX9-NEXT:    s_nop 01038; GFX9-NEXT:    v_mov_b32_e32 v0, s201039; GFX9-NEXT:    v_mov_b32_e32 v1, s211040; GFX9-NEXT:    v_mov_b32_e32 v2, s221041; GFX9-NEXT:    v_mov_b32_e32 v3, s231042; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1043; GFX9-NEXT:    s_nop 01044; GFX9-NEXT:    v_mov_b32_e32 v0, s161045; GFX9-NEXT:    v_mov_b32_e32 v1, s171046; GFX9-NEXT:    v_mov_b32_e32 v2, s181047; GFX9-NEXT:    v_mov_b32_e32 v3, s191048; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1049; GFX9-NEXT:    s_waitcnt vmcnt(0)1050; GFX9-NEXT:    s_setpc_b64 s[30:31]1051;1052; GFX11-LABEL: void_func_v16f32_inreg:1053; GFX11:       ; %bb.0:1054; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1055; GFX11-NEXT:    v_dual_mov_b32 v0, s24 :: v_dual_mov_b32 v1, s251056; GFX11-NEXT:    v_dual_mov_b32 v2, s26 :: v_dual_mov_b32 v3, s271057; GFX11-NEXT:    v_dual_mov_b32 v4, s20 :: v_dual_mov_b32 v5, s211058; GFX11-NEXT:    v_dual_mov_b32 v6, s22 :: v_dual_mov_b32 v7, s231059; GFX11-NEXT:    v_dual_mov_b32 v8, s16 :: v_dual_mov_b32 v9, s171060; GFX11-NEXT:    v_dual_mov_b32 v10, s18 :: v_dual_mov_b32 v11, s191061; GFX11-NEXT:    v_dual_mov_b32 v12, s0 :: v_dual_mov_b32 v13, s11062; GFX11-NEXT:    v_dual_mov_b32 v14, s2 :: v_dual_mov_b32 v15, s31063; GFX11-NEXT:    s_clause 0x31064; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off1065; GFX11-NEXT:    global_store_b128 v[0:1], v[4:7], off1066; GFX11-NEXT:    global_store_b128 v[0:1], v[8:11], off1067; GFX11-NEXT:    global_store_b128 v[0:1], v[12:15], off1068; GFX11-NEXT:    s_setpc_b64 s[30:31]1069  store <16 x float> %arg0, ptr addrspace(1) poison1070  ret void1071}1072 1073define void @void_func_v2f64_inreg(<2 x double> inreg %arg0) #0 {1074; GFX9-LABEL: void_func_v2f64_inreg:1075; GFX9:       ; %bb.0:1076; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1077; GFX9-NEXT:    v_mov_b32_e32 v0, s161078; GFX9-NEXT:    v_mov_b32_e32 v1, s171079; GFX9-NEXT:    v_mov_b32_e32 v2, s181080; GFX9-NEXT:    v_mov_b32_e32 v3, s191081; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1082; GFX9-NEXT:    s_waitcnt vmcnt(0)1083; GFX9-NEXT:    s_setpc_b64 s[30:31]1084;1085; GFX11-LABEL: void_func_v2f64_inreg:1086; GFX11:       ; %bb.0:1087; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1088; GFX11-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s11089; GFX11-NEXT:    v_dual_mov_b32 v2, s2 :: v_dual_mov_b32 v3, s31090; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off1091; GFX11-NEXT:    s_setpc_b64 s[30:31]1092  store <2 x double> %arg0, ptr addrspace(1) poison1093  ret void1094}1095 1096define void @void_func_v3f64_inreg(<3 x double> inreg %arg0) #0 {1097; GFX9-LABEL: void_func_v3f64_inreg:1098; GFX9:       ; %bb.0:1099; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1100; GFX9-NEXT:    v_mov_b32_e32 v0, s201101; GFX9-NEXT:    v_mov_b32_e32 v1, s211102; GFX9-NEXT:    global_store_dwordx2 v[0:1], v[0:1], off1103; GFX9-NEXT:    v_mov_b32_e32 v0, s161104; GFX9-NEXT:    v_mov_b32_e32 v1, s171105; GFX9-NEXT:    v_mov_b32_e32 v2, s181106; GFX9-NEXT:    v_mov_b32_e32 v3, s191107; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1108; GFX9-NEXT:    s_waitcnt vmcnt(0)1109; GFX9-NEXT:    s_setpc_b64 s[30:31]1110;1111; GFX11-LABEL: void_func_v3f64_inreg:1112; GFX11:       ; %bb.0:1113; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1114; GFX11-NEXT:    v_dual_mov_b32 v4, s16 :: v_dual_mov_b32 v5, s171115; GFX11-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s11116; GFX11-NEXT:    v_dual_mov_b32 v2, s2 :: v_dual_mov_b32 v3, s31117; GFX11-NEXT:    s_clause 0x11118; GFX11-NEXT:    global_store_b64 v[0:1], v[4:5], off1119; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off1120; GFX11-NEXT:    s_setpc_b64 s[30:31]1121  store <3 x double> %arg0, ptr addrspace(1) poison1122  ret void1123}1124 1125define void @void_func_v4f64_inreg(<4 x double> inreg %arg0) #0 {1126; GFX9-LABEL: void_func_v4f64_inreg:1127; GFX9:       ; %bb.0:1128; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1129; GFX9-NEXT:    v_mov_b32_e32 v0, s201130; GFX9-NEXT:    v_mov_b32_e32 v1, s211131; GFX9-NEXT:    v_mov_b32_e32 v2, s221132; GFX9-NEXT:    v_mov_b32_e32 v3, s231133; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1134; GFX9-NEXT:    s_nop 01135; GFX9-NEXT:    v_mov_b32_e32 v0, s161136; GFX9-NEXT:    v_mov_b32_e32 v1, s171137; GFX9-NEXT:    v_mov_b32_e32 v2, s181138; GFX9-NEXT:    v_mov_b32_e32 v3, s191139; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1140; GFX9-NEXT:    s_waitcnt vmcnt(0)1141; GFX9-NEXT:    s_setpc_b64 s[30:31]1142;1143; GFX11-LABEL: void_func_v4f64_inreg:1144; GFX11:       ; %bb.0:1145; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1146; GFX11-NEXT:    v_dual_mov_b32 v0, s16 :: v_dual_mov_b32 v1, s171147; GFX11-NEXT:    v_dual_mov_b32 v2, s18 :: v_dual_mov_b32 v3, s191148; GFX11-NEXT:    v_dual_mov_b32 v4, s0 :: v_dual_mov_b32 v5, s11149; GFX11-NEXT:    v_dual_mov_b32 v6, s2 :: v_dual_mov_b32 v7, s31150; GFX11-NEXT:    s_clause 0x11151; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off1152; GFX11-NEXT:    global_store_b128 v[0:1], v[4:7], off1153; GFX11-NEXT:    s_setpc_b64 s[30:31]1154  store <4 x double> %arg0, ptr addrspace(1) poison1155  ret void1156}1157 1158define void @void_func_v8f64_inreg(<8 x double> inreg %arg0) #0 {1159; GFX9-LABEL: void_func_v8f64_inreg:1160; GFX9:       ; %bb.0:1161; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1162; GFX9-NEXT:    v_mov_b32_e32 v3, v11163; GFX9-NEXT:    v_mov_b32_e32 v2, v01164; GFX9-NEXT:    v_mov_b32_e32 v0, s281165; GFX9-NEXT:    v_mov_b32_e32 v1, s291166; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1167; GFX9-NEXT:    s_nop 01168; GFX9-NEXT:    v_mov_b32_e32 v0, s241169; GFX9-NEXT:    v_mov_b32_e32 v1, s251170; GFX9-NEXT:    v_mov_b32_e32 v2, s261171; GFX9-NEXT:    v_mov_b32_e32 v3, s271172; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1173; GFX9-NEXT:    s_nop 01174; GFX9-NEXT:    v_mov_b32_e32 v0, s201175; GFX9-NEXT:    v_mov_b32_e32 v1, s211176; GFX9-NEXT:    v_mov_b32_e32 v2, s221177; GFX9-NEXT:    v_mov_b32_e32 v3, s231178; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1179; GFX9-NEXT:    s_nop 01180; GFX9-NEXT:    v_mov_b32_e32 v0, s161181; GFX9-NEXT:    v_mov_b32_e32 v1, s171182; GFX9-NEXT:    v_mov_b32_e32 v2, s181183; GFX9-NEXT:    v_mov_b32_e32 v3, s191184; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1185; GFX9-NEXT:    s_waitcnt vmcnt(0)1186; GFX9-NEXT:    s_setpc_b64 s[30:31]1187;1188; GFX11-LABEL: void_func_v8f64_inreg:1189; GFX11:       ; %bb.0:1190; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1191; GFX11-NEXT:    v_dual_mov_b32 v0, s24 :: v_dual_mov_b32 v1, s251192; GFX11-NEXT:    v_dual_mov_b32 v2, s26 :: v_dual_mov_b32 v3, s271193; GFX11-NEXT:    v_dual_mov_b32 v4, s20 :: v_dual_mov_b32 v5, s211194; GFX11-NEXT:    v_dual_mov_b32 v6, s22 :: v_dual_mov_b32 v7, s231195; GFX11-NEXT:    v_dual_mov_b32 v8, s16 :: v_dual_mov_b32 v9, s171196; GFX11-NEXT:    v_dual_mov_b32 v10, s18 :: v_dual_mov_b32 v11, s191197; GFX11-NEXT:    v_dual_mov_b32 v12, s0 :: v_dual_mov_b32 v13, s11198; GFX11-NEXT:    v_dual_mov_b32 v14, s2 :: v_dual_mov_b32 v15, s31199; GFX11-NEXT:    s_clause 0x31200; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off1201; GFX11-NEXT:    global_store_b128 v[0:1], v[4:7], off1202; GFX11-NEXT:    global_store_b128 v[0:1], v[8:11], off1203; GFX11-NEXT:    global_store_b128 v[0:1], v[12:15], off1204; GFX11-NEXT:    s_setpc_b64 s[30:31]1205  store <8 x double> %arg0, ptr addrspace(1) poison1206  ret void1207}1208 1209define void @void_func_v16f64_inreg(<16 x double> inreg %arg0) #0 {1210; GFX9-LABEL: void_func_v16f64_inreg:1211; GFX9:       ; %bb.0:1212; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1213; GFX9-NEXT:    v_mov_b32_e32 v19, v11214; GFX9-NEXT:    v_mov_b32_e32 v18, v01215; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[14:17], off1216; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[10:13], off1217; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[6:9], off1218; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[2:5], off1219; GFX9-NEXT:    v_mov_b32_e32 v16, s281220; GFX9-NEXT:    v_mov_b32_e32 v17, s291221; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[16:19], off1222; GFX9-NEXT:    v_mov_b32_e32 v0, s241223; GFX9-NEXT:    v_mov_b32_e32 v1, s251224; GFX9-NEXT:    v_mov_b32_e32 v2, s261225; GFX9-NEXT:    v_mov_b32_e32 v3, s271226; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1227; GFX9-NEXT:    s_nop 01228; GFX9-NEXT:    v_mov_b32_e32 v0, s201229; GFX9-NEXT:    v_mov_b32_e32 v1, s211230; GFX9-NEXT:    v_mov_b32_e32 v2, s221231; GFX9-NEXT:    v_mov_b32_e32 v3, s231232; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1233; GFX9-NEXT:    s_nop 01234; GFX9-NEXT:    v_mov_b32_e32 v0, s161235; GFX9-NEXT:    v_mov_b32_e32 v1, s171236; GFX9-NEXT:    v_mov_b32_e32 v2, s181237; GFX9-NEXT:    v_mov_b32_e32 v3, s191238; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1239; GFX9-NEXT:    s_waitcnt vmcnt(0)1240; GFX9-NEXT:    s_setpc_b64 s[30:31]1241;1242; GFX11-LABEL: void_func_v16f64_inreg:1243; GFX11:       ; %bb.0:1244; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1245; GFX11-NEXT:    v_dual_mov_b32 v15, v1 :: v_dual_mov_b32 v14, v01246; GFX11-NEXT:    s_clause 0x21247; GFX11-NEXT:    global_store_b128 v[0:1], v[10:13], off1248; GFX11-NEXT:    global_store_b128 v[0:1], v[6:9], off1249; GFX11-NEXT:    global_store_b128 v[0:1], v[2:5], off1250; GFX11-NEXT:    v_dual_mov_b32 v12, s28 :: v_dual_mov_b32 v13, s291251; GFX11-NEXT:    v_dual_mov_b32 v0, s24 :: v_dual_mov_b32 v1, s251252; GFX11-NEXT:    v_dual_mov_b32 v2, s26 :: v_dual_mov_b32 v3, s271253; GFX11-NEXT:    v_dual_mov_b32 v4, s20 :: v_dual_mov_b32 v5, s211254; GFX11-NEXT:    v_dual_mov_b32 v6, s22 :: v_dual_mov_b32 v7, s231255; GFX11-NEXT:    v_dual_mov_b32 v8, s16 :: v_dual_mov_b32 v9, s171256; GFX11-NEXT:    v_dual_mov_b32 v10, s18 :: v_dual_mov_b32 v11, s191257; GFX11-NEXT:    v_dual_mov_b32 v16, s0 :: v_dual_mov_b32 v17, s11258; GFX11-NEXT:    v_dual_mov_b32 v18, s2 :: v_dual_mov_b32 v19, s31259; GFX11-NEXT:    s_clause 0x41260; GFX11-NEXT:    global_store_b128 v[0:1], v[12:15], off1261; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off1262; GFX11-NEXT:    global_store_b128 v[0:1], v[4:7], off1263; GFX11-NEXT:    global_store_b128 v[0:1], v[8:11], off1264; GFX11-NEXT:    global_store_b128 v[0:1], v[16:19], off1265; GFX11-NEXT:    s_setpc_b64 s[30:31]1266  store <16 x double> %arg0, ptr addrspace(1) poison1267  ret void1268}1269 1270define void @void_func_v32i32_i1_i8_i16_f32_inreg(<32 x i32> inreg %arg0, i1 inreg %arg1, i8 inreg %arg2, i16 inreg %arg3, half inreg %arg4) #0 {1271; GFX9-LABEL: void_func_v32i32_i1_i8_i16_f32_inreg:1272; GFX9:       ; %bb.0:1273; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1274; GFX9-NEXT:    v_mov_b32_e32 v25, v11275; GFX9-NEXT:    v_mov_b32_e32 v24, v01276; GFX9-NEXT:    v_mov_b32_e32 v22, s281277; GFX9-NEXT:    v_mov_b32_e32 v23, s291278; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[14:17], off1279; GFX9-NEXT:    s_waitcnt vmcnt(0)1280; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[10:13], off1281; GFX9-NEXT:    s_waitcnt vmcnt(0)1282; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[6:9], off1283; GFX9-NEXT:    s_waitcnt vmcnt(0)1284; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[2:5], off1285; GFX9-NEXT:    s_waitcnt vmcnt(0)1286; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[22:25], off1287; GFX9-NEXT:    s_waitcnt vmcnt(0)1288; GFX9-NEXT:    v_mov_b32_e32 v0, s241289; GFX9-NEXT:    v_mov_b32_e32 v1, s251290; GFX9-NEXT:    v_mov_b32_e32 v2, s261291; GFX9-NEXT:    v_mov_b32_e32 v3, s271292; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1293; GFX9-NEXT:    s_waitcnt vmcnt(0)1294; GFX9-NEXT:    v_mov_b32_e32 v0, s201295; GFX9-NEXT:    v_mov_b32_e32 v1, s211296; GFX9-NEXT:    v_mov_b32_e32 v2, s221297; GFX9-NEXT:    v_mov_b32_e32 v3, s231298; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1299; GFX9-NEXT:    s_waitcnt vmcnt(0)1300; GFX9-NEXT:    v_mov_b32_e32 v0, s161301; GFX9-NEXT:    v_mov_b32_e32 v1, s171302; GFX9-NEXT:    v_mov_b32_e32 v2, s181303; GFX9-NEXT:    v_mov_b32_e32 v3, s191304; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1305; GFX9-NEXT:    s_waitcnt vmcnt(0)1306; GFX9-NEXT:    v_and_b32_e32 v0, 1, v181307; GFX9-NEXT:    global_store_byte v[0:1], v0, off1308; GFX9-NEXT:    s_waitcnt vmcnt(0)1309; GFX9-NEXT:    global_store_byte v[0:1], v19, off1310; GFX9-NEXT:    s_waitcnt vmcnt(0)1311; GFX9-NEXT:    global_store_short v[0:1], v20, off1312; GFX9-NEXT:    s_waitcnt vmcnt(0)1313; GFX9-NEXT:    global_store_short v[0:1], v21, off1314; GFX9-NEXT:    s_waitcnt vmcnt(0)1315; GFX9-NEXT:    s_setpc_b64 s[30:31]1316;1317; GFX11-TRUE16-LABEL: void_func_v32i32_i1_i8_i16_f32_inreg:1318; GFX11-TRUE16:       ; %bb.0:1319; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1320; GFX11-TRUE16-NEXT:    v_dual_mov_b32 v21, v1 :: v_dual_mov_b32 v20, v01321; GFX11-TRUE16-NEXT:    v_dual_mov_b32 v18, s28 :: v_dual_mov_b32 v19, s291322; GFX11-TRUE16-NEXT:    global_store_b128 v[0:1], v[10:13], off dlc1323; GFX11-TRUE16-NEXT:    s_waitcnt_vscnt null, 0x01324; GFX11-TRUE16-NEXT:    global_store_b128 v[0:1], v[6:9], off dlc1325; GFX11-TRUE16-NEXT:    s_waitcnt_vscnt null, 0x01326; GFX11-TRUE16-NEXT:    v_dual_mov_b32 v6, s24 :: v_dual_mov_b32 v7, s251327; GFX11-TRUE16-NEXT:    v_dual_mov_b32 v8, s26 :: v_dual_mov_b32 v9, s271328; GFX11-TRUE16-NEXT:    v_dual_mov_b32 v10, s20 :: v_dual_mov_b32 v11, s211329; GFX11-TRUE16-NEXT:    v_dual_mov_b32 v12, s22 :: v_dual_mov_b32 v13, s231330; GFX11-TRUE16-NEXT:    v_dual_mov_b32 v22, s16 :: v_dual_mov_b32 v23, s171331; GFX11-TRUE16-NEXT:    v_dual_mov_b32 v24, s18 :: v_dual_mov_b32 v25, s191332; GFX11-TRUE16-NEXT:    global_store_b128 v[0:1], v[2:5], off dlc1333; GFX11-TRUE16-NEXT:    s_waitcnt_vscnt null, 0x01334; GFX11-TRUE16-NEXT:    global_store_b128 v[0:1], v[18:21], off dlc1335; GFX11-TRUE16-NEXT:    s_waitcnt_vscnt null, 0x01336; GFX11-TRUE16-NEXT:    global_store_b128 v[0:1], v[6:9], off dlc1337; GFX11-TRUE16-NEXT:    s_waitcnt_vscnt null, 0x01338; GFX11-TRUE16-NEXT:    global_store_b128 v[0:1], v[10:13], off dlc1339; GFX11-TRUE16-NEXT:    s_waitcnt_vscnt null, 0x01340; GFX11-TRUE16-NEXT:    global_store_b128 v[0:1], v[22:25], off dlc1341; GFX11-TRUE16-NEXT:    s_waitcnt_vscnt null, 0x01342; GFX11-TRUE16-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s11343; GFX11-TRUE16-NEXT:    v_dual_mov_b32 v2, s2 :: v_dual_mov_b32 v3, s31344; GFX11-TRUE16-NEXT:    v_and_b32_e32 v4, 1, v141345; GFX11-TRUE16-NEXT:    global_store_b128 v[0:1], v[0:3], off dlc1346; GFX11-TRUE16-NEXT:    s_waitcnt_vscnt null, 0x01347; GFX11-TRUE16-NEXT:    global_store_b8 v[0:1], v4, off dlc1348; GFX11-TRUE16-NEXT:    s_waitcnt_vscnt null, 0x01349; GFX11-TRUE16-NEXT:    global_store_b8 v[0:1], v15, off dlc1350; GFX11-TRUE16-NEXT:    s_waitcnt_vscnt null, 0x01351; GFX11-TRUE16-NEXT:    global_store_b16 v[0:1], v16, off dlc1352; GFX11-TRUE16-NEXT:    s_waitcnt_vscnt null, 0x01353; GFX11-TRUE16-NEXT:    global_store_b16 v[0:1], v17, off dlc1354; GFX11-TRUE16-NEXT:    s_waitcnt_vscnt null, 0x01355; GFX11-TRUE16-NEXT:    s_setpc_b64 s[30:31]1356;1357; GFX11-FAKE16-LABEL: void_func_v32i32_i1_i8_i16_f32_inreg:1358; GFX11-FAKE16:       ; %bb.0:1359; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1360; GFX11-FAKE16-NEXT:    v_dual_mov_b32 v21, v1 :: v_dual_mov_b32 v20, v01361; GFX11-FAKE16-NEXT:    v_dual_mov_b32 v18, s28 :: v_dual_mov_b32 v19, s291362; GFX11-FAKE16-NEXT:    global_store_b128 v[0:1], v[10:13], off dlc1363; GFX11-FAKE16-NEXT:    s_waitcnt_vscnt null, 0x01364; GFX11-FAKE16-NEXT:    global_store_b128 v[0:1], v[6:9], off dlc1365; GFX11-FAKE16-NEXT:    s_waitcnt_vscnt null, 0x01366; GFX11-FAKE16-NEXT:    global_store_b128 v[0:1], v[2:5], off dlc1367; GFX11-FAKE16-NEXT:    s_waitcnt_vscnt null, 0x01368; GFX11-FAKE16-NEXT:    global_store_b128 v[0:1], v[18:21], off dlc1369; GFX11-FAKE16-NEXT:    s_waitcnt_vscnt null, 0x01370; GFX11-FAKE16-NEXT:    v_dual_mov_b32 v0, s24 :: v_dual_mov_b32 v1, s251371; GFX11-FAKE16-NEXT:    v_dual_mov_b32 v2, s26 :: v_dual_mov_b32 v3, s271372; GFX11-FAKE16-NEXT:    v_dual_mov_b32 v4, s20 :: v_dual_mov_b32 v5, s211373; GFX11-FAKE16-NEXT:    v_dual_mov_b32 v6, s22 :: v_dual_mov_b32 v7, s231374; GFX11-FAKE16-NEXT:    v_dual_mov_b32 v8, s16 :: v_dual_mov_b32 v9, s171375; GFX11-FAKE16-NEXT:    v_dual_mov_b32 v10, s18 :: v_dual_mov_b32 v11, s191376; GFX11-FAKE16-NEXT:    v_dual_mov_b32 v18, s0 :: v_dual_mov_b32 v19, s11377; GFX11-FAKE16-NEXT:    v_dual_mov_b32 v20, s2 :: v_dual_mov_b32 v21, s31378; GFX11-FAKE16-NEXT:    v_and_b32_e32 v12, 1, v141379; GFX11-FAKE16-NEXT:    global_store_b128 v[0:1], v[0:3], off dlc1380; GFX11-FAKE16-NEXT:    s_waitcnt_vscnt null, 0x01381; GFX11-FAKE16-NEXT:    global_store_b128 v[0:1], v[4:7], off dlc1382; GFX11-FAKE16-NEXT:    s_waitcnt_vscnt null, 0x01383; GFX11-FAKE16-NEXT:    global_store_b128 v[0:1], v[8:11], off dlc1384; GFX11-FAKE16-NEXT:    s_waitcnt_vscnt null, 0x01385; GFX11-FAKE16-NEXT:    global_store_b128 v[0:1], v[18:21], off dlc1386; GFX11-FAKE16-NEXT:    s_waitcnt_vscnt null, 0x01387; GFX11-FAKE16-NEXT:    global_store_b8 v[0:1], v12, off dlc1388; GFX11-FAKE16-NEXT:    s_waitcnt_vscnt null, 0x01389; GFX11-FAKE16-NEXT:    global_store_b8 v[0:1], v15, off dlc1390; GFX11-FAKE16-NEXT:    s_waitcnt_vscnt null, 0x01391; GFX11-FAKE16-NEXT:    global_store_b16 v[0:1], v16, off dlc1392; GFX11-FAKE16-NEXT:    s_waitcnt_vscnt null, 0x01393; GFX11-FAKE16-NEXT:    global_store_b16 v[0:1], v17, off dlc1394; GFX11-FAKE16-NEXT:    s_waitcnt_vscnt null, 0x01395; GFX11-FAKE16-NEXT:    s_setpc_b64 s[30:31]1396  store volatile <32 x i32> %arg0, ptr addrspace(1) poison1397  store volatile i1 %arg1, ptr addrspace(1) poison1398  store volatile i8 %arg2, ptr addrspace(1) poison1399  store volatile i16 %arg3, ptr addrspace(1) poison1400  store volatile half %arg4, ptr addrspace(1) poison1401  ret void1402}1403 1404define void @void_func_v32i32_v2i32_v2f32_inreg(<32 x i32> inreg %arg0, <2 x i32> inreg %arg1, <2 x float> inreg %arg2) #0 {1405; GFX9-LABEL: void_func_v32i32_v2i32_v2f32_inreg:1406; GFX9:       ; %bb.0:1407; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1408; GFX9-NEXT:    v_mov_b32_e32 v25, v11409; GFX9-NEXT:    v_mov_b32_e32 v24, v01410; GFX9-NEXT:    v_mov_b32_e32 v22, s281411; GFX9-NEXT:    v_mov_b32_e32 v23, s291412; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[14:17], off1413; GFX9-NEXT:    s_waitcnt vmcnt(0)1414; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[10:13], off1415; GFX9-NEXT:    s_waitcnt vmcnt(0)1416; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[6:9], off1417; GFX9-NEXT:    s_waitcnt vmcnt(0)1418; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[2:5], off1419; GFX9-NEXT:    s_waitcnt vmcnt(0)1420; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[22:25], off1421; GFX9-NEXT:    s_waitcnt vmcnt(0)1422; GFX9-NEXT:    v_mov_b32_e32 v0, s241423; GFX9-NEXT:    v_mov_b32_e32 v1, s251424; GFX9-NEXT:    v_mov_b32_e32 v2, s261425; GFX9-NEXT:    v_mov_b32_e32 v3, s271426; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1427; GFX9-NEXT:    s_waitcnt vmcnt(0)1428; GFX9-NEXT:    v_mov_b32_e32 v0, s201429; GFX9-NEXT:    v_mov_b32_e32 v1, s211430; GFX9-NEXT:    v_mov_b32_e32 v2, s221431; GFX9-NEXT:    v_mov_b32_e32 v3, s231432; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1433; GFX9-NEXT:    s_waitcnt vmcnt(0)1434; GFX9-NEXT:    v_mov_b32_e32 v0, s161435; GFX9-NEXT:    v_mov_b32_e32 v1, s171436; GFX9-NEXT:    v_mov_b32_e32 v2, s181437; GFX9-NEXT:    v_mov_b32_e32 v3, s191438; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1439; GFX9-NEXT:    s_waitcnt vmcnt(0)1440; GFX9-NEXT:    global_store_dwordx2 v[0:1], v[18:19], off1441; GFX9-NEXT:    s_waitcnt vmcnt(0)1442; GFX9-NEXT:    global_store_dwordx2 v[0:1], v[20:21], off1443; GFX9-NEXT:    s_waitcnt vmcnt(0)1444; GFX9-NEXT:    s_setpc_b64 s[30:31]1445;1446; GFX11-LABEL: void_func_v32i32_v2i32_v2f32_inreg:1447; GFX11:       ; %bb.0:1448; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1449; GFX11-NEXT:    v_dual_mov_b32 v21, v1 :: v_dual_mov_b32 v20, v01450; GFX11-NEXT:    global_store_b128 v[0:1], v[10:13], off dlc1451; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01452; GFX11-NEXT:    global_store_b128 v[0:1], v[6:9], off dlc1453; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01454; GFX11-NEXT:    global_store_b128 v[0:1], v[2:5], off dlc1455; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01456; GFX11-NEXT:    v_dual_mov_b32 v18, s28 :: v_dual_mov_b32 v19, s291457; GFX11-NEXT:    v_dual_mov_b32 v0, s24 :: v_dual_mov_b32 v1, s251458; GFX11-NEXT:    v_dual_mov_b32 v2, s26 :: v_dual_mov_b32 v3, s271459; GFX11-NEXT:    v_dual_mov_b32 v4, s20 :: v_dual_mov_b32 v5, s211460; GFX11-NEXT:    v_dual_mov_b32 v6, s22 :: v_dual_mov_b32 v7, s231461; GFX11-NEXT:    v_dual_mov_b32 v8, s16 :: v_dual_mov_b32 v9, s171462; GFX11-NEXT:    v_dual_mov_b32 v10, s18 :: v_dual_mov_b32 v11, s191463; GFX11-NEXT:    v_dual_mov_b32 v22, s0 :: v_dual_mov_b32 v23, s11464; GFX11-NEXT:    v_dual_mov_b32 v24, s2 :: v_dual_mov_b32 v25, s31465; GFX11-NEXT:    global_store_b128 v[0:1], v[18:21], off dlc1466; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01467; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off dlc1468; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01469; GFX11-NEXT:    global_store_b128 v[0:1], v[4:7], off dlc1470; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01471; GFX11-NEXT:    global_store_b128 v[0:1], v[8:11], off dlc1472; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01473; GFX11-NEXT:    global_store_b128 v[0:1], v[22:25], off dlc1474; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01475; GFX11-NEXT:    global_store_b64 v[0:1], v[14:15], off dlc1476; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01477; GFX11-NEXT:    global_store_b64 v[0:1], v[16:17], off dlc1478; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01479; GFX11-NEXT:    s_setpc_b64 s[30:31]1480  store volatile <32 x i32> %arg0, ptr addrspace(1) poison1481  store volatile <2 x i32> %arg1, ptr addrspace(1) poison1482  store volatile <2 x float> %arg2, ptr addrspace(1) poison1483  ret void1484}1485 1486define void @too_many_args_use_workitem_id_x_inreg(1487; GFX9-LABEL: too_many_args_use_workitem_id_x_inreg:1488; GFX9:       ; %bb.0:1489; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1490; GFX9-NEXT:    v_mov_b32_e32 v18, s161491; GFX9-NEXT:    global_store_dword v[0:1], v18, off1492; GFX9-NEXT:    s_waitcnt vmcnt(0)1493; GFX9-NEXT:    v_mov_b32_e32 v18, s171494; GFX9-NEXT:    global_store_dword v[0:1], v18, off1495; GFX9-NEXT:    s_waitcnt vmcnt(0)1496; GFX9-NEXT:    v_mov_b32_e32 v18, s181497; GFX9-NEXT:    global_store_dword v[0:1], v18, off1498; GFX9-NEXT:    s_waitcnt vmcnt(0)1499; GFX9-NEXT:    v_mov_b32_e32 v18, s191500; GFX9-NEXT:    global_store_dword v[0:1], v18, off1501; GFX9-NEXT:    s_waitcnt vmcnt(0)1502; GFX9-NEXT:    v_mov_b32_e32 v18, s201503; GFX9-NEXT:    global_store_dword v[0:1], v18, off1504; GFX9-NEXT:    s_waitcnt vmcnt(0)1505; GFX9-NEXT:    v_mov_b32_e32 v18, s211506; GFX9-NEXT:    global_store_dword v[0:1], v18, off1507; GFX9-NEXT:    s_waitcnt vmcnt(0)1508; GFX9-NEXT:    v_mov_b32_e32 v18, s221509; GFX9-NEXT:    global_store_dword v[0:1], v18, off1510; GFX9-NEXT:    s_waitcnt vmcnt(0)1511; GFX9-NEXT:    v_mov_b32_e32 v18, s231512; GFX9-NEXT:    global_store_dword v[0:1], v18, off1513; GFX9-NEXT:    s_waitcnt vmcnt(0)1514; GFX9-NEXT:    v_mov_b32_e32 v18, s241515; GFX9-NEXT:    global_store_dword v[0:1], v18, off1516; GFX9-NEXT:    s_waitcnt vmcnt(0)1517; GFX9-NEXT:    v_mov_b32_e32 v18, s251518; GFX9-NEXT:    global_store_dword v[0:1], v18, off1519; GFX9-NEXT:    s_waitcnt vmcnt(0)1520; GFX9-NEXT:    v_mov_b32_e32 v18, s261521; GFX9-NEXT:    global_store_dword v[0:1], v18, off1522; GFX9-NEXT:    s_waitcnt vmcnt(0)1523; GFX9-NEXT:    v_mov_b32_e32 v18, s271524; GFX9-NEXT:    global_store_dword v[0:1], v18, off1525; GFX9-NEXT:    s_waitcnt vmcnt(0)1526; GFX9-NEXT:    v_mov_b32_e32 v18, s281527; GFX9-NEXT:    global_store_dword v[0:1], v18, off1528; GFX9-NEXT:    s_waitcnt vmcnt(0)1529; GFX9-NEXT:    v_mov_b32_e32 v18, s291530; GFX9-NEXT:    global_store_dword v[0:1], v18, off1531; GFX9-NEXT:    s_waitcnt vmcnt(0)1532; GFX9-NEXT:    global_store_dword v[0:1], v0, off1533; GFX9-NEXT:    s_waitcnt vmcnt(0)1534; GFX9-NEXT:    global_store_dword v[0:1], v1, off1535; GFX9-NEXT:    s_waitcnt vmcnt(0)1536; GFX9-NEXT:    global_store_dword v[0:1], v2, off1537; GFX9-NEXT:    s_waitcnt vmcnt(0)1538; GFX9-NEXT:    global_store_dword v[0:1], v3, off1539; GFX9-NEXT:    s_waitcnt vmcnt(0)1540; GFX9-NEXT:    global_store_dword v[0:1], v4, off1541; GFX9-NEXT:    s_waitcnt vmcnt(0)1542; GFX9-NEXT:    global_store_dword v[0:1], v5, off1543; GFX9-NEXT:    s_waitcnt vmcnt(0)1544; GFX9-NEXT:    global_store_dword v[0:1], v6, off1545; GFX9-NEXT:    s_waitcnt vmcnt(0)1546; GFX9-NEXT:    global_store_dword v[0:1], v7, off1547; GFX9-NEXT:    s_waitcnt vmcnt(0)1548; GFX9-NEXT:    global_store_dword v[0:1], v8, off1549; GFX9-NEXT:    s_waitcnt vmcnt(0)1550; GFX9-NEXT:    global_store_dword v[0:1], v9, off1551; GFX9-NEXT:    s_waitcnt vmcnt(0)1552; GFX9-NEXT:    global_store_dword v[0:1], v10, off1553; GFX9-NEXT:    s_waitcnt vmcnt(0)1554; GFX9-NEXT:    global_store_dword v[0:1], v11, off1555; GFX9-NEXT:    s_waitcnt vmcnt(0)1556; GFX9-NEXT:    global_store_dword v[0:1], v12, off1557; GFX9-NEXT:    s_waitcnt vmcnt(0)1558; GFX9-NEXT:    global_store_dword v[0:1], v13, off1559; GFX9-NEXT:    s_waitcnt vmcnt(0)1560; GFX9-NEXT:    global_store_dword v[0:1], v14, off1561; GFX9-NEXT:    s_waitcnt vmcnt(0)1562; GFX9-NEXT:    global_store_dword v[0:1], v15, off1563; GFX9-NEXT:    s_waitcnt vmcnt(0)1564; GFX9-NEXT:    global_store_dword v[0:1], v16, off1565; GFX9-NEXT:    s_waitcnt vmcnt(0)1566; GFX9-NEXT:    global_store_dword v[0:1], v17, off1567; GFX9-NEXT:    s_waitcnt vmcnt(0)1568; GFX9-NEXT:    s_setpc_b64 s[30:31]1569;1570; GFX11-LABEL: too_many_args_use_workitem_id_x_inreg:1571; GFX11:       ; %bb.0:1572; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1573; GFX11-NEXT:    v_dual_mov_b32 v14, s0 :: v_dual_mov_b32 v15, s11574; GFX11-NEXT:    v_mov_b32_e32 v16, s21575; GFX11-NEXT:    v_mov_b32_e32 v18, s191576; GFX11-NEXT:    global_store_b32 v[0:1], v14, off dlc1577; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01578; GFX11-NEXT:    global_store_b32 v[0:1], v15, off dlc1579; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01580; GFX11-NEXT:    global_store_b32 v[0:1], v16, off dlc1581; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01582; GFX11-NEXT:    v_dual_mov_b32 v14, s3 :: v_dual_mov_b32 v17, s181583; GFX11-NEXT:    v_dual_mov_b32 v15, s16 :: v_dual_mov_b32 v16, s171584; GFX11-NEXT:    global_store_b32 v[0:1], v14, off dlc1585; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01586; GFX11-NEXT:    global_store_b32 v[0:1], v15, off dlc1587; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01588; GFX11-NEXT:    global_store_b32 v[0:1], v16, off dlc1589; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01590; GFX11-NEXT:    global_store_b32 v[0:1], v17, off dlc1591; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01592; GFX11-NEXT:    global_store_b32 v[0:1], v18, off dlc1593; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01594; GFX11-NEXT:    v_dual_mov_b32 v14, s20 :: v_dual_mov_b32 v15, s211595; GFX11-NEXT:    v_dual_mov_b32 v16, s22 :: v_dual_mov_b32 v17, s231596; GFX11-NEXT:    v_mov_b32_e32 v18, s241597; GFX11-NEXT:    global_store_b32 v[0:1], v14, off dlc1598; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01599; GFX11-NEXT:    global_store_b32 v[0:1], v15, off dlc1600; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01601; GFX11-NEXT:    global_store_b32 v[0:1], v16, off dlc1602; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01603; GFX11-NEXT:    global_store_b32 v[0:1], v17, off dlc1604; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01605; GFX11-NEXT:    global_store_b32 v[0:1], v18, off dlc1606; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01607; GFX11-NEXT:    v_dual_mov_b32 v14, s25 :: v_dual_mov_b32 v15, s261608; GFX11-NEXT:    v_dual_mov_b32 v16, s27 :: v_dual_mov_b32 v17, s281609; GFX11-NEXT:    v_mov_b32_e32 v18, s291610; GFX11-NEXT:    global_store_b32 v[0:1], v14, off dlc1611; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01612; GFX11-NEXT:    global_store_b32 v[0:1], v15, off dlc1613; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01614; GFX11-NEXT:    global_store_b32 v[0:1], v16, off dlc1615; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01616; GFX11-NEXT:    global_store_b32 v[0:1], v17, off dlc1617; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01618; GFX11-NEXT:    global_store_b32 v[0:1], v18, off dlc1619; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01620; GFX11-NEXT:    global_store_b32 v[0:1], v0, off dlc1621; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01622; GFX11-NEXT:    global_store_b32 v[0:1], v1, off dlc1623; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01624; GFX11-NEXT:    global_store_b32 v[0:1], v2, off dlc1625; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01626; GFX11-NEXT:    global_store_b32 v[0:1], v3, off dlc1627; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01628; GFX11-NEXT:    global_store_b32 v[0:1], v4, off dlc1629; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01630; GFX11-NEXT:    global_store_b32 v[0:1], v5, off dlc1631; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01632; GFX11-NEXT:    global_store_b32 v[0:1], v6, off dlc1633; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01634; GFX11-NEXT:    global_store_b32 v[0:1], v7, off dlc1635; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01636; GFX11-NEXT:    global_store_b32 v[0:1], v8, off dlc1637; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01638; GFX11-NEXT:    global_store_b32 v[0:1], v9, off dlc1639; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01640; GFX11-NEXT:    global_store_b32 v[0:1], v10, off dlc1641; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01642; GFX11-NEXT:    global_store_b32 v[0:1], v11, off dlc1643; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01644; GFX11-NEXT:    global_store_b32 v[0:1], v12, off dlc1645; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01646; GFX11-NEXT:    global_store_b32 v[0:1], v13, off dlc1647; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01648; GFX11-NEXT:    s_setpc_b64 s[30:31]1649  i32 inreg %arg0, i32 inreg %arg1, i32 inreg %arg2, i32 inreg %arg3, i32 inreg %arg4, i32 inreg %arg5, i32 inreg %arg6, i32 inreg %arg7,1650  i32 inreg %arg8, i32 inreg %arg9, i32 inreg %arg10, i32 inreg %arg11, i32 inreg %arg12, i32 inreg %arg13, i32 inreg %arg14, i32 inreg %arg15,1651  i32 inreg %arg16, i32 inreg %arg17, i32 inreg %arg18, i32 inreg %arg19, i32 inreg %arg20, i32 inreg %arg21, i32 inreg %arg22, i32 inreg %arg23,1652  i32 inreg %arg24, i32 inreg %arg25, i32 inreg %arg26, i32 inreg %arg27, i32 inreg %arg28, i32 inreg %arg29, i32 inreg %arg30, i32 inreg %arg31) {1653  ;%val = call i32 @llvm.amdgcn.workitem.id.x()1654  ;store volatile i32 %val, ptr addrspace(1) poison1655 1656  store volatile i32 %arg0, ptr addrspace(1) poison1657  store volatile i32 %arg1, ptr addrspace(1) poison1658  store volatile i32 %arg2, ptr addrspace(1) poison1659  store volatile i32 %arg3, ptr addrspace(1) poison1660  store volatile i32 %arg4, ptr addrspace(1) poison1661  store volatile i32 %arg5, ptr addrspace(1) poison1662  store volatile i32 %arg6, ptr addrspace(1) poison1663  store volatile i32 %arg7, ptr addrspace(1) poison1664 1665  store volatile i32 %arg8, ptr addrspace(1) poison1666  store volatile i32 %arg9, ptr addrspace(1) poison1667  store volatile i32 %arg10, ptr addrspace(1) poison1668  store volatile i32 %arg11, ptr addrspace(1) poison1669  store volatile i32 %arg12, ptr addrspace(1) poison1670  store volatile i32 %arg13, ptr addrspace(1) poison1671  store volatile i32 %arg14, ptr addrspace(1) poison1672  store volatile i32 %arg15, ptr addrspace(1) poison1673 1674  store volatile i32 %arg16, ptr addrspace(1) poison1675  store volatile i32 %arg17, ptr addrspace(1) poison1676  store volatile i32 %arg18, ptr addrspace(1) poison1677  store volatile i32 %arg19, ptr addrspace(1) poison1678  store volatile i32 %arg20, ptr addrspace(1) poison1679  store volatile i32 %arg21, ptr addrspace(1) poison1680  store volatile i32 %arg22, ptr addrspace(1) poison1681  store volatile i32 %arg23, ptr addrspace(1) poison1682 1683  store volatile i32 %arg24, ptr addrspace(1) poison1684  store volatile i32 %arg25, ptr addrspace(1) poison1685  store volatile i32 %arg26, ptr addrspace(1) poison1686  store volatile i32 %arg27, ptr addrspace(1) poison1687  store volatile i32 %arg28, ptr addrspace(1) poison1688  store volatile i32 %arg29, ptr addrspace(1) poison1689  store volatile i32 %arg30, ptr addrspace(1) poison1690  store volatile i32 %arg31, ptr addrspace(1) poison1691 1692  ret void1693}1694 1695define void @void_func_i32_v2float_inreg(i32 inreg %arg0, <2 x float> inreg %arg1) #0 {1696; GFX9-LABEL: void_func_i32_v2float_inreg:1697; GFX9:       ; %bb.0:1698; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1699; GFX9-NEXT:    v_mov_b32_e32 v0, s161700; GFX9-NEXT:    global_store_dword v[0:1], v0, off1701; GFX9-NEXT:    v_mov_b32_e32 v0, s171702; GFX9-NEXT:    v_mov_b32_e32 v1, s181703; GFX9-NEXT:    global_store_dwordx2 v[0:1], v[0:1], off1704; GFX9-NEXT:    s_waitcnt vmcnt(0)1705; GFX9-NEXT:    s_setpc_b64 s[30:31]1706;1707; GFX11-LABEL: void_func_i32_v2float_inreg:1708; GFX11:       ; %bb.0:1709; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1710; GFX11-NEXT:    v_dual_mov_b32 v2, s0 :: v_dual_mov_b32 v1, s21711; GFX11-NEXT:    v_mov_b32_e32 v0, s11712; GFX11-NEXT:    s_clause 0x11713; GFX11-NEXT:    global_store_b32 v[0:1], v2, off1714; GFX11-NEXT:    global_store_b64 v[0:1], v[0:1], off1715; GFX11-NEXT:    s_setpc_b64 s[30:31]1716  store i32 %arg0, ptr addrspace(1) poison1717  store <2 x float> %arg1, ptr addrspace(1) poison1718  ret void1719}1720 1721define void @caller_void_func_i32_v2float_inreg(i32 inreg %arg0, <2 x float> inreg %arg1) #0 {1722; GFX9-LABEL: caller_void_func_i32_v2float_inreg:1723; GFX9:       ; %bb.0:1724; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1725; GFX9-NEXT:    s_mov_b32 s19, s331726; GFX9-NEXT:    s_mov_b32 s33, s321727; GFX9-NEXT:    s_or_saveexec_b64 s[20:21], -11728; GFX9-NEXT:    buffer_store_dword v40, off, s[0:3], s33 ; 4-byte Folded Spill1729; GFX9-NEXT:    s_mov_b64 exec, s[20:21]1730; GFX9-NEXT:    s_addk_i32 s32, 0x4001731; GFX9-NEXT:    s_getpc_b64 s[20:21]1732; GFX9-NEXT:    s_add_u32 s20, s20, caller_void_func_i32_v2float_inreg@gotpcrel32@lo+41733; GFX9-NEXT:    s_addc_u32 s21, s21, caller_void_func_i32_v2float_inreg@gotpcrel32@hi+121734; GFX9-NEXT:    s_load_dwordx2 s[20:21], s[20:21], 0x01735; GFX9-NEXT:    v_writelane_b32 v40, s19, 21736; GFX9-NEXT:    v_writelane_b32 v40, s30, 01737; GFX9-NEXT:    s_mov_b32 s2, s181738; GFX9-NEXT:    s_mov_b32 s1, s171739; GFX9-NEXT:    s_mov_b32 s0, s161740; GFX9-NEXT:    v_writelane_b32 v40, s31, 11741; GFX9-NEXT:    s_waitcnt lgkmcnt(0)1742; GFX9-NEXT:    s_swappc_b64 s[30:31], s[20:21]1743; GFX9-NEXT:    v_readlane_b32 s31, v40, 11744; GFX9-NEXT:    v_readlane_b32 s30, v40, 01745; GFX9-NEXT:    s_mov_b32 s32, s331746; GFX9-NEXT:    v_readlane_b32 s4, v40, 21747; GFX9-NEXT:    s_or_saveexec_b64 s[6:7], -11748; GFX9-NEXT:    buffer_load_dword v40, off, s[0:3], s33 ; 4-byte Folded Reload1749; GFX9-NEXT:    s_mov_b64 exec, s[6:7]1750; GFX9-NEXT:    s_mov_b32 s33, s41751; GFX9-NEXT:    s_waitcnt vmcnt(0)1752; GFX9-NEXT:    s_setpc_b64 s[30:31]1753;1754; GFX11-LABEL: caller_void_func_i32_v2float_inreg:1755; GFX11:       ; %bb.0:1756; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1757; GFX11-NEXT:    s_mov_b32 s3, s331758; GFX11-NEXT:    s_mov_b32 s33, s321759; GFX11-NEXT:    s_or_saveexec_b32 s16, -11760; GFX11-NEXT:    scratch_store_b32 off, v40, s33 ; 4-byte Folded Spill1761; GFX11-NEXT:    s_mov_b32 exec_lo, s161762; GFX11-NEXT:    s_add_i32 s32, s32, 161763; GFX11-NEXT:    s_getpc_b64 s[16:17]1764; GFX11-NEXT:    s_add_u32 s16, s16, caller_void_func_i32_v2float_inreg@gotpcrel32@lo+41765; GFX11-NEXT:    s_addc_u32 s17, s17, caller_void_func_i32_v2float_inreg@gotpcrel32@hi+121766; GFX11-NEXT:    v_writelane_b32 v40, s3, 21767; GFX11-NEXT:    s_load_b64 s[16:17], s[16:17], 0x01768; GFX11-NEXT:    v_writelane_b32 v40, s30, 01769; GFX11-NEXT:    v_writelane_b32 v40, s31, 11770; GFX11-NEXT:    s_waitcnt lgkmcnt(0)1771; GFX11-NEXT:    s_swappc_b64 s[30:31], s[16:17]1772; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1)1773; GFX11-NEXT:    v_readlane_b32 s31, v40, 11774; GFX11-NEXT:    v_readlane_b32 s30, v40, 01775; GFX11-NEXT:    s_mov_b32 s32, s331776; GFX11-NEXT:    v_readlane_b32 s0, v40, 21777; GFX11-NEXT:    s_or_saveexec_b32 s1, -11778; GFX11-NEXT:    scratch_load_b32 v40, off, s33 ; 4-byte Folded Reload1779; GFX11-NEXT:    s_mov_b32 exec_lo, s11780; GFX11-NEXT:    s_mov_b32 s33, s01781; GFX11-NEXT:    s_waitcnt vmcnt(0)1782; GFX11-NEXT:    s_setpc_b64 s[30:31]1783; GFX11-NEXT  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1784; GFX11-NEXT  s_mov_b32 s3, s331785; GFX11-NEXT  s_mov_b32 s33, s321786; GFX11-NEXT  s_or_saveexec_b32 s4, -11787; GFX11-NEXT  scratch_store_b32 off, v40, s33         ; 4-byte Folded Spill1788; GFX11-NEXT  s_mov_b32 exec_lo, s41789; GFX11-NEXT  s_add_i32 s32, s32, 161790; GFX11-NEXT  s_getpc_b64 s[4:5]1791; GFX11-NEXT  s_add_u32 s4, s4, caller_void_func_i32_v2float_inreg@gotpcrel32@lo+41792; GFX11-NEXT  s_addc_u32 s5, s5, caller_void_func_i32_v2float_inreg@gotpcrel32@hi+121793; GFX11-NEXT  v_writelane_b32 v40, s3, 21794; GFX11-NEXT  s_load_b64 s[4:5], s[4:5], 0x01795; GFX11-NEXT  v_writelane_b32 v40, s30, 01796; GFX11-NEXT  v_writelane_b32 v40, s31, 11797; GFX11-NEXT  s_waitcnt lgkmcnt(0)1798; GFX11-NEXT  s_swappc_b64 s[30:31], s[4:5]1799; GFX11-NEXT  s_delay_alu instid0(VALU_DEP_1)1800; GFX11-NEXT  v_readlane_b32 s31, v40, 11801; GFX11-NEXT  v_readlane_b32 s30, v40, 01802; GFX11-NEXT  v_readlane_b32 s0, v40, 21803; GFX11-NEXT  s_or_saveexec_b32 s1, -11804; GFX11-NEXT  scratch_load_b32 v40, off, s33          ; 4-byte Folded Reload1805; GFX11-NEXT  s_mov_b32 exec_lo, s11806; GFX11-NEXT  s_add_i32 s32, s32, -161807; GFX11-NEXT  s_mov_b32 s33, s01808; GFX11-NEXT  s_waitcnt vmcnt(0)1809; GFX11-NEXT  s_setpc_b64 s[30:31]1810  call void @caller_void_func_i32_v2float_inreg(i32 inreg %arg0, <2 x float> inreg %arg1)1811  ret void1812}1813 1814define void @void_func_bf16_inreg(bfloat inreg %arg0) #0 {1815; GFX9-LABEL: void_func_bf16_inreg:1816; GFX9:       ; %bb.0:1817; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1818; GFX9-NEXT:    v_mov_b32_e32 v0, s161819; GFX9-NEXT:    global_store_short v[0:1], v0, off1820; GFX9-NEXT:    s_waitcnt vmcnt(0)1821; GFX9-NEXT:    s_setpc_b64 s[30:31]1822;1823; GFX11-TRUE16-LABEL: void_func_bf16_inreg:1824; GFX11-TRUE16:       ; %bb.0:1825; GFX11-TRUE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1826; GFX11-TRUE16-NEXT:    v_mov_b16_e32 v0.l, s01827; GFX11-TRUE16-NEXT:    global_store_b16 v[0:1], v0, off1828; GFX11-TRUE16-NEXT:    s_setpc_b64 s[30:31]1829;1830; GFX11-FAKE16-LABEL: void_func_bf16_inreg:1831; GFX11-FAKE16:       ; %bb.0:1832; GFX11-FAKE16-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1833; GFX11-FAKE16-NEXT:    v_mov_b32_e32 v0, s01834; GFX11-FAKE16-NEXT:    global_store_b16 v[0:1], v0, off1835; GFX11-FAKE16-NEXT:    s_setpc_b64 s[30:31]1836  store bfloat %arg0, ptr addrspace(1) poison1837  ret void1838}1839 1840define void @void_func_v2bf16_inreg(<2 x bfloat> inreg %arg0) #0 {1841; GFX9-LABEL: void_func_v2bf16_inreg:1842; GFX9:       ; %bb.0:1843; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1844; GFX9-NEXT:    v_mov_b32_e32 v0, s161845; GFX9-NEXT:    global_store_dword v[0:1], v0, off1846; GFX9-NEXT:    s_waitcnt vmcnt(0)1847; GFX9-NEXT:    s_setpc_b64 s[30:31]1848;1849; GFX11-LABEL: void_func_v2bf16_inreg:1850; GFX11:       ; %bb.0:1851; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1852; GFX11-NEXT:    v_mov_b32_e32 v0, s01853; GFX11-NEXT:    global_store_b32 v[0:1], v0, off1854; GFX11-NEXT:    s_setpc_b64 s[30:31]1855  store <2 x bfloat> %arg0, ptr addrspace(1) poison1856  ret void1857}1858 1859define void @void_func_v3bf16_inreg(<3 x bfloat> inreg %arg0) #0 {1860; GFX9-LABEL: void_func_v3bf16_inreg:1861; GFX9:       ; %bb.0:1862; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1863; GFX9-NEXT:    v_mov_b32_e32 v0, s171864; GFX9-NEXT:    global_store_short v[0:1], v0, off1865; GFX9-NEXT:    v_mov_b32_e32 v0, s161866; GFX9-NEXT:    global_store_dword v[0:1], v0, off1867; GFX9-NEXT:    s_waitcnt vmcnt(0)1868; GFX9-NEXT:    s_setpc_b64 s[30:31]1869;1870; GFX11-LABEL: void_func_v3bf16_inreg:1871; GFX11:       ; %bb.0:1872; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1873; GFX11-NEXT:    v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s01874; GFX11-NEXT:    s_clause 0x11875; GFX11-NEXT:    global_store_b16 v[0:1], v0, off1876; GFX11-NEXT:    global_store_b32 v[0:1], v1, off1877; GFX11-NEXT:    s_setpc_b64 s[30:31]1878  store <3 x bfloat> %arg0, ptr addrspace(1) poison1879  ret void1880}1881 1882define void @void_func_v4bf16_inreg(<4 x bfloat> inreg %arg0) #0 {1883; GFX9-LABEL: void_func_v4bf16_inreg:1884; GFX9:       ; %bb.0:1885; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1886; GFX9-NEXT:    v_mov_b32_e32 v0, s161887; GFX9-NEXT:    v_mov_b32_e32 v1, s171888; GFX9-NEXT:    global_store_dwordx2 v[0:1], v[0:1], off1889; GFX9-NEXT:    s_waitcnt vmcnt(0)1890; GFX9-NEXT:    s_setpc_b64 s[30:31]1891;1892; GFX11-LABEL: void_func_v4bf16_inreg:1893; GFX11:       ; %bb.0:1894; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1895; GFX11-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s11896; GFX11-NEXT:    global_store_b64 v[0:1], v[0:1], off1897; GFX11-NEXT:    s_setpc_b64 s[30:31]1898  store <4 x bfloat> %arg0, ptr addrspace(1) poison1899  ret void1900}1901 1902define void @void_func_v8bf16_inreg(<8 x bfloat> inreg %arg0) #0 {1903; GFX9-LABEL: void_func_v8bf16_inreg:1904; GFX9:       ; %bb.0:1905; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1906; GFX9-NEXT:    v_mov_b32_e32 v0, s161907; GFX9-NEXT:    v_mov_b32_e32 v1, s171908; GFX9-NEXT:    v_mov_b32_e32 v2, s181909; GFX9-NEXT:    v_mov_b32_e32 v3, s191910; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1911; GFX9-NEXT:    s_waitcnt vmcnt(0)1912; GFX9-NEXT:    s_setpc_b64 s[30:31]1913;1914; GFX11-LABEL: void_func_v8bf16_inreg:1915; GFX11:       ; %bb.0:1916; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1917; GFX11-NEXT:    v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s11918; GFX11-NEXT:    v_dual_mov_b32 v2, s2 :: v_dual_mov_b32 v3, s31919; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off1920; GFX11-NEXT:    s_setpc_b64 s[30:31]1921  store <8 x bfloat> %arg0, ptr addrspace(1) poison1922  ret void1923}1924 1925define void @void_func_v16bf16_inreg(<16 x bfloat> inreg %arg0) #0 {1926; GFX9-LABEL: void_func_v16bf16_inreg:1927; GFX9:       ; %bb.0:1928; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1929; GFX9-NEXT:    v_mov_b32_e32 v0, s201930; GFX9-NEXT:    v_mov_b32_e32 v1, s211931; GFX9-NEXT:    v_mov_b32_e32 v2, s221932; GFX9-NEXT:    v_mov_b32_e32 v3, s231933; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1934; GFX9-NEXT:    s_nop 01935; GFX9-NEXT:    v_mov_b32_e32 v0, s161936; GFX9-NEXT:    v_mov_b32_e32 v1, s171937; GFX9-NEXT:    v_mov_b32_e32 v2, s181938; GFX9-NEXT:    v_mov_b32_e32 v3, s191939; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off1940; GFX9-NEXT:    s_waitcnt vmcnt(0)1941; GFX9-NEXT:    s_setpc_b64 s[30:31]1942;1943; GFX11-LABEL: void_func_v16bf16_inreg:1944; GFX11:       ; %bb.0:1945; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1946; GFX11-NEXT:    v_dual_mov_b32 v0, s16 :: v_dual_mov_b32 v1, s171947; GFX11-NEXT:    v_dual_mov_b32 v2, s18 :: v_dual_mov_b32 v3, s191948; GFX11-NEXT:    v_dual_mov_b32 v4, s0 :: v_dual_mov_b32 v5, s11949; GFX11-NEXT:    v_dual_mov_b32 v6, s2 :: v_dual_mov_b32 v7, s31950; GFX11-NEXT:    s_clause 0x11951; GFX11-NEXT:    global_store_b128 v[0:1], v[0:3], off1952; GFX11-NEXT:    global_store_b128 v[0:1], v[4:7], off1953; GFX11-NEXT:    s_setpc_b64 s[30:31]1954  store <16 x bfloat> %arg0, ptr addrspace(1) poison1955  ret void1956}1957 1958define void @void_func_2_i32_inreg(i32 inreg %arg0, i32 inreg %arg1, ptr addrspace(1) %ptr) {1959; GFX9-LABEL: void_func_2_i32_inreg:1960; GFX9:       ; %bb.0:1961; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1962; GFX9-NEXT:    v_mov_b32_e32 v2, s161963; GFX9-NEXT:    global_store_dword v[0:1], v2, off1964; GFX9-NEXT:    s_waitcnt vmcnt(0)1965; GFX9-NEXT:    v_mov_b32_e32 v2, s171966; GFX9-NEXT:    global_store_dword v[0:1], v2, off1967; GFX9-NEXT:    s_waitcnt vmcnt(0)1968; GFX9-NEXT:    s_setpc_b64 s[30:31]1969;1970; GFX11-LABEL: void_func_2_i32_inreg:1971; GFX11:       ; %bb.0:1972; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1973; GFX11-NEXT:    v_dual_mov_b32 v2, s0 :: v_dual_mov_b32 v3, s11974; GFX11-NEXT:    global_store_b32 v[0:1], v2, off dlc1975; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01976; GFX11-NEXT:    global_store_b32 v[0:1], v3, off dlc1977; GFX11-NEXT:    s_waitcnt_vscnt null, 0x01978; GFX11-NEXT:    s_setpc_b64 s[30:31]1979  store volatile i32 %arg0, ptr addrspace(1) %ptr1980  store volatile i32 %arg1, ptr addrspace(1) %ptr1981  ret void1982}1983 1984define void @void_func_2_i64_inreg(i64 inreg %arg0, i64 inreg %arg1, ptr addrspace(1) %ptr) {1985; GFX9-LABEL: void_func_2_i64_inreg:1986; GFX9:       ; %bb.0:1987; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1988; GFX9-NEXT:    v_mov_b32_e32 v4, s161989; GFX9-NEXT:    v_mov_b32_e32 v5, s171990; GFX9-NEXT:    v_mov_b32_e32 v2, s181991; GFX9-NEXT:    v_mov_b32_e32 v3, s191992; GFX9-NEXT:    global_store_dwordx2 v[0:1], v[4:5], off1993; GFX9-NEXT:    s_waitcnt vmcnt(0)1994; GFX9-NEXT:    global_store_dwordx2 v[0:1], v[2:3], off1995; GFX9-NEXT:    s_waitcnt vmcnt(0)1996; GFX9-NEXT:    s_setpc_b64 s[30:31]1997;1998; GFX11-LABEL: void_func_2_i64_inreg:1999; GFX11:       ; %bb.0:2000; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2001; GFX11-NEXT:    v_dual_mov_b32 v2, s2 :: v_dual_mov_b32 v5, s12002; GFX11-NEXT:    v_dual_mov_b32 v4, s0 :: v_dual_mov_b32 v3, s32003; GFX11-NEXT:    global_store_b64 v[0:1], v[4:5], off dlc2004; GFX11-NEXT:    s_waitcnt_vscnt null, 0x02005; GFX11-NEXT:    global_store_b64 v[0:1], v[2:3], off dlc2006; GFX11-NEXT:    s_waitcnt_vscnt null, 0x02007; GFX11-NEXT:    s_setpc_b64 s[30:31]2008  store volatile i64 %arg0, ptr addrspace(1) %ptr2009  store volatile i64 %arg1, ptr addrspace(1) %ptr2010  ret void2011}2012 2013define void @void_func_i64_inreg_i32_inreg_i64_inreg(i64 inreg %arg0, i32 inreg %arg1, i64 inreg %arg2, ptr addrspace(1) %ptr) {2014; GFX9-LABEL: void_func_i64_inreg_i32_inreg_i64_inreg:2015; GFX9:       ; %bb.0:2016; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2017; GFX9-NEXT:    v_mov_b32_e32 v4, s162018; GFX9-NEXT:    v_mov_b32_e32 v5, s172019; GFX9-NEXT:    global_store_dwordx2 v[0:1], v[4:5], off2020; GFX9-NEXT:    s_waitcnt vmcnt(0)2021; GFX9-NEXT:    v_mov_b32_e32 v4, s182022; GFX9-NEXT:    v_mov_b32_e32 v2, s192023; GFX9-NEXT:    v_mov_b32_e32 v3, s202024; GFX9-NEXT:    global_store_dword v[0:1], v4, off2025; GFX9-NEXT:    s_waitcnt vmcnt(0)2026; GFX9-NEXT:    global_store_dwordx2 v[0:1], v[2:3], off2027; GFX9-NEXT:    s_waitcnt vmcnt(0)2028; GFX9-NEXT:    s_setpc_b64 s[30:31]2029;2030; GFX11-LABEL: void_func_i64_inreg_i32_inreg_i64_inreg:2031; GFX11:       ; %bb.0:2032; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2033; GFX11-NEXT:    v_dual_mov_b32 v2, s3 :: v_dual_mov_b32 v5, s12034; GFX11-NEXT:    v_dual_mov_b32 v4, s0 :: v_dual_mov_b32 v3, s162035; GFX11-NEXT:    v_mov_b32_e32 v6, s22036; GFX11-NEXT:    global_store_b64 v[0:1], v[4:5], off dlc2037; GFX11-NEXT:    s_waitcnt_vscnt null, 0x02038; GFX11-NEXT:    global_store_b32 v[0:1], v6, off dlc2039; GFX11-NEXT:    s_waitcnt_vscnt null, 0x02040; GFX11-NEXT:    global_store_b64 v[0:1], v[2:3], off dlc2041; GFX11-NEXT:    s_waitcnt_vscnt null, 0x02042; GFX11-NEXT:    s_setpc_b64 s[30:31]2043  store volatile i64 %arg0, ptr addrspace(1) %ptr2044  store volatile i32 %arg1, ptr addrspace(1) %ptr2045  store volatile i64 %arg2, ptr addrspace(1) %ptr2046  ret void2047}2048 2049define void @void_func_5_i32_inreg(i32 inreg %arg0, i32 inreg %arg1, i32 inreg %arg2, i32 inreg %arg3, i32 inreg %arg4, ptr addrspace(1) %ptr) {2050; GFX9-LABEL: void_func_5_i32_inreg:2051; GFX9:       ; %bb.0:2052; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2053; GFX9-NEXT:    v_mov_b32_e32 v2, s162054; GFX9-NEXT:    global_store_dword v[0:1], v2, off2055; GFX9-NEXT:    s_waitcnt vmcnt(0)2056; GFX9-NEXT:    v_mov_b32_e32 v2, s172057; GFX9-NEXT:    global_store_dword v[0:1], v2, off2058; GFX9-NEXT:    s_waitcnt vmcnt(0)2059; GFX9-NEXT:    v_mov_b32_e32 v2, s182060; GFX9-NEXT:    global_store_dword v[0:1], v2, off2061; GFX9-NEXT:    s_waitcnt vmcnt(0)2062; GFX9-NEXT:    v_mov_b32_e32 v2, s192063; GFX9-NEXT:    global_store_dword v[0:1], v2, off2064; GFX9-NEXT:    s_waitcnt vmcnt(0)2065; GFX9-NEXT:    v_mov_b32_e32 v2, s202066; GFX9-NEXT:    global_store_dword v[0:1], v2, off2067; GFX9-NEXT:    s_waitcnt vmcnt(0)2068; GFX9-NEXT:    s_setpc_b64 s[30:31]2069;2070; GFX11-LABEL: void_func_5_i32_inreg:2071; GFX11:       ; %bb.0:2072; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2073; GFX11-NEXT:    v_dual_mov_b32 v2, s0 :: v_dual_mov_b32 v3, s12074; GFX11-NEXT:    v_dual_mov_b32 v4, s2 :: v_dual_mov_b32 v5, s32075; GFX11-NEXT:    v_mov_b32_e32 v6, s162076; GFX11-NEXT:    global_store_b32 v[0:1], v2, off dlc2077; GFX11-NEXT:    s_waitcnt_vscnt null, 0x02078; GFX11-NEXT:    global_store_b32 v[0:1], v3, off dlc2079; GFX11-NEXT:    s_waitcnt_vscnt null, 0x02080; GFX11-NEXT:    global_store_b32 v[0:1], v4, off dlc2081; GFX11-NEXT:    s_waitcnt_vscnt null, 0x02082; GFX11-NEXT:    global_store_b32 v[0:1], v5, off dlc2083; GFX11-NEXT:    s_waitcnt_vscnt null, 0x02084; GFX11-NEXT:    global_store_b32 v[0:1], v6, off dlc2085; GFX11-NEXT:    s_waitcnt_vscnt null, 0x02086; GFX11-NEXT:    s_setpc_b64 s[30:31]2087  store volatile i32 %arg0, ptr addrspace(1) %ptr2088  store volatile i32 %arg1, ptr addrspace(1) %ptr2089  store volatile i32 %arg2, ptr addrspace(1) %ptr2090  store volatile i32 %arg3, ptr addrspace(1) %ptr2091  store volatile i32 %arg4, ptr addrspace(1) %ptr2092  ret void2093}2094 2095define void @void_func_a5i32_inreg([5 x i32] inreg %arg0, ptr addrspace(1) %ptr) {2096; GFX9-LABEL: void_func_a5i32_inreg:2097; GFX9:       ; %bb.0:2098; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2099; GFX9-NEXT:    v_mov_b32_e32 v2, s202100; GFX9-NEXT:    global_store_dword v[0:1], v2, off offset:162101; GFX9-NEXT:    v_mov_b32_e32 v5, s192102; GFX9-NEXT:    v_mov_b32_e32 v4, s182103; GFX9-NEXT:    v_mov_b32_e32 v3, s172104; GFX9-NEXT:    v_mov_b32_e32 v2, s162105; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[2:5], off2106; GFX9-NEXT:    s_waitcnt vmcnt(0)2107; GFX9-NEXT:    s_setpc_b64 s[30:31]2108;2109; GFX11-LABEL: void_func_a5i32_inreg:2110; GFX11:       ; %bb.0:2111; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2112; GFX11-NEXT:    v_dual_mov_b32 v6, s16 :: v_dual_mov_b32 v5, s32113; GFX11-NEXT:    v_dual_mov_b32 v4, s2 :: v_dual_mov_b32 v3, s12114; GFX11-NEXT:    v_mov_b32_e32 v2, s02115; GFX11-NEXT:    s_clause 0x12116; GFX11-NEXT:    global_store_b32 v[0:1], v6, off offset:162117; GFX11-NEXT:    global_store_b128 v[0:1], v[2:5], off2118; GFX11-NEXT:    s_setpc_b64 s[30:31]2119  store [5 x i32] %arg0, ptr addrspace(1) %ptr2120  ret void2121}2122 2123; Force all implicit inputs to be required2124declare void @extern()2125 2126define void @void_func_a13i32_inreg([13  x i32] inreg %arg0, ptr addrspace(1) %ptr) {2127; GFX9-LABEL: void_func_a13i32_inreg:2128; GFX9:       ; %bb.0:2129; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2130; GFX9-NEXT:    s_mov_b32 s29, s332131; GFX9-NEXT:    s_mov_b32 s33, s322132; GFX9-NEXT:    s_or_saveexec_b64 s[40:41], -12133; GFX9-NEXT:    buffer_store_dword v40, off, s[0:3], s33 ; 4-byte Folded Spill2134; GFX9-NEXT:    s_mov_b64 exec, s[40:41]2135; GFX9-NEXT:    v_mov_b32_e32 v2, s282136; GFX9-NEXT:    global_store_dword v[0:1], v2, off offset:482137; GFX9-NEXT:    v_mov_b32_e32 v5, s272138; GFX9-NEXT:    v_mov_b32_e32 v4, s262139; GFX9-NEXT:    v_mov_b32_e32 v3, s252140; GFX9-NEXT:    v_mov_b32_e32 v2, s242141; GFX9-NEXT:    s_addk_i32 s32, 0x4002142; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[2:5], off offset:322143; GFX9-NEXT:    v_writelane_b32 v40, s29, 22144; GFX9-NEXT:    v_mov_b32_e32 v5, s232145; GFX9-NEXT:    v_mov_b32_e32 v4, s222146; GFX9-NEXT:    v_mov_b32_e32 v3, s212147; GFX9-NEXT:    v_mov_b32_e32 v2, s202148; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[2:5], off offset:162149; GFX9-NEXT:    v_writelane_b32 v40, s30, 02150; GFX9-NEXT:    v_mov_b32_e32 v3, s172151; GFX9-NEXT:    v_mov_b32_e32 v2, s162152; GFX9-NEXT:    s_getpc_b64 s[16:17]2153; GFX9-NEXT:    s_add_u32 s16, s16, extern@gotpcrel32@lo+42154; GFX9-NEXT:    s_addc_u32 s17, s17, extern@gotpcrel32@hi+122155; GFX9-NEXT:    s_load_dwordx2 s[16:17], s[16:17], 0x02156; GFX9-NEXT:    v_mov_b32_e32 v5, s192157; GFX9-NEXT:    v_mov_b32_e32 v4, s182158; GFX9-NEXT:    v_writelane_b32 v40, s31, 12159; GFX9-NEXT:    global_store_dwordx4 v[0:1], v[2:5], off2160; GFX9-NEXT:    s_waitcnt lgkmcnt(0)2161; GFX9-NEXT:    s_swappc_b64 s[30:31], s[16:17]2162; GFX9-NEXT:    v_readlane_b32 s31, v40, 12163; GFX9-NEXT:    v_readlane_b32 s30, v40, 02164; GFX9-NEXT:    s_mov_b32 s32, s332165; GFX9-NEXT:    v_readlane_b32 s4, v40, 22166; GFX9-NEXT:    s_or_saveexec_b64 s[6:7], -12167; GFX9-NEXT:    buffer_load_dword v40, off, s[0:3], s33 ; 4-byte Folded Reload2168; GFX9-NEXT:    s_mov_b64 exec, s[6:7]2169; GFX9-NEXT:    s_mov_b32 s33, s42170; GFX9-NEXT:    s_waitcnt vmcnt(0)2171; GFX9-NEXT:    s_setpc_b64 s[30:31]2172;2173; GFX11-LABEL: void_func_a13i32_inreg:2174; GFX11:       ; %bb.0:2175; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2176; GFX11-NEXT:    s_mov_b32 s25, s332177; GFX11-NEXT:    s_mov_b32 s33, s322178; GFX11-NEXT:    s_or_saveexec_b32 s26, -12179; GFX11-NEXT:    scratch_store_b32 off, v40, s33 ; 4-byte Folded Spill2180; GFX11-NEXT:    s_mov_b32 exec_lo, s262181; GFX11-NEXT:    s_add_i32 s32, s32, 162182; GFX11-NEXT:    v_dual_mov_b32 v4, s22 :: v_dual_mov_b32 v3, s212183; GFX11-NEXT:    v_dual_mov_b32 v2, s20 :: v_dual_mov_b32 v9, s192184; GFX11-NEXT:    s_getpc_b64 s[20:21]2185; GFX11-NEXT:    s_add_u32 s20, s20, extern@gotpcrel32@lo+42186; GFX11-NEXT:    s_addc_u32 s21, s21, extern@gotpcrel32@hi+122187; GFX11-NEXT:    v_dual_mov_b32 v8, s18 :: v_dual_mov_b32 v7, s172188; GFX11-NEXT:    v_dual_mov_b32 v6, s16 :: v_dual_mov_b32 v13, s32189; GFX11-NEXT:    s_load_b64 s[16:17], s[20:21], 0x02190; GFX11-NEXT:    v_writelane_b32 v40, s25, 22191; GFX11-NEXT:    v_dual_mov_b32 v14, s24 :: v_dual_mov_b32 v5, s232192; GFX11-NEXT:    v_dual_mov_b32 v12, s2 :: v_dual_mov_b32 v11, s12193; GFX11-NEXT:    v_writelane_b32 v40, s30, 02194; GFX11-NEXT:    v_mov_b32_e32 v10, s02195; GFX11-NEXT:    s_clause 0x32196; GFX11-NEXT:    global_store_b32 v[0:1], v14, off offset:482197; GFX11-NEXT:    global_store_b128 v[0:1], v[2:5], off offset:322198; GFX11-NEXT:    global_store_b128 v[0:1], v[6:9], off offset:162199; GFX11-NEXT:    global_store_b128 v[0:1], v[10:13], off2200; GFX11-NEXT:    v_writelane_b32 v40, s31, 12201; GFX11-NEXT:    s_waitcnt lgkmcnt(0)2202; GFX11-NEXT:    s_swappc_b64 s[30:31], s[16:17]2203; GFX11-NEXT:    s_delay_alu instid0(VALU_DEP_1)2204; GFX11-NEXT:    v_readlane_b32 s31, v40, 12205; GFX11-NEXT:    v_readlane_b32 s30, v40, 02206; GFX11-NEXT:    s_mov_b32 s32, s332207; GFX11-NEXT:    v_readlane_b32 s0, v40, 22208; GFX11-NEXT:    s_or_saveexec_b32 s1, -12209; GFX11-NEXT:    scratch_load_b32 v40, off, s33 ; 4-byte Folded Reload2210; GFX11-NEXT:    s_mov_b32 exec_lo, s12211; GFX11-NEXT:    s_mov_b32 s33, s02212; GFX11-NEXT:    s_waitcnt vmcnt(0)2213; GFX11-NEXT:    s_setpc_b64 s[30:31]2214  store [13 x i32] %arg0, ptr addrspace(1) %ptr2215  call void @extern()2216  ret void2217}2218 2219; define void @void_func_a14i32_inreg([14 x i32] inreg %arg0, ptr addrspace(1) %ptr) {2220;   store [14 x i32] %arg0, ptr addrspace(1) %ptr2221;   call void @extern()2222;   ret void2223; }2224 2225; FIXME:2226; define void @void_func_a15i32_inreg([15 x i32] inreg %arg0, ptr addrspace(1) %ptr) {2227;   store [15 x i32] %arg0, ptr addrspace(1) %ptr2228;   call void @extern()2229;   ret void2230; }2231 2232; FIXME:2233; define void @void_func_a16i32_inreg([16 x i32] inreg %arg0, ptr addrspace(1) %ptr) {2234;   store [16 x i32] %arg0, ptr addrspace(1) %ptr2235;   call void @extern()2236;   ret void2237; }2238 2239; FIXME: Should still fail2240define void @void_func_a16i32_inreg__noimplicit([16 x i32] inreg %arg0, ptr addrspace(1) %ptr) {2241; GFX9-LABEL: void_func_a16i32_inreg__noimplicit:2242; GFX9:       ; %bb.0:2243; GFX9-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2244; GFX9-NEXT:    v_mov_b32_e32 v7, v12245; GFX9-NEXT:    v_mov_b32_e32 v6, v02246; GFX9-NEXT:    v_mov_b32_e32 v5, s292247; GFX9-NEXT:    v_mov_b32_e32 v4, s282248; GFX9-NEXT:    global_store_dwordx4 v[2:3], v[4:7], off offset:482249; GFX9-NEXT:    s_nop 02250; GFX9-NEXT:    v_mov_b32_e32 v7, s272251; GFX9-NEXT:    v_mov_b32_e32 v6, s262252; GFX9-NEXT:    v_mov_b32_e32 v5, s252253; GFX9-NEXT:    v_mov_b32_e32 v4, s242254; GFX9-NEXT:    global_store_dwordx4 v[2:3], v[4:7], off offset:322255; GFX9-NEXT:    s_nop 02256; GFX9-NEXT:    v_mov_b32_e32 v7, s232257; GFX9-NEXT:    v_mov_b32_e32 v6, s222258; GFX9-NEXT:    v_mov_b32_e32 v5, s212259; GFX9-NEXT:    v_mov_b32_e32 v4, s202260; GFX9-NEXT:    global_store_dwordx4 v[2:3], v[4:7], off offset:162261; GFX9-NEXT:    s_nop 02262; GFX9-NEXT:    v_mov_b32_e32 v7, s192263; GFX9-NEXT:    v_mov_b32_e32 v6, s182264; GFX9-NEXT:    v_mov_b32_e32 v5, s172265; GFX9-NEXT:    v_mov_b32_e32 v4, s162266; GFX9-NEXT:    global_store_dwordx4 v[2:3], v[4:7], off2267; GFX9-NEXT:    s_waitcnt vmcnt(0)2268; GFX9-NEXT:    s_setpc_b64 s[30:31]2269;2270; GFX11-LABEL: void_func_a16i32_inreg__noimplicit:2271; GFX11:       ; %bb.0:2272; GFX11-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2273; GFX11-NEXT:    v_dual_mov_b32 v5, s27 :: v_dual_mov_b32 v4, s262274; GFX11-NEXT:    v_dual_mov_b32 v3, s25 :: v_dual_mov_b32 v2, s242275; GFX11-NEXT:    v_dual_mov_b32 v9, s23 :: v_dual_mov_b32 v8, s222276; GFX11-NEXT:    v_dual_mov_b32 v7, s21 :: v_dual_mov_b32 v6, s202277; GFX11-NEXT:    v_dual_mov_b32 v13, s19 :: v_dual_mov_b32 v12, s182278; GFX11-NEXT:    v_dual_mov_b32 v11, s17 :: v_dual_mov_b32 v10, s162279; GFX11-NEXT:    v_dual_mov_b32 v17, s3 :: v_dual_mov_b32 v16, s22280; GFX11-NEXT:    v_dual_mov_b32 v15, s1 :: v_dual_mov_b32 v14, s02281; GFX11-NEXT:    s_clause 0x32282; GFX11-NEXT:    global_store_b128 v[0:1], v[2:5], off offset:482283; GFX11-NEXT:    global_store_b128 v[0:1], v[6:9], off offset:322284; GFX11-NEXT:    global_store_b128 v[0:1], v[10:13], off offset:162285; GFX11-NEXT:    global_store_b128 v[0:1], v[14:17], off2286; GFX11-NEXT:    s_setpc_b64 s[30:31]2287  store [16 x i32] %arg0, ptr addrspace(1) %ptr2288  ret void2289}2290 2291attributes #0 = { nounwind }2292attributes #1 = { nounwind noinline }2293 2294 2295 2296 2297 2298 2299 2300