brintos

brintos / llvm-project-archived public Read only

0
0
Text · 72.8 KiB · e1b4cad Raw
1952 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=amdgcn -mcpu=fiji < %s | FileCheck -enable-var-scope -check-prefixes=GCN %s3 4define amdgpu_kernel void @float4_inselt(ptr addrspace(1) %out, <4 x float> %vec, i32 %sel) {5; GCN-LABEL: float4_inselt:6; GCN:       ; %bb.0: ; %entry7; GCN-NEXT:    s_load_dword s6, s[4:5], 0x448; GCN-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x349; GCN-NEXT:    s_load_dwordx2 s[4:5], s[4:5], 0x2410; GCN-NEXT:    s_waitcnt lgkmcnt(0)11; GCN-NEXT:    s_cmp_lg_u32 s6, 312; GCN-NEXT:    v_mov_b32_e32 v0, s313; GCN-NEXT:    s_cselect_b64 vcc, -1, 014; GCN-NEXT:    s_cmp_lg_u32 s6, 215; GCN-NEXT:    v_cndmask_b32_e32 v3, 1.0, v0, vcc16; GCN-NEXT:    v_mov_b32_e32 v0, s217; GCN-NEXT:    s_cselect_b64 vcc, -1, 018; GCN-NEXT:    s_cmp_lg_u32 s6, 119; GCN-NEXT:    v_cndmask_b32_e32 v2, 1.0, v0, vcc20; GCN-NEXT:    v_mov_b32_e32 v0, s121; GCN-NEXT:    s_cselect_b64 vcc, -1, 022; GCN-NEXT:    s_cmp_lg_u32 s6, 023; GCN-NEXT:    v_cndmask_b32_e32 v1, 1.0, v0, vcc24; GCN-NEXT:    v_mov_b32_e32 v0, s025; GCN-NEXT:    s_cselect_b64 vcc, -1, 026; GCN-NEXT:    v_mov_b32_e32 v4, s427; GCN-NEXT:    v_cndmask_b32_e32 v0, 1.0, v0, vcc28; GCN-NEXT:    v_mov_b32_e32 v5, s529; GCN-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]30; GCN-NEXT:    s_endpgm31entry:32  %v = insertelement <4 x float> %vec, float 1.000000e+00, i32 %sel33  store <4 x float> %v, ptr addrspace(1) %out34  ret void35}36 37define amdgpu_kernel void @float4_inselt_undef(ptr addrspace(1) %out, i32 %sel) {38; GCN-LABEL: float4_inselt_undef:39; GCN:       ; %bb.0: ; %entry40; GCN-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x2441; GCN-NEXT:    v_mov_b32_e32 v0, 1.042; GCN-NEXT:    v_mov_b32_e32 v1, v043; GCN-NEXT:    v_mov_b32_e32 v2, v044; GCN-NEXT:    v_mov_b32_e32 v3, v045; GCN-NEXT:    s_waitcnt lgkmcnt(0)46; GCN-NEXT:    v_mov_b32_e32 v5, s147; GCN-NEXT:    v_mov_b32_e32 v4, s048; GCN-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]49; GCN-NEXT:    s_endpgm50entry:51  %v = insertelement <4 x float> poison, float 1.000000e+00, i32 %sel52  store <4 x float> %v, ptr addrspace(1) %out53  ret void54}55 56define amdgpu_kernel void @int4_inselt(ptr addrspace(1) %out, <4 x i32> %vec, i32 %sel) {57; GCN-LABEL: int4_inselt:58; GCN:       ; %bb.0: ; %entry59; GCN-NEXT:    s_load_dword s6, s[4:5], 0x4460; GCN-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x3461; GCN-NEXT:    s_load_dwordx2 s[4:5], s[4:5], 0x2462; GCN-NEXT:    s_waitcnt lgkmcnt(0)63; GCN-NEXT:    s_cmp_lg_u32 s6, 364; GCN-NEXT:    s_cselect_b32 s3, s3, 165; GCN-NEXT:    s_cmp_lg_u32 s6, 266; GCN-NEXT:    s_cselect_b32 s2, s2, 167; GCN-NEXT:    s_cmp_lg_u32 s6, 168; GCN-NEXT:    s_cselect_b32 s1, s1, 169; GCN-NEXT:    s_cmp_lg_u32 s6, 070; GCN-NEXT:    s_cselect_b32 s0, s0, 171; GCN-NEXT:    v_mov_b32_e32 v4, s472; GCN-NEXT:    v_mov_b32_e32 v0, s073; GCN-NEXT:    v_mov_b32_e32 v1, s174; GCN-NEXT:    v_mov_b32_e32 v2, s275; GCN-NEXT:    v_mov_b32_e32 v3, s376; GCN-NEXT:    v_mov_b32_e32 v5, s577; GCN-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]78; GCN-NEXT:    s_endpgm79entry:80  %v = insertelement <4 x i32> %vec, i32 1, i32 %sel81  store <4 x i32> %v, ptr addrspace(1) %out82  ret void83}84 85define amdgpu_kernel void @float2_inselt(ptr addrspace(1) %out, <2 x float> %vec, i32 %sel) {86; GCN-LABEL: float2_inselt:87; GCN:       ; %bb.0: ; %entry88; GCN-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x2c89; GCN-NEXT:    s_load_dwordx2 s[4:5], s[4:5], 0x2490; GCN-NEXT:    s_waitcnt lgkmcnt(0)91; GCN-NEXT:    s_cmp_lg_u32 s2, 192; GCN-NEXT:    v_mov_b32_e32 v0, s193; GCN-NEXT:    s_cselect_b64 vcc, -1, 094; GCN-NEXT:    s_cmp_lg_u32 s2, 095; GCN-NEXT:    v_cndmask_b32_e32 v1, 1.0, v0, vcc96; GCN-NEXT:    v_mov_b32_e32 v0, s097; GCN-NEXT:    s_cselect_b64 vcc, -1, 098; GCN-NEXT:    v_mov_b32_e32 v2, s499; GCN-NEXT:    v_cndmask_b32_e32 v0, 1.0, v0, vcc100; GCN-NEXT:    v_mov_b32_e32 v3, s5101; GCN-NEXT:    flat_store_dwordx2 v[2:3], v[0:1]102; GCN-NEXT:    s_endpgm103entry:104  %v = insertelement <2 x float> %vec, float 1.000000e+00, i32 %sel105  store <2 x float> %v, ptr addrspace(1) %out106  ret void107}108 109define amdgpu_kernel void @float8_inselt(ptr addrspace(1) %out, <8 x float> %vec, i32 %sel) {110; GCN-LABEL: float8_inselt:111; GCN:       ; %bb.0: ; %entry112; GCN-NEXT:    s_load_dwordx8 s[8:15], s[4:5], 0x44113; GCN-NEXT:    s_load_dword s2, s[4:5], 0x64114; GCN-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x24115; GCN-NEXT:    s_waitcnt lgkmcnt(0)116; GCN-NEXT:    v_mov_b32_e32 v0, s8117; GCN-NEXT:    s_mov_b32 m0, s2118; GCN-NEXT:    s_add_u32 s2, s0, 16119; GCN-NEXT:    s_addc_u32 s3, s1, 0120; GCN-NEXT:    v_mov_b32_e32 v1, s9121; GCN-NEXT:    v_mov_b32_e32 v2, s10122; GCN-NEXT:    v_mov_b32_e32 v3, s11123; GCN-NEXT:    v_mov_b32_e32 v4, s12124; GCN-NEXT:    v_mov_b32_e32 v5, s13125; GCN-NEXT:    v_mov_b32_e32 v6, s14126; GCN-NEXT:    v_mov_b32_e32 v7, s15127; GCN-NEXT:    v_mov_b32_e32 v9, s3128; GCN-NEXT:    v_movreld_b32_e32 v0, 1.0129; GCN-NEXT:    v_mov_b32_e32 v8, s2130; GCN-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]131; GCN-NEXT:    s_nop 0132; GCN-NEXT:    v_mov_b32_e32 v5, s1133; GCN-NEXT:    v_mov_b32_e32 v4, s0134; GCN-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]135; GCN-NEXT:    s_endpgm136entry:137  %v = insertelement <8 x float> %vec, float 1.000000e+00, i32 %sel138  store <8 x float> %v, ptr addrspace(1) %out139  ret void140}141 142define amdgpu_kernel void @float16_inselt(ptr addrspace(1) %out, <16 x float> %vec, i32 %sel) {143; GCN-LABEL: float16_inselt:144; GCN:       ; %bb.0: ; %entry145; GCN-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x64146; GCN-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x24147; GCN-NEXT:    s_load_dword s4, s[4:5], 0xa4148; GCN-NEXT:    s_waitcnt lgkmcnt(0)149; GCN-NEXT:    v_mov_b32_e32 v0, s8150; GCN-NEXT:    s_add_u32 s2, s0, 48151; GCN-NEXT:    s_addc_u32 s3, s1, 0152; GCN-NEXT:    v_mov_b32_e32 v17, s3153; GCN-NEXT:    v_mov_b32_e32 v1, s9154; GCN-NEXT:    v_mov_b32_e32 v2, s10155; GCN-NEXT:    v_mov_b32_e32 v3, s11156; GCN-NEXT:    v_mov_b32_e32 v4, s12157; GCN-NEXT:    v_mov_b32_e32 v5, s13158; GCN-NEXT:    v_mov_b32_e32 v6, s14159; GCN-NEXT:    v_mov_b32_e32 v7, s15160; GCN-NEXT:    v_mov_b32_e32 v8, s16161; GCN-NEXT:    v_mov_b32_e32 v9, s17162; GCN-NEXT:    v_mov_b32_e32 v10, s18163; GCN-NEXT:    v_mov_b32_e32 v11, s19164; GCN-NEXT:    v_mov_b32_e32 v12, s20165; GCN-NEXT:    v_mov_b32_e32 v13, s21166; GCN-NEXT:    v_mov_b32_e32 v14, s22167; GCN-NEXT:    v_mov_b32_e32 v15, s23168; GCN-NEXT:    s_mov_b32 m0, s4169; GCN-NEXT:    v_mov_b32_e32 v16, s2170; GCN-NEXT:    s_add_u32 s2, s0, 32171; GCN-NEXT:    v_movreld_b32_e32 v0, 1.0172; GCN-NEXT:    s_addc_u32 s3, s1, 0173; GCN-NEXT:    flat_store_dwordx4 v[16:17], v[12:15]174; GCN-NEXT:    s_nop 0175; GCN-NEXT:    v_mov_b32_e32 v13, s3176; GCN-NEXT:    v_mov_b32_e32 v12, s2177; GCN-NEXT:    s_add_u32 s2, s0, 16178; GCN-NEXT:    s_addc_u32 s3, s1, 0179; GCN-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]180; GCN-NEXT:    s_nop 0181; GCN-NEXT:    v_mov_b32_e32 v9, s3182; GCN-NEXT:    v_mov_b32_e32 v8, s2183; GCN-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]184; GCN-NEXT:    s_nop 0185; GCN-NEXT:    v_mov_b32_e32 v5, s1186; GCN-NEXT:    v_mov_b32_e32 v4, s0187; GCN-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]188; GCN-NEXT:    s_endpgm189entry:190  %v = insertelement <16 x float> %vec, float 1.000000e+00, i32 %sel191  store <16 x float> %v, ptr addrspace(1) %out192  ret void193}194 195define amdgpu_kernel void @float32_inselt(ptr addrspace(1) %out, <32 x float> %vec, i32 %sel) {196; GCN-LABEL: float32_inselt:197; GCN:       ; %bb.0: ; %entry198; GCN-NEXT:    s_load_dword s2, s[4:5], 0x124199; GCN-NEXT:    s_load_dwordx16 s[36:51], s[4:5], 0xa4200; GCN-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x24201; GCN-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0xe4202; GCN-NEXT:    s_waitcnt lgkmcnt(0)203; GCN-NEXT:    v_mov_b32_e32 v0, s36204; GCN-NEXT:    s_mov_b32 m0, s2205; GCN-NEXT:    s_add_u32 s2, s0, 0x70206; GCN-NEXT:    s_addc_u32 s3, s1, 0207; GCN-NEXT:    v_mov_b32_e32 v33, s3208; GCN-NEXT:    v_mov_b32_e32 v1, s37209; GCN-NEXT:    v_mov_b32_e32 v2, s38210; GCN-NEXT:    v_mov_b32_e32 v3, s39211; GCN-NEXT:    v_mov_b32_e32 v4, s40212; GCN-NEXT:    v_mov_b32_e32 v5, s41213; GCN-NEXT:    v_mov_b32_e32 v6, s42214; GCN-NEXT:    v_mov_b32_e32 v7, s43215; GCN-NEXT:    v_mov_b32_e32 v8, s44216; GCN-NEXT:    v_mov_b32_e32 v9, s45217; GCN-NEXT:    v_mov_b32_e32 v10, s46218; GCN-NEXT:    v_mov_b32_e32 v11, s47219; GCN-NEXT:    v_mov_b32_e32 v12, s48220; GCN-NEXT:    v_mov_b32_e32 v13, s49221; GCN-NEXT:    v_mov_b32_e32 v14, s50222; GCN-NEXT:    v_mov_b32_e32 v15, s51223; GCN-NEXT:    v_mov_b32_e32 v16, s8224; GCN-NEXT:    v_mov_b32_e32 v17, s9225; GCN-NEXT:    v_mov_b32_e32 v18, s10226; GCN-NEXT:    v_mov_b32_e32 v19, s11227; GCN-NEXT:    v_mov_b32_e32 v20, s12228; GCN-NEXT:    v_mov_b32_e32 v21, s13229; GCN-NEXT:    v_mov_b32_e32 v22, s14230; GCN-NEXT:    v_mov_b32_e32 v23, s15231; GCN-NEXT:    v_mov_b32_e32 v24, s16232; GCN-NEXT:    v_mov_b32_e32 v25, s17233; GCN-NEXT:    v_mov_b32_e32 v26, s18234; GCN-NEXT:    v_mov_b32_e32 v27, s19235; GCN-NEXT:    v_mov_b32_e32 v28, s20236; GCN-NEXT:    v_mov_b32_e32 v29, s21237; GCN-NEXT:    v_mov_b32_e32 v30, s22238; GCN-NEXT:    v_mov_b32_e32 v31, s23239; GCN-NEXT:    v_mov_b32_e32 v32, s2240; GCN-NEXT:    s_add_u32 s2, s0, 0x60241; GCN-NEXT:    v_movreld_b32_e32 v0, 1.0242; GCN-NEXT:    s_addc_u32 s3, s1, 0243; GCN-NEXT:    flat_store_dwordx4 v[32:33], v[28:31]244; GCN-NEXT:    s_nop 0245; GCN-NEXT:    v_mov_b32_e32 v29, s3246; GCN-NEXT:    v_mov_b32_e32 v28, s2247; GCN-NEXT:    s_add_u32 s2, s0, 0x50248; GCN-NEXT:    s_addc_u32 s3, s1, 0249; GCN-NEXT:    flat_store_dwordx4 v[28:29], v[24:27]250; GCN-NEXT:    s_nop 0251; GCN-NEXT:    v_mov_b32_e32 v25, s3252; GCN-NEXT:    v_mov_b32_e32 v24, s2253; GCN-NEXT:    s_add_u32 s2, s0, 64254; GCN-NEXT:    s_addc_u32 s3, s1, 0255; GCN-NEXT:    flat_store_dwordx4 v[24:25], v[20:23]256; GCN-NEXT:    s_nop 0257; GCN-NEXT:    v_mov_b32_e32 v21, s3258; GCN-NEXT:    v_mov_b32_e32 v20, s2259; GCN-NEXT:    s_add_u32 s2, s0, 48260; GCN-NEXT:    s_addc_u32 s3, s1, 0261; GCN-NEXT:    flat_store_dwordx4 v[20:21], v[16:19]262; GCN-NEXT:    s_nop 0263; GCN-NEXT:    v_mov_b32_e32 v17, s3264; GCN-NEXT:    v_mov_b32_e32 v16, s2265; GCN-NEXT:    s_add_u32 s2, s0, 32266; GCN-NEXT:    s_addc_u32 s3, s1, 0267; GCN-NEXT:    flat_store_dwordx4 v[16:17], v[12:15]268; GCN-NEXT:    s_nop 0269; GCN-NEXT:    v_mov_b32_e32 v13, s3270; GCN-NEXT:    v_mov_b32_e32 v12, s2271; GCN-NEXT:    s_add_u32 s2, s0, 16272; GCN-NEXT:    s_addc_u32 s3, s1, 0273; GCN-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]274; GCN-NEXT:    s_nop 0275; GCN-NEXT:    v_mov_b32_e32 v9, s3276; GCN-NEXT:    v_mov_b32_e32 v8, s2277; GCN-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]278; GCN-NEXT:    s_nop 0279; GCN-NEXT:    v_mov_b32_e32 v5, s1280; GCN-NEXT:    v_mov_b32_e32 v4, s0281; GCN-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]282; GCN-NEXT:    s_endpgm283entry:284  %v = insertelement <32 x float> %vec, float 1.000000e+00, i32 %sel285  store <32 x float> %v, ptr addrspace(1) %out286  ret void287}288 289define amdgpu_kernel void @half4_inselt(ptr addrspace(1) %out, <4 x half> %vec, i32 %sel) {290; GCN-LABEL: half4_inselt:291; GCN:       ; %bb.0: ; %entry292; GCN-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x24293; GCN-NEXT:    s_load_dword s6, s[4:5], 0x34294; GCN-NEXT:    s_mov_b32 s4, 0x3c003c00295; GCN-NEXT:    s_mov_b32 s5, s4296; GCN-NEXT:    s_waitcnt lgkmcnt(0)297; GCN-NEXT:    s_xor_b64 s[4:5], s[2:3], s[4:5]298; GCN-NEXT:    s_lshl_b32 s6, s6, 4299; GCN-NEXT:    s_lshl_b64 s[6:7], 0xffff, s6300; GCN-NEXT:    s_and_b64 s[4:5], s[4:5], s[6:7]301; GCN-NEXT:    s_xor_b64 s[2:3], s[4:5], s[2:3]302; GCN-NEXT:    v_mov_b32_e32 v0, s0303; GCN-NEXT:    v_mov_b32_e32 v2, s2304; GCN-NEXT:    v_mov_b32_e32 v1, s1305; GCN-NEXT:    v_mov_b32_e32 v3, s3306; GCN-NEXT:    flat_store_dwordx2 v[0:1], v[2:3]307; GCN-NEXT:    s_endpgm308entry:309  %v = insertelement <4 x half> %vec, half 1.000000e+00, i32 %sel310  store <4 x half> %v, ptr addrspace(1) %out311  ret void312}313 314define amdgpu_kernel void @half2_inselt(ptr addrspace(1) %out, <2 x half> %vec, i32 %sel) {315; GCN-LABEL: half2_inselt:316; GCN:       ; %bb.0: ; %entry317; GCN-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x24318; GCN-NEXT:    s_waitcnt lgkmcnt(0)319; GCN-NEXT:    s_lshl_b32 s3, s3, 4320; GCN-NEXT:    s_xor_b32 s4, s2, 0x3c003c00321; GCN-NEXT:    s_lshl_b32 s3, 0xffff, s3322; GCN-NEXT:    s_and_b32 s3, s4, s3323; GCN-NEXT:    s_xor_b32 s2, s3, s2324; GCN-NEXT:    v_mov_b32_e32 v0, s0325; GCN-NEXT:    v_mov_b32_e32 v1, s1326; GCN-NEXT:    v_mov_b32_e32 v2, s2327; GCN-NEXT:    flat_store_dword v[0:1], v2328; GCN-NEXT:    s_endpgm329entry:330  %v = insertelement <2 x half> %vec, half 1.000000e+00, i32 %sel331  store <2 x half> %v, ptr addrspace(1) %out332  ret void333}334 335define amdgpu_kernel void @half8_inselt(ptr addrspace(1) %out, <8 x half> %vec, i32 %sel) {336; GCN-LABEL: half8_inselt:337; GCN:       ; %bb.0: ; %entry338; GCN-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x34339; GCN-NEXT:    s_load_dword s6, s[4:5], 0x44340; GCN-NEXT:    s_load_dwordx2 s[4:5], s[4:5], 0x24341; GCN-NEXT:    v_mov_b32_e32 v0, 0x3c00342; GCN-NEXT:    s_waitcnt lgkmcnt(0)343; GCN-NEXT:    s_lshr_b32 s7, s3, 16344; GCN-NEXT:    s_cmp_lg_u32 s6, 7345; GCN-NEXT:    v_mov_b32_e32 v1, s7346; GCN-NEXT:    s_cselect_b64 vcc, -1, 0347; GCN-NEXT:    s_cmp_lg_u32 s6, 6348; GCN-NEXT:    v_cndmask_b32_sdwa v1, v0, v1, vcc dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD349; GCN-NEXT:    v_mov_b32_e32 v2, s3350; GCN-NEXT:    s_cselect_b64 vcc, -1, 0351; GCN-NEXT:    s_lshr_b32 s3, s2, 16352; GCN-NEXT:    v_cndmask_b32_e32 v2, v0, v2, vcc353; GCN-NEXT:    s_cmp_lg_u32 s6, 5354; GCN-NEXT:    v_or_b32_sdwa v3, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 src1_sel:DWORD355; GCN-NEXT:    v_mov_b32_e32 v1, s3356; GCN-NEXT:    s_cselect_b64 vcc, -1, 0357; GCN-NEXT:    s_cmp_lg_u32 s6, 4358; GCN-NEXT:    v_cndmask_b32_e32 v1, v0, v1, vcc359; GCN-NEXT:    v_mov_b32_e32 v2, s2360; GCN-NEXT:    s_cselect_b64 vcc, -1, 0361; GCN-NEXT:    s_lshr_b32 s2, s1, 16362; GCN-NEXT:    v_lshlrev_b32_e32 v1, 16, v1363; GCN-NEXT:    v_cndmask_b32_e32 v2, v0, v2, vcc364; GCN-NEXT:    s_cmp_lg_u32 s6, 3365; GCN-NEXT:    v_or_b32_sdwa v2, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 src1_sel:DWORD366; GCN-NEXT:    v_mov_b32_e32 v1, s2367; GCN-NEXT:    s_cselect_b64 vcc, -1, 0368; GCN-NEXT:    s_cmp_lg_u32 s6, 2369; GCN-NEXT:    v_cndmask_b32_e32 v1, v0, v1, vcc370; GCN-NEXT:    v_mov_b32_e32 v4, s1371; GCN-NEXT:    s_cselect_b64 vcc, -1, 0372; GCN-NEXT:    s_lshr_b32 s1, s0, 16373; GCN-NEXT:    v_lshlrev_b32_e32 v1, 16, v1374; GCN-NEXT:    v_cndmask_b32_e32 v4, v0, v4, vcc375; GCN-NEXT:    s_cmp_lg_u32 s6, 1376; GCN-NEXT:    v_or_b32_sdwa v1, v4, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 src1_sel:DWORD377; GCN-NEXT:    v_mov_b32_e32 v4, s1378; GCN-NEXT:    s_cselect_b64 vcc, -1, 0379; GCN-NEXT:    s_cmp_lg_u32 s6, 0380; GCN-NEXT:    v_cndmask_b32_e32 v4, v0, v4, vcc381; GCN-NEXT:    v_mov_b32_e32 v5, s0382; GCN-NEXT:    s_cselect_b64 vcc, -1, 0383; GCN-NEXT:    v_lshlrev_b32_e32 v4, 16, v4384; GCN-NEXT:    v_cndmask_b32_e32 v0, v0, v5, vcc385; GCN-NEXT:    v_or_b32_sdwa v0, v0, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 src1_sel:DWORD386; GCN-NEXT:    v_mov_b32_e32 v4, s4387; GCN-NEXT:    v_mov_b32_e32 v5, s5388; GCN-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]389; GCN-NEXT:    s_endpgm390entry:391  %v = insertelement <8 x half> %vec, half 1.000000e+00, i32 %sel392  store <8 x half> %v, ptr addrspace(1) %out393  ret void394}395 396define amdgpu_kernel void @short2_inselt(ptr addrspace(1) %out, <2 x i16> %vec, i32 %sel) {397; GCN-LABEL: short2_inselt:398; GCN:       ; %bb.0: ; %entry399; GCN-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x24400; GCN-NEXT:    s_waitcnt lgkmcnt(0)401; GCN-NEXT:    s_lshl_b32 s3, s3, 4402; GCN-NEXT:    s_xor_b32 s4, s2, 0x10001403; GCN-NEXT:    s_lshl_b32 s3, 0xffff, s3404; GCN-NEXT:    s_and_b32 s3, s4, s3405; GCN-NEXT:    s_xor_b32 s2, s3, s2406; GCN-NEXT:    v_mov_b32_e32 v0, s0407; GCN-NEXT:    v_mov_b32_e32 v1, s1408; GCN-NEXT:    v_mov_b32_e32 v2, s2409; GCN-NEXT:    flat_store_dword v[0:1], v2410; GCN-NEXT:    s_endpgm411entry:412  %v = insertelement <2 x i16> %vec, i16 1, i32 %sel413  store <2 x i16> %v, ptr addrspace(1) %out414  ret void415}416 417define amdgpu_kernel void @short4_inselt(ptr addrspace(1) %out, <4 x i16> %vec, i32 %sel) {418; GCN-LABEL: short4_inselt:419; GCN:       ; %bb.0: ; %entry420; GCN-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x24421; GCN-NEXT:    s_load_dword s6, s[4:5], 0x34422; GCN-NEXT:    s_mov_b32 s4, 0x10001423; GCN-NEXT:    s_mov_b32 s5, s4424; GCN-NEXT:    s_waitcnt lgkmcnt(0)425; GCN-NEXT:    s_xor_b64 s[4:5], s[2:3], s[4:5]426; GCN-NEXT:    s_lshl_b32 s6, s6, 4427; GCN-NEXT:    s_lshl_b64 s[6:7], 0xffff, s6428; GCN-NEXT:    s_and_b64 s[4:5], s[4:5], s[6:7]429; GCN-NEXT:    s_xor_b64 s[2:3], s[4:5], s[2:3]430; GCN-NEXT:    v_mov_b32_e32 v0, s0431; GCN-NEXT:    v_mov_b32_e32 v2, s2432; GCN-NEXT:    v_mov_b32_e32 v1, s1433; GCN-NEXT:    v_mov_b32_e32 v3, s3434; GCN-NEXT:    flat_store_dwordx2 v[0:1], v[2:3]435; GCN-NEXT:    s_endpgm436entry:437  %v = insertelement <4 x i16> %vec, i16 1, i32 %sel438  store <4 x i16> %v, ptr addrspace(1) %out439  ret void440}441 442define amdgpu_kernel void @byte8_inselt(ptr addrspace(1) %out, <8 x i8> %vec, i32 %sel) {443; GCN-LABEL: byte8_inselt:444; GCN:       ; %bb.0: ; %entry445; GCN-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x24446; GCN-NEXT:    s_load_dword s6, s[4:5], 0x34447; GCN-NEXT:    s_waitcnt lgkmcnt(0)448; GCN-NEXT:    s_xor_b32 s5, s3, 0x1010101449; GCN-NEXT:    s_lshl_b32 s6, s6, 3450; GCN-NEXT:    s_xor_b32 s4, s2, 0x1010101451; GCN-NEXT:    s_lshl_b64 s[6:7], 0xff, s6452; GCN-NEXT:    s_and_b64 s[4:5], s[4:5], s[6:7]453; GCN-NEXT:    s_xor_b64 s[2:3], s[4:5], s[2:3]454; GCN-NEXT:    v_mov_b32_e32 v0, s0455; GCN-NEXT:    v_mov_b32_e32 v2, s2456; GCN-NEXT:    v_mov_b32_e32 v1, s1457; GCN-NEXT:    v_mov_b32_e32 v3, s3458; GCN-NEXT:    flat_store_dwordx2 v[0:1], v[2:3]459; GCN-NEXT:    s_endpgm460entry:461  %v = insertelement <8 x i8> %vec, i8 1, i32 %sel462  store <8 x i8> %v, ptr addrspace(1) %out463  ret void464}465 466define amdgpu_kernel void @byte16_inselt(ptr addrspace(1) %out, <16 x i8> %vec, i32 %sel) {467; GCN-LABEL: byte16_inselt:468; GCN:       ; %bb.0: ; %entry469; GCN-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x34470; GCN-NEXT:    s_load_dword s6, s[4:5], 0x44471; GCN-NEXT:    s_load_dwordx2 s[4:5], s[4:5], 0x24472; GCN-NEXT:    s_waitcnt lgkmcnt(0)473; GCN-NEXT:    s_lshr_b32 s7, s3, 24474; GCN-NEXT:    s_cmp_lg_u32 s6, 15475; GCN-NEXT:    s_cselect_b32 s7, s7, 1476; GCN-NEXT:    s_lshr_b32 s8, s3, 16477; GCN-NEXT:    s_lshl_b32 s7, s7, 8478; GCN-NEXT:    s_cmp_lg_u32 s6, 14479; GCN-NEXT:    s_cselect_b32 s8, s8, 1480; GCN-NEXT:    s_and_b32 s8, s8, 0xff481; GCN-NEXT:    s_or_b32 s7, s8, s7482; GCN-NEXT:    s_lshr_b32 s9, s3, 8483; GCN-NEXT:    s_lshl_b32 s7, s7, 16484; GCN-NEXT:    s_cmp_lg_u32 s6, 13485; GCN-NEXT:    s_cselect_b32 s8, s9, 1486; GCN-NEXT:    s_lshl_b32 s8, s8, 8487; GCN-NEXT:    s_cmp_lg_u32 s6, 12488; GCN-NEXT:    s_cselect_b32 s3, s3, 1489; GCN-NEXT:    s_and_b32 s3, s3, 0xff490; GCN-NEXT:    s_or_b32 s3, s3, s8491; GCN-NEXT:    s_and_b32 s3, s3, 0xffff492; GCN-NEXT:    s_or_b32 s3, s3, s7493; GCN-NEXT:    s_lshr_b32 s7, s2, 24494; GCN-NEXT:    s_cmp_lg_u32 s6, 11495; GCN-NEXT:    s_cselect_b32 s7, s7, 1496; GCN-NEXT:    s_lshl_b32 s7, s7, 8497; GCN-NEXT:    s_lshr_b32 s8, s2, 16498; GCN-NEXT:    s_cmp_lg_u32 s6, 10499; GCN-NEXT:    s_cselect_b32 s8, s8, 1500; GCN-NEXT:    s_and_b32 s8, s8, 0xff501; GCN-NEXT:    s_or_b32 s7, s8, s7502; GCN-NEXT:    s_lshl_b32 s7, s7, 16503; GCN-NEXT:    s_lshr_b32 s8, s2, 8504; GCN-NEXT:    s_cmp_lg_u32 s6, 9505; GCN-NEXT:    s_cselect_b32 s8, s8, 1506; GCN-NEXT:    s_lshl_b32 s8, s8, 8507; GCN-NEXT:    s_cmp_lg_u32 s6, 8508; GCN-NEXT:    s_cselect_b32 s2, s2, 1509; GCN-NEXT:    s_and_b32 s2, s2, 0xff510; GCN-NEXT:    s_or_b32 s2, s2, s8511; GCN-NEXT:    s_and_b32 s2, s2, 0xffff512; GCN-NEXT:    s_or_b32 s2, s2, s7513; GCN-NEXT:    s_lshr_b32 s7, s1, 24514; GCN-NEXT:    s_cmp_lg_u32 s6, 7515; GCN-NEXT:    s_cselect_b32 s7, s7, 1516; GCN-NEXT:    s_lshl_b32 s7, s7, 8517; GCN-NEXT:    s_lshr_b32 s8, s1, 16518; GCN-NEXT:    s_cmp_lg_u32 s6, 6519; GCN-NEXT:    s_cselect_b32 s8, s8, 1520; GCN-NEXT:    s_and_b32 s8, s8, 0xff521; GCN-NEXT:    s_or_b32 s7, s8, s7522; GCN-NEXT:    s_lshl_b32 s7, s7, 16523; GCN-NEXT:    s_lshr_b32 s8, s1, 8524; GCN-NEXT:    s_cmp_lg_u32 s6, 5525; GCN-NEXT:    s_cselect_b32 s8, s8, 1526; GCN-NEXT:    s_lshl_b32 s8, s8, 8527; GCN-NEXT:    s_cmp_lg_u32 s6, 4528; GCN-NEXT:    s_cselect_b32 s1, s1, 1529; GCN-NEXT:    s_and_b32 s1, s1, 0xff530; GCN-NEXT:    s_or_b32 s1, s1, s8531; GCN-NEXT:    s_and_b32 s1, s1, 0xffff532; GCN-NEXT:    s_or_b32 s1, s1, s7533; GCN-NEXT:    s_lshr_b32 s7, s0, 24534; GCN-NEXT:    s_cmp_lg_u32 s6, 3535; GCN-NEXT:    s_cselect_b32 s7, s7, 1536; GCN-NEXT:    s_lshl_b32 s7, s7, 8537; GCN-NEXT:    s_lshr_b32 s8, s0, 16538; GCN-NEXT:    s_cmp_lg_u32 s6, 2539; GCN-NEXT:    s_cselect_b32 s8, s8, 1540; GCN-NEXT:    s_and_b32 s8, s8, 0xff541; GCN-NEXT:    s_or_b32 s7, s8, s7542; GCN-NEXT:    s_lshl_b32 s7, s7, 16543; GCN-NEXT:    s_lshr_b32 s8, s0, 8544; GCN-NEXT:    s_cmp_lg_u32 s6, 1545; GCN-NEXT:    s_cselect_b32 s8, s8, 1546; GCN-NEXT:    s_lshl_b32 s8, s8, 8547; GCN-NEXT:    s_cmp_lg_u32 s6, 0548; GCN-NEXT:    s_cselect_b32 s0, s0, 1549; GCN-NEXT:    s_and_b32 s0, s0, 0xff550; GCN-NEXT:    s_or_b32 s0, s0, s8551; GCN-NEXT:    s_and_b32 s0, s0, 0xffff552; GCN-NEXT:    s_or_b32 s0, s0, s7553; GCN-NEXT:    v_mov_b32_e32 v4, s4554; GCN-NEXT:    v_mov_b32_e32 v0, s0555; GCN-NEXT:    v_mov_b32_e32 v1, s1556; GCN-NEXT:    v_mov_b32_e32 v2, s2557; GCN-NEXT:    v_mov_b32_e32 v3, s3558; GCN-NEXT:    v_mov_b32_e32 v5, s5559; GCN-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]560; GCN-NEXT:    s_endpgm561entry:562  %v = insertelement <16 x i8> %vec, i8 1, i32 %sel563  store <16 x i8> %v, ptr addrspace(1) %out564  ret void565}566 567define amdgpu_kernel void @double2_inselt(ptr addrspace(1) %out, <2 x double> %vec, i32 %sel) {568; GCN-LABEL: double2_inselt:569; GCN:       ; %bb.0: ; %entry570; GCN-NEXT:    s_load_dword s6, s[4:5], 0x44571; GCN-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x34572; GCN-NEXT:    s_load_dwordx2 s[4:5], s[4:5], 0x24573; GCN-NEXT:    s_waitcnt lgkmcnt(0)574; GCN-NEXT:    s_cmp_eq_u32 s6, 1575; GCN-NEXT:    s_cselect_b32 s3, 0x3ff00000, s3576; GCN-NEXT:    s_cselect_b32 s2, 0, s2577; GCN-NEXT:    s_cmp_eq_u32 s6, 0578; GCN-NEXT:    s_cselect_b32 s1, 0x3ff00000, s1579; GCN-NEXT:    s_cselect_b32 s0, 0, s0580; GCN-NEXT:    v_mov_b32_e32 v4, s4581; GCN-NEXT:    v_mov_b32_e32 v0, s0582; GCN-NEXT:    v_mov_b32_e32 v1, s1583; GCN-NEXT:    v_mov_b32_e32 v2, s2584; GCN-NEXT:    v_mov_b32_e32 v3, s3585; GCN-NEXT:    v_mov_b32_e32 v5, s5586; GCN-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]587; GCN-NEXT:    s_endpgm588entry:589  %v = insertelement <2 x double> %vec, double 1.000000e+00, i32 %sel590  store <2 x double> %v, ptr addrspace(1) %out591  ret void592}593 594define amdgpu_kernel void @double5_inselt(ptr addrspace(1) %out, <5 x double> %vec, i32 %sel) {595; GCN-LABEL: double5_inselt:596; GCN:       ; %bb.0: ; %entry597; GCN-NEXT:    s_load_dword s12, s[4:5], 0xa4598; GCN-NEXT:    s_load_dwordx2 s[8:9], s[4:5], 0x84599; GCN-NEXT:    s_load_dwordx2 s[10:11], s[4:5], 0x24600; GCN-NEXT:    s_load_dwordx8 s[0:7], s[4:5], 0x64601; GCN-NEXT:    s_waitcnt lgkmcnt(0)602; GCN-NEXT:    s_cmp_eq_u32 s12, 4603; GCN-NEXT:    s_cselect_b32 s9, 0x3ff00000, s9604; GCN-NEXT:    s_cselect_b32 s8, 0, s8605; GCN-NEXT:    s_cmp_eq_u32 s12, 1606; GCN-NEXT:    s_cselect_b32 s3, 0x3ff00000, s3607; GCN-NEXT:    s_cselect_b32 s2, 0, s2608; GCN-NEXT:    s_cmp_eq_u32 s12, 0609; GCN-NEXT:    s_cselect_b32 s13, 0x3ff00000, s1610; GCN-NEXT:    s_cselect_b32 s14, 0, s0611; GCN-NEXT:    s_cmp_eq_u32 s12, 3612; GCN-NEXT:    s_cselect_b32 s0, 0x3ff00000, s7613; GCN-NEXT:    s_cselect_b32 s1, 0, s6614; GCN-NEXT:    s_cmp_eq_u32 s12, 2615; GCN-NEXT:    s_cselect_b32 s5, 0x3ff00000, s5616; GCN-NEXT:    s_cselect_b32 s4, 0, s4617; GCN-NEXT:    v_mov_b32_e32 v3, s0618; GCN-NEXT:    s_add_u32 s0, s10, 16619; GCN-NEXT:    v_mov_b32_e32 v2, s1620; GCN-NEXT:    s_addc_u32 s1, s11, 0621; GCN-NEXT:    v_mov_b32_e32 v5, s1622; GCN-NEXT:    v_mov_b32_e32 v0, s4623; GCN-NEXT:    v_mov_b32_e32 v1, s5624; GCN-NEXT:    v_mov_b32_e32 v4, s0625; GCN-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]626; GCN-NEXT:    v_mov_b32_e32 v4, s10627; GCN-NEXT:    s_add_u32 s0, s10, 32628; GCN-NEXT:    v_mov_b32_e32 v0, s14629; GCN-NEXT:    v_mov_b32_e32 v1, s13630; GCN-NEXT:    v_mov_b32_e32 v2, s2631; GCN-NEXT:    v_mov_b32_e32 v3, s3632; GCN-NEXT:    v_mov_b32_e32 v5, s11633; GCN-NEXT:    s_addc_u32 s1, s11, 0634; GCN-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]635; GCN-NEXT:    s_nop 0636; GCN-NEXT:    v_mov_b32_e32 v3, s1637; GCN-NEXT:    v_mov_b32_e32 v0, s8638; GCN-NEXT:    v_mov_b32_e32 v1, s9639; GCN-NEXT:    v_mov_b32_e32 v2, s0640; GCN-NEXT:    flat_store_dwordx2 v[2:3], v[0:1]641; GCN-NEXT:    s_endpgm642entry:643  %v = insertelement <5 x double> %vec, double 1.000000e+00, i32 %sel644  store <5 x double> %v, ptr addrspace(1) %out645  ret void646}647 648define amdgpu_kernel void @double8_inselt(ptr addrspace(1) %out, <8 x double> %vec, i32 %sel) {649; GCN-LABEL: double8_inselt:650; GCN:       ; %bb.0: ; %entry651; GCN-NEXT:    s_load_dword s2, s[4:5], 0xa4652; GCN-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x64653; GCN-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x24654; GCN-NEXT:    v_mov_b32_e32 v16, 0x3ff00000655; GCN-NEXT:    s_waitcnt lgkmcnt(0)656; GCN-NEXT:    s_lshl_b32 m0, s2, 1657; GCN-NEXT:    v_mov_b32_e32 v0, s8658; GCN-NEXT:    v_mov_b32_e32 v1, s9659; GCN-NEXT:    v_mov_b32_e32 v2, s10660; GCN-NEXT:    v_mov_b32_e32 v3, s11661; GCN-NEXT:    v_mov_b32_e32 v4, s12662; GCN-NEXT:    v_mov_b32_e32 v5, s13663; GCN-NEXT:    v_mov_b32_e32 v6, s14664; GCN-NEXT:    v_mov_b32_e32 v7, s15665; GCN-NEXT:    v_mov_b32_e32 v8, s16666; GCN-NEXT:    v_mov_b32_e32 v9, s17667; GCN-NEXT:    v_mov_b32_e32 v10, s18668; GCN-NEXT:    v_mov_b32_e32 v11, s19669; GCN-NEXT:    v_mov_b32_e32 v12, s20670; GCN-NEXT:    v_mov_b32_e32 v13, s21671; GCN-NEXT:    v_mov_b32_e32 v14, s22672; GCN-NEXT:    v_mov_b32_e32 v15, s23673; GCN-NEXT:    s_add_u32 s2, s0, 48674; GCN-NEXT:    v_movreld_b32_e32 v0, 0675; GCN-NEXT:    s_addc_u32 s3, s1, 0676; GCN-NEXT:    v_movreld_b32_e32 v1, v16677; GCN-NEXT:    v_mov_b32_e32 v17, s3678; GCN-NEXT:    v_mov_b32_e32 v16, s2679; GCN-NEXT:    s_add_u32 s2, s0, 32680; GCN-NEXT:    s_addc_u32 s3, s1, 0681; GCN-NEXT:    flat_store_dwordx4 v[16:17], v[12:15]682; GCN-NEXT:    s_nop 0683; GCN-NEXT:    v_mov_b32_e32 v13, s3684; GCN-NEXT:    v_mov_b32_e32 v12, s2685; GCN-NEXT:    s_add_u32 s2, s0, 16686; GCN-NEXT:    s_addc_u32 s3, s1, 0687; GCN-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]688; GCN-NEXT:    s_nop 0689; GCN-NEXT:    v_mov_b32_e32 v9, s3690; GCN-NEXT:    v_mov_b32_e32 v8, s2691; GCN-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]692; GCN-NEXT:    s_nop 0693; GCN-NEXT:    v_mov_b32_e32 v5, s1694; GCN-NEXT:    v_mov_b32_e32 v4, s0695; GCN-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]696; GCN-NEXT:    s_endpgm697entry:698  %v = insertelement <8 x double> %vec, double 1.000000e+00, i32 %sel699  store <8 x double> %v, ptr addrspace(1) %out700  ret void701}702 703define amdgpu_kernel void @double7_inselt(ptr addrspace(1) %out, <7 x double> %vec, i32 %sel) {704; GCN-LABEL: double7_inselt:705; GCN:       ; %bb.0: ; %entry706; GCN-NEXT:    s_load_dwordx8 s[8:15], s[4:5], 0x64707; GCN-NEXT:    s_load_dwordx2 s[6:7], s[4:5], 0x24708; GCN-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0x94709; GCN-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x84710; GCN-NEXT:    v_mov_b32_e32 v16, 0x3ff00000711; GCN-NEXT:    s_waitcnt lgkmcnt(0)712; GCN-NEXT:    v_mov_b32_e32 v0, s8713; GCN-NEXT:    v_mov_b32_e32 v1, s9714; GCN-NEXT:    v_mov_b32_e32 v2, s10715; GCN-NEXT:    v_mov_b32_e32 v8, s0716; GCN-NEXT:    s_load_dword s0, s[4:5], 0xa4717; GCN-NEXT:    v_mov_b32_e32 v3, s11718; GCN-NEXT:    v_mov_b32_e32 v4, s12719; GCN-NEXT:    v_mov_b32_e32 v5, s13720; GCN-NEXT:    v_mov_b32_e32 v6, s14721; GCN-NEXT:    v_mov_b32_e32 v7, s15722; GCN-NEXT:    v_mov_b32_e32 v9, s1723; GCN-NEXT:    v_mov_b32_e32 v10, s2724; GCN-NEXT:    v_mov_b32_e32 v11, s3725; GCN-NEXT:    v_mov_b32_e32 v12, s16726; GCN-NEXT:    v_mov_b32_e32 v13, s17727; GCN-NEXT:    s_waitcnt lgkmcnt(0)728; GCN-NEXT:    s_lshl_b32 m0, s0, 1729; GCN-NEXT:    v_movreld_b32_e32 v0, 0730; GCN-NEXT:    s_add_u32 s0, s6, 16731; GCN-NEXT:    v_movreld_b32_e32 v1, v16732; GCN-NEXT:    s_addc_u32 s1, s7, 0733; GCN-NEXT:    v_mov_b32_e32 v15, s1734; GCN-NEXT:    v_mov_b32_e32 v14, s0735; GCN-NEXT:    flat_store_dwordx4 v[14:15], v[4:7]736; GCN-NEXT:    s_add_u32 s0, s6, 48737; GCN-NEXT:    v_mov_b32_e32 v4, s6738; GCN-NEXT:    v_mov_b32_e32 v5, s7739; GCN-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]740; GCN-NEXT:    s_addc_u32 s1, s7, 0741; GCN-NEXT:    v_mov_b32_e32 v0, s0742; GCN-NEXT:    v_mov_b32_e32 v1, s1743; GCN-NEXT:    s_add_u32 s0, s6, 32744; GCN-NEXT:    flat_store_dwordx2 v[0:1], v[12:13]745; GCN-NEXT:    s_addc_u32 s1, s7, 0746; GCN-NEXT:    v_mov_b32_e32 v0, s0747; GCN-NEXT:    v_mov_b32_e32 v1, s1748; GCN-NEXT:    flat_store_dwordx4 v[0:1], v[8:11]749; GCN-NEXT:    s_endpgm750entry:751  %v = insertelement <7 x double> %vec, double 1.000000e+00, i32 %sel752  store <7 x double> %v, ptr addrspace(1) %out753  ret void754}755 756define amdgpu_kernel void @double16_inselt(ptr addrspace(1) %out, <16 x double> %vec, i32 %sel) {757; GCN-LABEL: double16_inselt:758; GCN:       ; %bb.0: ; %entry759; GCN-NEXT:    s_load_dword s0, s[4:5], 0x124760; GCN-NEXT:    s_load_dwordx16 s[36:51], s[4:5], 0xa4761; GCN-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0xe4762; GCN-NEXT:    v_mov_b32_e32 v32, 0x3ff00000763; GCN-NEXT:    s_waitcnt lgkmcnt(0)764; GCN-NEXT:    v_mov_b32_e32 v0, s36765; GCN-NEXT:    s_lshl_b32 m0, s0, 1766; GCN-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x24767; GCN-NEXT:    v_mov_b32_e32 v1, s37768; GCN-NEXT:    v_mov_b32_e32 v2, s38769; GCN-NEXT:    v_mov_b32_e32 v3, s39770; GCN-NEXT:    v_mov_b32_e32 v4, s40771; GCN-NEXT:    v_mov_b32_e32 v5, s41772; GCN-NEXT:    v_mov_b32_e32 v6, s42773; GCN-NEXT:    v_mov_b32_e32 v7, s43774; GCN-NEXT:    v_mov_b32_e32 v8, s44775; GCN-NEXT:    v_mov_b32_e32 v9, s45776; GCN-NEXT:    v_mov_b32_e32 v10, s46777; GCN-NEXT:    v_mov_b32_e32 v11, s47778; GCN-NEXT:    v_mov_b32_e32 v12, s48779; GCN-NEXT:    v_mov_b32_e32 v13, s49780; GCN-NEXT:    v_mov_b32_e32 v14, s50781; GCN-NEXT:    v_mov_b32_e32 v15, s51782; GCN-NEXT:    v_mov_b32_e32 v16, s8783; GCN-NEXT:    v_mov_b32_e32 v17, s9784; GCN-NEXT:    v_mov_b32_e32 v18, s10785; GCN-NEXT:    v_mov_b32_e32 v19, s11786; GCN-NEXT:    v_mov_b32_e32 v20, s12787; GCN-NEXT:    v_mov_b32_e32 v21, s13788; GCN-NEXT:    v_mov_b32_e32 v22, s14789; GCN-NEXT:    v_mov_b32_e32 v23, s15790; GCN-NEXT:    v_mov_b32_e32 v24, s16791; GCN-NEXT:    v_mov_b32_e32 v25, s17792; GCN-NEXT:    v_mov_b32_e32 v26, s18793; GCN-NEXT:    v_mov_b32_e32 v27, s19794; GCN-NEXT:    v_mov_b32_e32 v28, s20795; GCN-NEXT:    v_mov_b32_e32 v29, s21796; GCN-NEXT:    v_mov_b32_e32 v30, s22797; GCN-NEXT:    v_mov_b32_e32 v31, s23798; GCN-NEXT:    s_waitcnt lgkmcnt(0)799; GCN-NEXT:    s_add_u32 s2, s0, 0x70800; GCN-NEXT:    v_movreld_b32_e32 v0, 0801; GCN-NEXT:    s_addc_u32 s3, s1, 0802; GCN-NEXT:    v_movreld_b32_e32 v1, v32803; GCN-NEXT:    v_mov_b32_e32 v33, s3804; GCN-NEXT:    v_mov_b32_e32 v32, s2805; GCN-NEXT:    s_add_u32 s2, s0, 0x60806; GCN-NEXT:    s_addc_u32 s3, s1, 0807; GCN-NEXT:    flat_store_dwordx4 v[32:33], v[28:31]808; GCN-NEXT:    s_nop 0809; GCN-NEXT:    v_mov_b32_e32 v29, s3810; GCN-NEXT:    v_mov_b32_e32 v28, s2811; GCN-NEXT:    s_add_u32 s2, s0, 0x50812; GCN-NEXT:    s_addc_u32 s3, s1, 0813; GCN-NEXT:    flat_store_dwordx4 v[28:29], v[24:27]814; GCN-NEXT:    s_nop 0815; GCN-NEXT:    v_mov_b32_e32 v25, s3816; GCN-NEXT:    v_mov_b32_e32 v24, s2817; GCN-NEXT:    s_add_u32 s2, s0, 64818; GCN-NEXT:    s_addc_u32 s3, s1, 0819; GCN-NEXT:    flat_store_dwordx4 v[24:25], v[20:23]820; GCN-NEXT:    s_nop 0821; GCN-NEXT:    v_mov_b32_e32 v21, s3822; GCN-NEXT:    v_mov_b32_e32 v20, s2823; GCN-NEXT:    s_add_u32 s2, s0, 48824; GCN-NEXT:    s_addc_u32 s3, s1, 0825; GCN-NEXT:    flat_store_dwordx4 v[20:21], v[16:19]826; GCN-NEXT:    s_nop 0827; GCN-NEXT:    v_mov_b32_e32 v17, s3828; GCN-NEXT:    v_mov_b32_e32 v16, s2829; GCN-NEXT:    s_add_u32 s2, s0, 32830; GCN-NEXT:    s_addc_u32 s3, s1, 0831; GCN-NEXT:    flat_store_dwordx4 v[16:17], v[12:15]832; GCN-NEXT:    s_nop 0833; GCN-NEXT:    v_mov_b32_e32 v13, s3834; GCN-NEXT:    v_mov_b32_e32 v12, s2835; GCN-NEXT:    s_add_u32 s2, s0, 16836; GCN-NEXT:    s_addc_u32 s3, s1, 0837; GCN-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]838; GCN-NEXT:    s_nop 0839; GCN-NEXT:    v_mov_b32_e32 v9, s3840; GCN-NEXT:    v_mov_b32_e32 v8, s2841; GCN-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]842; GCN-NEXT:    s_nop 0843; GCN-NEXT:    v_mov_b32_e32 v5, s1844; GCN-NEXT:    v_mov_b32_e32 v4, s0845; GCN-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]846; GCN-NEXT:    s_endpgm847entry:848  %v = insertelement <16 x double> %vec, double 1.000000e+00, i32 %sel849  store <16 x double> %v, ptr addrspace(1) %out850  ret void851}852 853define amdgpu_kernel void @double15_inselt(ptr addrspace(1) %out, <15 x double> %vec, i32 %sel) {854; GCN-LABEL: double15_inselt:855; GCN:       ; %bb.0: ; %entry856; GCN-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0xa4857; GCN-NEXT:    s_load_dwordx2 s[6:7], s[4:5], 0x114858; GCN-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x104859; GCN-NEXT:    s_load_dwordx8 s[24:31], s[4:5], 0xe4860; GCN-NEXT:    v_mov_b32_e32 v32, 0x3ff00000861; GCN-NEXT:    s_waitcnt lgkmcnt(0)862; GCN-NEXT:    v_mov_b32_e32 v0, s8863; GCN-NEXT:    v_mov_b32_e32 v1, s9864; GCN-NEXT:    v_mov_b32_e32 v24, s0865; GCN-NEXT:    s_load_dword s0, s[4:5], 0x124866; GCN-NEXT:    v_mov_b32_e32 v25, s1867; GCN-NEXT:    v_mov_b32_e32 v2, s10868; GCN-NEXT:    v_mov_b32_e32 v3, s11869; GCN-NEXT:    v_mov_b32_e32 v4, s12870; GCN-NEXT:    s_waitcnt lgkmcnt(0)871; GCN-NEXT:    s_lshl_b32 m0, s0, 1872; GCN-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x24873; GCN-NEXT:    v_mov_b32_e32 v5, s13874; GCN-NEXT:    v_mov_b32_e32 v6, s14875; GCN-NEXT:    v_mov_b32_e32 v7, s15876; GCN-NEXT:    v_mov_b32_e32 v8, s16877; GCN-NEXT:    v_mov_b32_e32 v9, s17878; GCN-NEXT:    v_mov_b32_e32 v10, s18879; GCN-NEXT:    v_mov_b32_e32 v11, s19880; GCN-NEXT:    v_mov_b32_e32 v12, s20881; GCN-NEXT:    v_mov_b32_e32 v13, s21882; GCN-NEXT:    v_mov_b32_e32 v14, s22883; GCN-NEXT:    v_mov_b32_e32 v15, s23884; GCN-NEXT:    v_mov_b32_e32 v16, s24885; GCN-NEXT:    v_mov_b32_e32 v17, s25886; GCN-NEXT:    v_mov_b32_e32 v18, s26887; GCN-NEXT:    v_mov_b32_e32 v19, s27888; GCN-NEXT:    v_mov_b32_e32 v20, s28889; GCN-NEXT:    v_mov_b32_e32 v21, s29890; GCN-NEXT:    v_mov_b32_e32 v22, s30891; GCN-NEXT:    v_mov_b32_e32 v23, s31892; GCN-NEXT:    v_mov_b32_e32 v26, s2893; GCN-NEXT:    v_mov_b32_e32 v27, s3894; GCN-NEXT:    v_mov_b32_e32 v28, s6895; GCN-NEXT:    v_mov_b32_e32 v29, s7896; GCN-NEXT:    v_movreld_b32_e32 v0, 0897; GCN-NEXT:    s_waitcnt lgkmcnt(0)898; GCN-NEXT:    s_add_u32 s2, s0, 0x50899; GCN-NEXT:    v_movreld_b32_e32 v1, v32900; GCN-NEXT:    s_addc_u32 s3, s1, 0901; GCN-NEXT:    v_mov_b32_e32 v31, s3902; GCN-NEXT:    v_mov_b32_e32 v30, s2903; GCN-NEXT:    s_add_u32 s2, s0, 64904; GCN-NEXT:    s_addc_u32 s3, s1, 0905; GCN-NEXT:    flat_store_dwordx4 v[30:31], v[20:23]906; GCN-NEXT:    s_nop 0907; GCN-NEXT:    v_mov_b32_e32 v21, s3908; GCN-NEXT:    v_mov_b32_e32 v20, s2909; GCN-NEXT:    s_add_u32 s2, s0, 48910; GCN-NEXT:    s_addc_u32 s3, s1, 0911; GCN-NEXT:    flat_store_dwordx4 v[20:21], v[16:19]912; GCN-NEXT:    s_nop 0913; GCN-NEXT:    v_mov_b32_e32 v17, s3914; GCN-NEXT:    v_mov_b32_e32 v16, s2915; GCN-NEXT:    s_add_u32 s2, s0, 32916; GCN-NEXT:    s_addc_u32 s3, s1, 0917; GCN-NEXT:    flat_store_dwordx4 v[16:17], v[12:15]918; GCN-NEXT:    s_nop 0919; GCN-NEXT:    v_mov_b32_e32 v13, s3920; GCN-NEXT:    v_mov_b32_e32 v12, s2921; GCN-NEXT:    s_add_u32 s2, s0, 16922; GCN-NEXT:    s_addc_u32 s3, s1, 0923; GCN-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]924; GCN-NEXT:    s_nop 0925; GCN-NEXT:    v_mov_b32_e32 v9, s3926; GCN-NEXT:    v_mov_b32_e32 v8, s2927; GCN-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]928; GCN-NEXT:    s_add_u32 s2, s0, 0x70929; GCN-NEXT:    v_mov_b32_e32 v5, s1930; GCN-NEXT:    v_mov_b32_e32 v4, s0931; GCN-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]932; GCN-NEXT:    s_addc_u32 s3, s1, 0933; GCN-NEXT:    v_mov_b32_e32 v0, s2934; GCN-NEXT:    v_mov_b32_e32 v1, s3935; GCN-NEXT:    s_add_u32 s0, s0, 0x60936; GCN-NEXT:    flat_store_dwordx2 v[0:1], v[28:29]937; GCN-NEXT:    s_addc_u32 s1, s1, 0938; GCN-NEXT:    v_mov_b32_e32 v0, s0939; GCN-NEXT:    v_mov_b32_e32 v1, s1940; GCN-NEXT:    flat_store_dwordx4 v[0:1], v[24:27]941; GCN-NEXT:    s_endpgm942entry:943  %v = insertelement <15 x double> %vec, double 1.000000e+00, i32 %sel944  store <15 x double> %v, ptr addrspace(1) %out945  ret void946}947 948; FIXME: Fold out s_or_b32 s2, 0, s3949define amdgpu_kernel void @bit4_inselt(ptr addrspace(1) %out, <4 x i1> %vec, i32 %sel) {950; GCN-LABEL: bit4_inselt:951; GCN:       ; %bb.0: ; %entry952; GCN-NEXT:    s_mov_b32 s12, SCRATCH_RSRC_DWORD0953; GCN-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x24954; GCN-NEXT:    s_mov_b32 s13, SCRATCH_RSRC_DWORD1955; GCN-NEXT:    s_mov_b32 s14, -1956; GCN-NEXT:    s_mov_b32 s15, 0xe80000957; GCN-NEXT:    s_add_u32 s12, s12, s11958; GCN-NEXT:    s_addc_u32 s13, s13, 0959; GCN-NEXT:    s_waitcnt lgkmcnt(0)960; GCN-NEXT:    s_bfe_u32 s6, s2, 0x10003961; GCN-NEXT:    v_mov_b32_e32 v0, s2962; GCN-NEXT:    s_bfe_u32 s5, s2, 0x20002963; GCN-NEXT:    buffer_store_byte v0, off, s[12:15], 0964; GCN-NEXT:    v_mov_b32_e32 v0, s6965; GCN-NEXT:    s_bfe_u32 s4, s2, 0x10001966; GCN-NEXT:    buffer_store_byte v0, off, s[12:15], 0 offset:3967; GCN-NEXT:    v_mov_b32_e32 v0, s5968; GCN-NEXT:    s_and_b32 s3, s3, 3969; GCN-NEXT:    buffer_store_byte v0, off, s[12:15], 0 offset:2970; GCN-NEXT:    v_mov_b32_e32 v0, s4971; GCN-NEXT:    v_or_b32_e64 v1, s3, 0972; GCN-NEXT:    buffer_store_byte v0, off, s[12:15], 0 offset:1973; GCN-NEXT:    v_mov_b32_e32 v0, 1974; GCN-NEXT:    buffer_store_byte v0, v1, s[12:15], 0 offen975; GCN-NEXT:    buffer_load_ubyte v0, off, s[12:15], 0976; GCN-NEXT:    buffer_load_ubyte v1, off, s[12:15], 0 offset:1977; GCN-NEXT:    buffer_load_ubyte v2, off, s[12:15], 0 offset:2978; GCN-NEXT:    buffer_load_ubyte v3, off, s[12:15], 0 offset:3979; GCN-NEXT:    s_waitcnt vmcnt(3)980; GCN-NEXT:    v_and_b32_e32 v0, 1, v0981; GCN-NEXT:    s_waitcnt vmcnt(2)982; GCN-NEXT:    v_and_b32_e32 v1, 1, v1983; GCN-NEXT:    s_waitcnt vmcnt(1)984; GCN-NEXT:    v_and_b32_e32 v2, 1, v2985; GCN-NEXT:    v_lshlrev_b16_e32 v1, 1, v1986; GCN-NEXT:    v_lshlrev_b16_e32 v2, 2, v2987; GCN-NEXT:    v_or_b32_e32 v0, v0, v1988; GCN-NEXT:    s_waitcnt vmcnt(0)989; GCN-NEXT:    v_lshlrev_b16_e32 v3, 3, v3990; GCN-NEXT:    v_or_b32_e32 v0, v0, v2991; GCN-NEXT:    v_or_b32_e32 v0, v0, v3992; GCN-NEXT:    v_and_b32_e32 v2, 15, v0993; GCN-NEXT:    v_mov_b32_e32 v0, s0994; GCN-NEXT:    v_mov_b32_e32 v1, s1995; GCN-NEXT:    flat_store_byte v[0:1], v2996; GCN-NEXT:    s_endpgm997entry:998  %v = insertelement <4 x i1> %vec, i1 1, i32 %sel999  store <4 x i1> %v, ptr addrspace(1) %out1000  ret void1001}1002 1003define amdgpu_kernel void @bit128_inselt(ptr addrspace(1) %out, <128 x i1> %vec, i32 %sel) {1004; GCN-LABEL: bit128_inselt:1005; GCN:       ; %bb.0: ; %entry1006; GCN-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x341007; GCN-NEXT:    s_load_dword s6, s[4:5], 0x441008; GCN-NEXT:    s_load_dwordx2 s[4:5], s[4:5], 0x241009; GCN-NEXT:    ; implicit-def: $vgpr6 : SGPR spill to VGPR lane1010; GCN-NEXT:    s_waitcnt lgkmcnt(0)1011; GCN-NEXT:    s_bfe_u32 s9, s0, 0xf00011012; GCN-NEXT:    s_lshr_b32 s42, s1, 161013; GCN-NEXT:    v_writelane_b32 v6, s4, 01014; GCN-NEXT:    v_writelane_b32 v6, s5, 11015; GCN-NEXT:    s_lshr_b32 s4, s0, 161016; GCN-NEXT:    v_writelane_b32 v6, s4, 21017; GCN-NEXT:    s_lshr_b32 s4, s0, 171018; GCN-NEXT:    v_writelane_b32 v6, s4, 31019; GCN-NEXT:    s_lshr_b32 s4, s0, 181020; GCN-NEXT:    v_writelane_b32 v6, s4, 41021; GCN-NEXT:    s_lshr_b32 s4, s0, 191022; GCN-NEXT:    v_writelane_b32 v6, s4, 51023; GCN-NEXT:    s_lshr_b32 s4, s0, 201024; GCN-NEXT:    v_writelane_b32 v6, s4, 61025; GCN-NEXT:    s_lshr_b32 s4, s0, 211026; GCN-NEXT:    v_writelane_b32 v6, s4, 71027; GCN-NEXT:    s_lshr_b32 s4, s0, 221028; GCN-NEXT:    v_writelane_b32 v6, s4, 81029; GCN-NEXT:    s_lshr_b32 s4, s0, 231030; GCN-NEXT:    v_writelane_b32 v6, s4, 91031; GCN-NEXT:    s_lshr_b32 s4, s0, 241032; GCN-NEXT:    v_writelane_b32 v6, s4, 101033; GCN-NEXT:    s_lshr_b32 s4, s0, 251034; GCN-NEXT:    v_writelane_b32 v6, s4, 111035; GCN-NEXT:    s_lshr_b32 s4, s0, 261036; GCN-NEXT:    v_writelane_b32 v6, s4, 121037; GCN-NEXT:    s_lshr_b32 s4, s0, 271038; GCN-NEXT:    v_writelane_b32 v6, s4, 131039; GCN-NEXT:    s_lshr_b32 s4, s0, 281040; GCN-NEXT:    v_writelane_b32 v6, s4, 141041; GCN-NEXT:    s_lshr_b32 s4, s0, 291042; GCN-NEXT:    v_writelane_b32 v6, s4, 151043; GCN-NEXT:    s_lshr_b32 s4, s0, 301044; GCN-NEXT:    v_writelane_b32 v6, s4, 161045; GCN-NEXT:    s_lshr_b32 s4, s0, 311046; GCN-NEXT:    v_writelane_b32 v6, s4, 171047; GCN-NEXT:    v_writelane_b32 v6, s9, 181048; GCN-NEXT:    s_bfe_u32 s9, s0, 0xe00021049; GCN-NEXT:    v_writelane_b32 v6, s9, 191050; GCN-NEXT:    s_bfe_u32 s9, s0, 0xd00031051; GCN-NEXT:    v_writelane_b32 v6, s9, 201052; GCN-NEXT:    s_bfe_u32 s9, s0, 0xc00041053; GCN-NEXT:    v_writelane_b32 v6, s9, 211054; GCN-NEXT:    s_bfe_u32 s9, s0, 0xb00051055; GCN-NEXT:    v_writelane_b32 v6, s9, 221056; GCN-NEXT:    s_bfe_u32 s9, s0, 0xa00061057; GCN-NEXT:    v_writelane_b32 v6, s9, 231058; GCN-NEXT:    s_bfe_u32 s9, s0, 0x900071059; GCN-NEXT:    v_writelane_b32 v6, s9, 241060; GCN-NEXT:    s_bfe_u32 s9, s0, 0x800081061; GCN-NEXT:    v_writelane_b32 v6, s9, 251062; GCN-NEXT:    s_bfe_u32 s9, s0, 0x700091063; GCN-NEXT:    v_writelane_b32 v6, s9, 261064; GCN-NEXT:    s_bfe_u32 s9, s0, 0x6000a1065; GCN-NEXT:    v_writelane_b32 v6, s9, 271066; GCN-NEXT:    s_bfe_u32 s9, s0, 0x5000b1067; GCN-NEXT:    v_writelane_b32 v6, s9, 281068; GCN-NEXT:    s_bfe_u32 s9, s0, 0x4000c1069; GCN-NEXT:    v_writelane_b32 v6, s9, 291070; GCN-NEXT:    s_bfe_u32 s9, s0, 0x3000d1071; GCN-NEXT:    v_writelane_b32 v6, s9, 301072; GCN-NEXT:    s_bfe_u32 s9, s0, 0x2000e1073; GCN-NEXT:    v_writelane_b32 v6, s9, 311074; GCN-NEXT:    s_bfe_u32 s9, s0, 0x1000f1075; GCN-NEXT:    v_writelane_b32 v6, s9, 321076; GCN-NEXT:    s_bfe_u32 s9, s1, 0xf00011077; GCN-NEXT:    s_lshr_b32 s43, s1, 171078; GCN-NEXT:    s_lshr_b32 s45, s1, 181079; GCN-NEXT:    s_lshr_b32 s47, s1, 191080; GCN-NEXT:    s_lshr_b32 s50, s1, 201081; GCN-NEXT:    s_lshr_b32 s51, s1, 211082; GCN-NEXT:    s_lshr_b32 s53, s1, 221083; GCN-NEXT:    s_lshr_b32 s55, s1, 231084; GCN-NEXT:    s_lshr_b32 s58, s1, 241085; GCN-NEXT:    s_lshr_b32 s59, s1, 251086; GCN-NEXT:    s_lshr_b32 s61, s1, 261087; GCN-NEXT:    s_lshr_b32 s63, s1, 271088; GCN-NEXT:    s_lshr_b32 s66, s1, 281089; GCN-NEXT:    s_lshr_b32 s67, s1, 291090; GCN-NEXT:    s_lshr_b32 s68, s1, 301091; GCN-NEXT:    s_lshr_b32 s69, s1, 311092; GCN-NEXT:    s_lshr_b32 s73, s2, 161093; GCN-NEXT:    s_lshr_b32 s74, s2, 171094; GCN-NEXT:    s_lshr_b32 s77, s2, 181095; GCN-NEXT:    s_lshr_b32 s78, s2, 191096; GCN-NEXT:    s_lshr_b32 s81, s2, 201097; GCN-NEXT:    s_lshr_b32 s82, s2, 211098; GCN-NEXT:    s_lshr_b32 s84, s2, 221099; GCN-NEXT:    s_lshr_b32 s86, s2, 231100; GCN-NEXT:    s_lshr_b32 s89, s2, 241101; GCN-NEXT:    s_lshr_b32 s90, s2, 251102; GCN-NEXT:    s_lshr_b32 s93, s2, 261103; GCN-NEXT:    s_lshr_b32 s94, s2, 271104; GCN-NEXT:    s_lshr_b32 vcc_hi, s2, 281105; GCN-NEXT:    s_lshr_b32 s39, s2, 291106; GCN-NEXT:    s_lshr_b32 s38, s2, 301107; GCN-NEXT:    s_lshr_b32 s37, s2, 311108; GCN-NEXT:    s_lshr_b32 s33, s3, 161109; GCN-NEXT:    s_lshr_b32 s31, s3, 171110; GCN-NEXT:    s_lshr_b32 s28, s3, 181111; GCN-NEXT:    s_lshr_b32 s27, s3, 191112; GCN-NEXT:    s_lshr_b32 s24, s3, 201113; GCN-NEXT:    s_lshr_b32 s23, s3, 211114; GCN-NEXT:    s_lshr_b32 s20, s3, 221115; GCN-NEXT:    s_lshr_b32 s19, s3, 231116; GCN-NEXT:    s_lshr_b32 s16, s3, 241117; GCN-NEXT:    s_lshr_b32 s15, s3, 251118; GCN-NEXT:    s_lshr_b32 s12, s3, 261119; GCN-NEXT:    s_lshr_b32 s11, s3, 271120; GCN-NEXT:    s_lshr_b32 s8, s3, 281121; GCN-NEXT:    s_lshr_b32 s7, s3, 291122; GCN-NEXT:    s_lshr_b32 s5, s3, 301123; GCN-NEXT:    s_lshr_b32 s4, s3, 311124; GCN-NEXT:    v_writelane_b32 v6, s9, 331125; GCN-NEXT:    s_bfe_u32 s40, s1, 0xe00021126; GCN-NEXT:    s_bfe_u32 s41, s1, 0xd00031127; GCN-NEXT:    s_bfe_u32 s44, s1, 0xc00041128; GCN-NEXT:    s_bfe_u32 s46, s1, 0xb00051129; GCN-NEXT:    s_bfe_u32 s48, s1, 0xa00061130; GCN-NEXT:    s_bfe_u32 s49, s1, 0x900071131; GCN-NEXT:    s_bfe_u32 s52, s1, 0x800081132; GCN-NEXT:    s_bfe_u32 s54, s1, 0x700091133; GCN-NEXT:    s_bfe_u32 s56, s1, 0x6000a1134; GCN-NEXT:    s_bfe_u32 s57, s1, 0x5000b1135; GCN-NEXT:    s_bfe_u32 s60, s1, 0x4000c1136; GCN-NEXT:    s_bfe_u32 s62, s1, 0x3000d1137; GCN-NEXT:    s_bfe_u32 s64, s1, 0x2000e1138; GCN-NEXT:    s_bfe_u32 s65, s1, 0x1000f1139; GCN-NEXT:    s_bfe_u32 s70, s2, 0xf00011140; GCN-NEXT:    s_bfe_u32 s71, s2, 0xe00021141; GCN-NEXT:    s_bfe_u32 s72, s2, 0xd00031142; GCN-NEXT:    s_bfe_u32 s75, s2, 0xc00041143; GCN-NEXT:    s_bfe_u32 s76, s2, 0xb00051144; GCN-NEXT:    s_bfe_u32 s79, s2, 0xa00061145; GCN-NEXT:    s_bfe_u32 s80, s2, 0x900071146; GCN-NEXT:    s_bfe_u32 s83, s2, 0x800081147; GCN-NEXT:    s_bfe_u32 s85, s2, 0x700091148; GCN-NEXT:    s_bfe_u32 s87, s2, 0x6000a1149; GCN-NEXT:    s_bfe_u32 s88, s2, 0x5000b1150; GCN-NEXT:    s_bfe_u32 s91, s2, 0x4000c1151; GCN-NEXT:    s_bfe_u32 s92, s2, 0x3000d1152; GCN-NEXT:    s_bfe_u32 s95, s2, 0x2000e1153; GCN-NEXT:    s_bfe_u32 vcc_lo, s2, 0x1000f1154; GCN-NEXT:    s_bfe_u32 s36, s3, 0xf00011155; GCN-NEXT:    s_bfe_u32 s35, s3, 0xe00021156; GCN-NEXT:    s_bfe_u32 s34, s3, 0xd00031157; GCN-NEXT:    s_bfe_u32 s30, s3, 0xc00041158; GCN-NEXT:    s_bfe_u32 s29, s3, 0xb00051159; GCN-NEXT:    s_bfe_u32 s26, s3, 0xa00061160; GCN-NEXT:    s_bfe_u32 s25, s3, 0x900071161; GCN-NEXT:    s_bfe_u32 s22, s3, 0x800081162; GCN-NEXT:    s_bfe_u32 s21, s3, 0x700091163; GCN-NEXT:    s_bfe_u32 s18, s3, 0x6000a1164; GCN-NEXT:    s_bfe_u32 s17, s3, 0x5000b1165; GCN-NEXT:    s_bfe_u32 s14, s3, 0x4000c1166; GCN-NEXT:    s_bfe_u32 s13, s3, 0x3000d1167; GCN-NEXT:    s_bfe_u32 s10, s3, 0x2000e1168; GCN-NEXT:    s_bfe_u32 s9, s3, 0x1000f1169; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x7f1170; GCN-NEXT:    s_cselect_b32 s4, s4, 11171; GCN-NEXT:    s_lshl_b32 s4, s4, 31172; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x7e1173; GCN-NEXT:    s_cselect_b32 s5, s5, 11174; GCN-NEXT:    s_and_b32 s5, s5, 11175; GCN-NEXT:    s_lshl_b32 s5, s5, 21176; GCN-NEXT:    s_or_b32 s4, s4, s51177; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x7d1178; GCN-NEXT:    s_cselect_b32 s5, s7, 11179; GCN-NEXT:    s_lshl_b32 s5, s5, 11180; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x7c1181; GCN-NEXT:    s_cselect_b32 s7, s8, 11182; GCN-NEXT:    s_and_b32 s7, s7, 11183; GCN-NEXT:    s_or_b32 s5, s7, s51184; GCN-NEXT:    s_and_b32 s5, s5, 31185; GCN-NEXT:    s_or_b32 s4, s5, s41186; GCN-NEXT:    s_lshl_b32 s4, s4, 121187; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x7b1188; GCN-NEXT:    s_cselect_b32 s5, s11, 11189; GCN-NEXT:    s_lshl_b32 s5, s5, 31190; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x7a1191; GCN-NEXT:    s_cselect_b32 s7, s12, 11192; GCN-NEXT:    s_and_b32 s7, s7, 11193; GCN-NEXT:    s_lshl_b32 s7, s7, 21194; GCN-NEXT:    s_or_b32 s5, s5, s71195; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x791196; GCN-NEXT:    s_cselect_b32 s7, s15, 11197; GCN-NEXT:    s_lshl_b32 s7, s7, 11198; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x781199; GCN-NEXT:    s_cselect_b32 s8, s16, 11200; GCN-NEXT:    s_and_b32 s8, s8, 11201; GCN-NEXT:    s_or_b32 s7, s8, s71202; GCN-NEXT:    s_and_b32 s7, s7, 31203; GCN-NEXT:    s_or_b32 s5, s7, s51204; GCN-NEXT:    s_and_b32 s5, s5, 151205; GCN-NEXT:    s_lshl_b32 s5, s5, 81206; GCN-NEXT:    s_or_b32 s4, s4, s51207; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x771208; GCN-NEXT:    s_cselect_b32 s5, s19, 11209; GCN-NEXT:    s_lshl_b32 s5, s5, 31210; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x761211; GCN-NEXT:    s_cselect_b32 s7, s20, 11212; GCN-NEXT:    s_and_b32 s7, s7, 11213; GCN-NEXT:    s_lshl_b32 s7, s7, 21214; GCN-NEXT:    s_or_b32 s5, s5, s71215; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x751216; GCN-NEXT:    s_cselect_b32 s7, s23, 11217; GCN-NEXT:    s_lshl_b32 s7, s7, 11218; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x741219; GCN-NEXT:    s_cselect_b32 s8, s24, 11220; GCN-NEXT:    s_and_b32 s8, s8, 11221; GCN-NEXT:    s_or_b32 s7, s8, s71222; GCN-NEXT:    s_and_b32 s7, s7, 31223; GCN-NEXT:    s_or_b32 s5, s7, s51224; GCN-NEXT:    s_lshl_b32 s5, s5, 41225; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x731226; GCN-NEXT:    s_cselect_b32 s7, s27, 11227; GCN-NEXT:    s_lshl_b32 s7, s7, 31228; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x721229; GCN-NEXT:    s_cselect_b32 s8, s28, 11230; GCN-NEXT:    s_and_b32 s8, s8, 11231; GCN-NEXT:    s_lshl_b32 s8, s8, 21232; GCN-NEXT:    s_or_b32 s7, s7, s81233; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x711234; GCN-NEXT:    s_cselect_b32 s8, s31, 11235; GCN-NEXT:    s_lshl_b32 s8, s8, 11236; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x701237; GCN-NEXT:    s_cselect_b32 s11, s33, 11238; GCN-NEXT:    s_and_b32 s11, s11, 11239; GCN-NEXT:    s_or_b32 s8, s11, s81240; GCN-NEXT:    s_and_b32 s8, s8, 31241; GCN-NEXT:    s_or_b32 s7, s8, s71242; GCN-NEXT:    s_and_b32 s7, s7, 151243; GCN-NEXT:    s_or_b32 s5, s7, s51244; GCN-NEXT:    s_and_b32 s5, s5, 0xff1245; GCN-NEXT:    s_or_b32 s4, s5, s41246; GCN-NEXT:    s_lshl_b32 s4, s4, 161247; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x6f1248; GCN-NEXT:    s_cselect_b32 s5, s9, 11249; GCN-NEXT:    s_lshl_b32 s5, s5, 31250; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x6e1251; GCN-NEXT:    s_cselect_b32 s7, s10, 11252; GCN-NEXT:    s_and_b32 s7, s7, 11253; GCN-NEXT:    s_lshl_b32 s7, s7, 21254; GCN-NEXT:    s_or_b32 s5, s5, s71255; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x6d1256; GCN-NEXT:    s_cselect_b32 s7, s13, 11257; GCN-NEXT:    s_lshl_b32 s7, s7, 11258; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x6c1259; GCN-NEXT:    s_cselect_b32 s8, s14, 11260; GCN-NEXT:    s_and_b32 s8, s8, 11261; GCN-NEXT:    s_or_b32 s7, s8, s71262; GCN-NEXT:    s_and_b32 s7, s7, 31263; GCN-NEXT:    s_or_b32 s5, s7, s51264; GCN-NEXT:    s_lshl_b32 s5, s5, 121265; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x6b1266; GCN-NEXT:    s_cselect_b32 s7, s17, 11267; GCN-NEXT:    s_lshl_b32 s7, s7, 31268; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x6a1269; GCN-NEXT:    s_cselect_b32 s8, s18, 11270; GCN-NEXT:    s_and_b32 s8, s8, 11271; GCN-NEXT:    s_lshl_b32 s8, s8, 21272; GCN-NEXT:    s_or_b32 s7, s7, s81273; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x691274; GCN-NEXT:    s_cselect_b32 s8, s21, 11275; GCN-NEXT:    s_lshl_b32 s8, s8, 11276; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x681277; GCN-NEXT:    s_cselect_b32 s9, s22, 11278; GCN-NEXT:    s_and_b32 s9, s9, 11279; GCN-NEXT:    s_or_b32 s8, s9, s81280; GCN-NEXT:    s_and_b32 s8, s8, 31281; GCN-NEXT:    s_or_b32 s7, s8, s71282; GCN-NEXT:    s_and_b32 s7, s7, 151283; GCN-NEXT:    s_lshl_b32 s7, s7, 81284; GCN-NEXT:    s_or_b32 s5, s5, s71285; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x671286; GCN-NEXT:    s_cselect_b32 s7, s25, 11287; GCN-NEXT:    s_lshl_b32 s7, s7, 31288; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x661289; GCN-NEXT:    s_cselect_b32 s8, s26, 11290; GCN-NEXT:    s_and_b32 s8, s8, 11291; GCN-NEXT:    s_lshl_b32 s8, s8, 21292; GCN-NEXT:    s_or_b32 s7, s7, s81293; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x651294; GCN-NEXT:    s_cselect_b32 s8, s29, 11295; GCN-NEXT:    s_lshl_b32 s8, s8, 11296; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x641297; GCN-NEXT:    s_cselect_b32 s9, s30, 11298; GCN-NEXT:    s_and_b32 s9, s9, 11299; GCN-NEXT:    s_or_b32 s8, s9, s81300; GCN-NEXT:    s_and_b32 s8, s8, 31301; GCN-NEXT:    s_or_b32 s7, s8, s71302; GCN-NEXT:    s_lshl_b32 s7, s7, 41303; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x631304; GCN-NEXT:    s_cselect_b32 s8, s34, 11305; GCN-NEXT:    s_lshl_b32 s8, s8, 31306; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x621307; GCN-NEXT:    s_cselect_b32 s9, s35, 11308; GCN-NEXT:    s_and_b32 s9, s9, 11309; GCN-NEXT:    s_lshl_b32 s9, s9, 21310; GCN-NEXT:    s_or_b32 s8, s8, s91311; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x601312; GCN-NEXT:    s_cselect_b32 s3, s3, 11313; GCN-NEXT:    s_and_b32 s3, s3, 11314; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x611315; GCN-NEXT:    s_cselect_b32 s9, s36, 11316; GCN-NEXT:    s_lshl_b32 s9, s9, 11317; GCN-NEXT:    s_or_b32 s3, s3, s91318; GCN-NEXT:    s_and_b32 s3, s3, 31319; GCN-NEXT:    s_or_b32 s3, s3, s81320; GCN-NEXT:    s_and_b32 s3, s3, 151321; GCN-NEXT:    s_or_b32 s3, s3, s71322; GCN-NEXT:    s_and_b32 s3, s3, 0xff1323; GCN-NEXT:    s_or_b32 s3, s3, s51324; GCN-NEXT:    s_and_b32 s3, s3, 0xffff1325; GCN-NEXT:    s_or_b32 s3, s3, s41326; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x5f1327; GCN-NEXT:    s_cselect_b32 s4, s37, 11328; GCN-NEXT:    s_lshl_b32 s4, s4, 31329; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x5e1330; GCN-NEXT:    s_cselect_b32 s5, s38, 11331; GCN-NEXT:    s_and_b32 s5, s5, 11332; GCN-NEXT:    s_lshl_b32 s5, s5, 21333; GCN-NEXT:    s_or_b32 s4, s4, s51334; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x5d1335; GCN-NEXT:    s_cselect_b32 s5, s39, 11336; GCN-NEXT:    s_lshl_b32 s5, s5, 11337; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x5c1338; GCN-NEXT:    s_cselect_b32 s7, vcc_hi, 11339; GCN-NEXT:    s_and_b32 s7, s7, 11340; GCN-NEXT:    s_or_b32 s5, s7, s51341; GCN-NEXT:    s_and_b32 s5, s5, 31342; GCN-NEXT:    s_or_b32 s4, s5, s41343; GCN-NEXT:    s_lshl_b32 s4, s4, 121344; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x5b1345; GCN-NEXT:    s_cselect_b32 s5, s94, 11346; GCN-NEXT:    s_lshl_b32 s5, s5, 31347; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x5a1348; GCN-NEXT:    s_cselect_b32 s7, s93, 11349; GCN-NEXT:    s_and_b32 s7, s7, 11350; GCN-NEXT:    s_lshl_b32 s7, s7, 21351; GCN-NEXT:    s_or_b32 s5, s5, s71352; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x591353; GCN-NEXT:    s_cselect_b32 s7, s90, 11354; GCN-NEXT:    s_lshl_b32 s7, s7, 11355; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x581356; GCN-NEXT:    s_cselect_b32 s8, s89, 11357; GCN-NEXT:    s_and_b32 s8, s8, 11358; GCN-NEXT:    s_or_b32 s7, s8, s71359; GCN-NEXT:    s_and_b32 s7, s7, 31360; GCN-NEXT:    s_or_b32 s5, s7, s51361; GCN-NEXT:    s_and_b32 s5, s5, 151362; GCN-NEXT:    s_lshl_b32 s5, s5, 81363; GCN-NEXT:    s_or_b32 s4, s4, s51364; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x571365; GCN-NEXT:    s_cselect_b32 s5, s86, 11366; GCN-NEXT:    s_lshl_b32 s5, s5, 31367; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x561368; GCN-NEXT:    s_cselect_b32 s7, s84, 11369; GCN-NEXT:    s_and_b32 s7, s7, 11370; GCN-NEXT:    s_lshl_b32 s7, s7, 21371; GCN-NEXT:    s_or_b32 s5, s5, s71372; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x551373; GCN-NEXT:    s_cselect_b32 s7, s82, 11374; GCN-NEXT:    s_lshl_b32 s7, s7, 11375; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x541376; GCN-NEXT:    s_cselect_b32 s8, s81, 11377; GCN-NEXT:    s_and_b32 s8, s8, 11378; GCN-NEXT:    s_or_b32 s7, s8, s71379; GCN-NEXT:    s_and_b32 s7, s7, 31380; GCN-NEXT:    s_or_b32 s5, s7, s51381; GCN-NEXT:    s_lshl_b32 s5, s5, 41382; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x531383; GCN-NEXT:    s_cselect_b32 s7, s78, 11384; GCN-NEXT:    s_lshl_b32 s7, s7, 31385; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x521386; GCN-NEXT:    s_cselect_b32 s8, s77, 11387; GCN-NEXT:    s_and_b32 s8, s8, 11388; GCN-NEXT:    s_lshl_b32 s8, s8, 21389; GCN-NEXT:    s_or_b32 s7, s7, s81390; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x511391; GCN-NEXT:    s_cselect_b32 s8, s74, 11392; GCN-NEXT:    s_lshl_b32 s8, s8, 11393; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x501394; GCN-NEXT:    s_cselect_b32 s9, s73, 11395; GCN-NEXT:    s_and_b32 s9, s9, 11396; GCN-NEXT:    s_or_b32 s8, s9, s81397; GCN-NEXT:    s_and_b32 s8, s8, 31398; GCN-NEXT:    s_or_b32 s7, s8, s71399; GCN-NEXT:    s_and_b32 s7, s7, 151400; GCN-NEXT:    s_or_b32 s5, s7, s51401; GCN-NEXT:    s_and_b32 s5, s5, 0xff1402; GCN-NEXT:    s_or_b32 s4, s5, s41403; GCN-NEXT:    s_lshl_b32 s4, s4, 161404; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x4f1405; GCN-NEXT:    s_cselect_b32 s5, vcc_lo, 11406; GCN-NEXT:    s_lshl_b32 s5, s5, 31407; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x4e1408; GCN-NEXT:    s_cselect_b32 s7, s95, 11409; GCN-NEXT:    s_and_b32 s7, s7, 11410; GCN-NEXT:    s_lshl_b32 s7, s7, 21411; GCN-NEXT:    s_or_b32 s5, s5, s71412; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x4d1413; GCN-NEXT:    s_cselect_b32 s7, s92, 11414; GCN-NEXT:    s_lshl_b32 s7, s7, 11415; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x4c1416; GCN-NEXT:    s_cselect_b32 s8, s91, 11417; GCN-NEXT:    s_and_b32 s8, s8, 11418; GCN-NEXT:    s_or_b32 s7, s8, s71419; GCN-NEXT:    s_and_b32 s7, s7, 31420; GCN-NEXT:    s_or_b32 s5, s7, s51421; GCN-NEXT:    s_lshl_b32 s5, s5, 121422; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x4b1423; GCN-NEXT:    s_cselect_b32 s7, s88, 11424; GCN-NEXT:    s_lshl_b32 s7, s7, 31425; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x4a1426; GCN-NEXT:    s_cselect_b32 s8, s87, 11427; GCN-NEXT:    s_and_b32 s8, s8, 11428; GCN-NEXT:    s_lshl_b32 s8, s8, 21429; GCN-NEXT:    s_or_b32 s7, s7, s81430; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x491431; GCN-NEXT:    s_cselect_b32 s8, s85, 11432; GCN-NEXT:    s_lshl_b32 s8, s8, 11433; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x481434; GCN-NEXT:    s_cselect_b32 s9, s83, 11435; GCN-NEXT:    s_and_b32 s9, s9, 11436; GCN-NEXT:    s_or_b32 s8, s9, s81437; GCN-NEXT:    s_and_b32 s8, s8, 31438; GCN-NEXT:    s_or_b32 s7, s8, s71439; GCN-NEXT:    s_and_b32 s7, s7, 151440; GCN-NEXT:    s_lshl_b32 s7, s7, 81441; GCN-NEXT:    s_or_b32 s5, s5, s71442; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x471443; GCN-NEXT:    s_cselect_b32 s7, s80, 11444; GCN-NEXT:    s_lshl_b32 s7, s7, 31445; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x461446; GCN-NEXT:    s_cselect_b32 s8, s79, 11447; GCN-NEXT:    s_and_b32 s8, s8, 11448; GCN-NEXT:    s_lshl_b32 s8, s8, 21449; GCN-NEXT:    s_or_b32 s7, s7, s81450; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x451451; GCN-NEXT:    s_cselect_b32 s8, s76, 11452; GCN-NEXT:    s_lshl_b32 s8, s8, 11453; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x441454; GCN-NEXT:    s_cselect_b32 s9, s75, 11455; GCN-NEXT:    s_and_b32 s9, s9, 11456; GCN-NEXT:    s_or_b32 s8, s9, s81457; GCN-NEXT:    s_and_b32 s8, s8, 31458; GCN-NEXT:    s_or_b32 s7, s8, s71459; GCN-NEXT:    s_lshl_b32 s7, s7, 41460; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x431461; GCN-NEXT:    s_cselect_b32 s8, s72, 11462; GCN-NEXT:    s_lshl_b32 s8, s8, 31463; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x421464; GCN-NEXT:    s_cselect_b32 s9, s71, 11465; GCN-NEXT:    s_and_b32 s9, s9, 11466; GCN-NEXT:    s_lshl_b32 s9, s9, 21467; GCN-NEXT:    s_or_b32 s8, s8, s91468; GCN-NEXT:    s_cmp_lg_u32 s6, 641469; GCN-NEXT:    s_cselect_b32 s2, s2, 11470; GCN-NEXT:    s_and_b32 s2, s2, 11471; GCN-NEXT:    s_cmpk_lg_i32 s6, 0x411472; GCN-NEXT:    s_cselect_b32 s9, s70, 11473; GCN-NEXT:    s_lshl_b32 s9, s9, 11474; GCN-NEXT:    s_or_b32 s2, s2, s91475; GCN-NEXT:    s_and_b32 s2, s2, 31476; GCN-NEXT:    s_or_b32 s2, s2, s81477; GCN-NEXT:    s_and_b32 s2, s2, 151478; GCN-NEXT:    s_or_b32 s2, s2, s71479; GCN-NEXT:    s_and_b32 s2, s2, 0xff1480; GCN-NEXT:    s_or_b32 s2, s2, s51481; GCN-NEXT:    s_and_b32 s2, s2, 0xffff1482; GCN-NEXT:    s_or_b32 s2, s2, s41483; GCN-NEXT:    s_cmp_lg_u32 s6, 631484; GCN-NEXT:    s_cselect_b32 s4, s69, 11485; GCN-NEXT:    s_lshl_b32 s4, s4, 31486; GCN-NEXT:    s_cmp_lg_u32 s6, 621487; GCN-NEXT:    s_cselect_b32 s5, s68, 11488; GCN-NEXT:    s_and_b32 s5, s5, 11489; GCN-NEXT:    s_lshl_b32 s5, s5, 21490; GCN-NEXT:    s_or_b32 s4, s4, s51491; GCN-NEXT:    s_cmp_lg_u32 s6, 611492; GCN-NEXT:    s_cselect_b32 s5, s67, 11493; GCN-NEXT:    s_lshl_b32 s5, s5, 11494; GCN-NEXT:    s_cmp_lg_u32 s6, 601495; GCN-NEXT:    s_cselect_b32 s7, s66, 11496; GCN-NEXT:    s_and_b32 s7, s7, 11497; GCN-NEXT:    s_or_b32 s5, s7, s51498; GCN-NEXT:    s_and_b32 s5, s5, 31499; GCN-NEXT:    s_or_b32 s4, s5, s41500; GCN-NEXT:    s_lshl_b32 s4, s4, 121501; GCN-NEXT:    s_cmp_lg_u32 s6, 591502; GCN-NEXT:    s_cselect_b32 s5, s63, 11503; GCN-NEXT:    s_lshl_b32 s5, s5, 31504; GCN-NEXT:    s_cmp_lg_u32 s6, 581505; GCN-NEXT:    s_cselect_b32 s7, s61, 11506; GCN-NEXT:    s_and_b32 s7, s7, 11507; GCN-NEXT:    s_lshl_b32 s7, s7, 21508; GCN-NEXT:    s_or_b32 s5, s5, s71509; GCN-NEXT:    s_cmp_lg_u32 s6, 571510; GCN-NEXT:    s_cselect_b32 s7, s59, 11511; GCN-NEXT:    s_lshl_b32 s7, s7, 11512; GCN-NEXT:    s_cmp_lg_u32 s6, 561513; GCN-NEXT:    s_cselect_b32 s8, s58, 11514; GCN-NEXT:    s_and_b32 s8, s8, 11515; GCN-NEXT:    s_or_b32 s7, s8, s71516; GCN-NEXT:    s_and_b32 s7, s7, 31517; GCN-NEXT:    s_or_b32 s5, s7, s51518; GCN-NEXT:    s_and_b32 s5, s5, 151519; GCN-NEXT:    s_lshl_b32 s5, s5, 81520; GCN-NEXT:    s_or_b32 s4, s4, s51521; GCN-NEXT:    s_cmp_lg_u32 s6, 551522; GCN-NEXT:    s_cselect_b32 s5, s55, 11523; GCN-NEXT:    s_lshl_b32 s5, s5, 31524; GCN-NEXT:    s_cmp_lg_u32 s6, 541525; GCN-NEXT:    s_cselect_b32 s7, s53, 11526; GCN-NEXT:    s_and_b32 s7, s7, 11527; GCN-NEXT:    s_lshl_b32 s7, s7, 21528; GCN-NEXT:    s_or_b32 s5, s5, s71529; GCN-NEXT:    s_cmp_lg_u32 s6, 531530; GCN-NEXT:    s_cselect_b32 s7, s51, 11531; GCN-NEXT:    s_lshl_b32 s7, s7, 11532; GCN-NEXT:    s_cmp_lg_u32 s6, 521533; GCN-NEXT:    s_cselect_b32 s8, s50, 11534; GCN-NEXT:    s_and_b32 s8, s8, 11535; GCN-NEXT:    s_or_b32 s7, s8, s71536; GCN-NEXT:    s_and_b32 s7, s7, 31537; GCN-NEXT:    s_or_b32 s5, s7, s51538; GCN-NEXT:    s_lshl_b32 s5, s5, 41539; GCN-NEXT:    s_cmp_lg_u32 s6, 511540; GCN-NEXT:    s_cselect_b32 s7, s47, 11541; GCN-NEXT:    s_lshl_b32 s7, s7, 31542; GCN-NEXT:    s_cmp_lg_u32 s6, 501543; GCN-NEXT:    s_cselect_b32 s8, s45, 11544; GCN-NEXT:    s_and_b32 s8, s8, 11545; GCN-NEXT:    s_lshl_b32 s8, s8, 21546; GCN-NEXT:    s_or_b32 s7, s7, s81547; GCN-NEXT:    s_cmp_lg_u32 s6, 491548; GCN-NEXT:    s_cselect_b32 s8, s43, 11549; GCN-NEXT:    s_lshl_b32 s8, s8, 11550; GCN-NEXT:    s_cmp_lg_u32 s6, 481551; GCN-NEXT:    s_cselect_b32 s9, s42, 11552; GCN-NEXT:    s_and_b32 s9, s9, 11553; GCN-NEXT:    s_or_b32 s8, s9, s81554; GCN-NEXT:    s_and_b32 s8, s8, 31555; GCN-NEXT:    s_or_b32 s7, s8, s71556; GCN-NEXT:    s_and_b32 s7, s7, 151557; GCN-NEXT:    s_or_b32 s5, s7, s51558; GCN-NEXT:    s_and_b32 s5, s5, 0xff1559; GCN-NEXT:    s_or_b32 s4, s5, s41560; GCN-NEXT:    s_lshl_b32 s4, s4, 161561; GCN-NEXT:    s_cmp_lg_u32 s6, 471562; GCN-NEXT:    s_cselect_b32 s5, s65, 11563; GCN-NEXT:    s_lshl_b32 s5, s5, 31564; GCN-NEXT:    s_cmp_lg_u32 s6, 461565; GCN-NEXT:    s_cselect_b32 s7, s64, 11566; GCN-NEXT:    s_and_b32 s7, s7, 11567; GCN-NEXT:    s_lshl_b32 s7, s7, 21568; GCN-NEXT:    s_or_b32 s5, s5, s71569; GCN-NEXT:    s_cmp_lg_u32 s6, 451570; GCN-NEXT:    s_cselect_b32 s7, s62, 11571; GCN-NEXT:    s_lshl_b32 s7, s7, 11572; GCN-NEXT:    s_cmp_lg_u32 s6, 441573; GCN-NEXT:    s_cselect_b32 s8, s60, 11574; GCN-NEXT:    s_and_b32 s8, s8, 11575; GCN-NEXT:    s_or_b32 s7, s8, s71576; GCN-NEXT:    s_and_b32 s7, s7, 31577; GCN-NEXT:    s_or_b32 s5, s7, s51578; GCN-NEXT:    s_lshl_b32 s5, s5, 121579; GCN-NEXT:    s_cmp_lg_u32 s6, 431580; GCN-NEXT:    s_cselect_b32 s7, s57, 11581; GCN-NEXT:    s_lshl_b32 s7, s7, 31582; GCN-NEXT:    s_cmp_lg_u32 s6, 421583; GCN-NEXT:    s_cselect_b32 s8, s56, 11584; GCN-NEXT:    s_and_b32 s8, s8, 11585; GCN-NEXT:    s_lshl_b32 s8, s8, 21586; GCN-NEXT:    s_or_b32 s7, s7, s81587; GCN-NEXT:    s_cmp_lg_u32 s6, 411588; GCN-NEXT:    s_cselect_b32 s8, s54, 11589; GCN-NEXT:    s_lshl_b32 s8, s8, 11590; GCN-NEXT:    s_cmp_lg_u32 s6, 401591; GCN-NEXT:    s_cselect_b32 s9, s52, 11592; GCN-NEXT:    s_and_b32 s9, s9, 11593; GCN-NEXT:    s_or_b32 s8, s9, s81594; GCN-NEXT:    s_and_b32 s8, s8, 31595; GCN-NEXT:    s_or_b32 s7, s8, s71596; GCN-NEXT:    s_and_b32 s7, s7, 151597; GCN-NEXT:    s_lshl_b32 s7, s7, 81598; GCN-NEXT:    s_or_b32 s5, s5, s71599; GCN-NEXT:    s_cmp_lg_u32 s6, 391600; GCN-NEXT:    s_cselect_b32 s7, s49, 11601; GCN-NEXT:    s_lshl_b32 s7, s7, 31602; GCN-NEXT:    s_cmp_lg_u32 s6, 381603; GCN-NEXT:    s_cselect_b32 s8, s48, 11604; GCN-NEXT:    s_and_b32 s8, s8, 11605; GCN-NEXT:    s_lshl_b32 s8, s8, 21606; GCN-NEXT:    s_or_b32 s7, s7, s81607; GCN-NEXT:    s_cmp_lg_u32 s6, 371608; GCN-NEXT:    s_cselect_b32 s8, s46, 11609; GCN-NEXT:    s_lshl_b32 s8, s8, 11610; GCN-NEXT:    s_cmp_lg_u32 s6, 361611; GCN-NEXT:    s_cselect_b32 s9, s44, 11612; GCN-NEXT:    s_and_b32 s9, s9, 11613; GCN-NEXT:    s_or_b32 s8, s9, s81614; GCN-NEXT:    s_and_b32 s8, s8, 31615; GCN-NEXT:    s_or_b32 s7, s8, s71616; GCN-NEXT:    s_lshl_b32 s7, s7, 41617; GCN-NEXT:    s_cmp_lg_u32 s6, 351618; GCN-NEXT:    s_cselect_b32 s8, s41, 11619; GCN-NEXT:    s_lshl_b32 s8, s8, 31620; GCN-NEXT:    s_cmp_lg_u32 s6, 341621; GCN-NEXT:    s_cselect_b32 s9, s40, 11622; GCN-NEXT:    s_and_b32 s9, s9, 11623; GCN-NEXT:    s_lshl_b32 s9, s9, 21624; GCN-NEXT:    s_or_b32 s8, s8, s91625; GCN-NEXT:    s_cmp_lg_u32 s6, 321626; GCN-NEXT:    s_cselect_b32 s1, s1, 11627; GCN-NEXT:    s_and_b32 s1, s1, 11628; GCN-NEXT:    s_cmp_lg_u32 s6, 331629; GCN-NEXT:    v_readlane_b32 s9, v6, 331630; GCN-NEXT:    s_cselect_b32 s9, s9, 11631; GCN-NEXT:    s_lshl_b32 s9, s9, 11632; GCN-NEXT:    s_or_b32 s1, s1, s91633; GCN-NEXT:    s_and_b32 s1, s1, 31634; GCN-NEXT:    s_or_b32 s1, s1, s81635; GCN-NEXT:    s_and_b32 s1, s1, 151636; GCN-NEXT:    s_or_b32 s1, s1, s71637; GCN-NEXT:    s_and_b32 s1, s1, 0xff1638; GCN-NEXT:    s_or_b32 s1, s1, s51639; GCN-NEXT:    s_and_b32 s1, s1, 0xffff1640; GCN-NEXT:    s_or_b32 s1, s1, s41641; GCN-NEXT:    s_cmp_lg_u32 s6, 311642; GCN-NEXT:    v_readlane_b32 s4, v6, 171643; GCN-NEXT:    s_cselect_b32 s4, s4, 11644; GCN-NEXT:    s_lshl_b32 s4, s4, 31645; GCN-NEXT:    s_cmp_lg_u32 s6, 301646; GCN-NEXT:    v_readlane_b32 s5, v6, 161647; GCN-NEXT:    s_cselect_b32 s5, s5, 11648; GCN-NEXT:    s_and_b32 s5, s5, 11649; GCN-NEXT:    s_lshl_b32 s5, s5, 21650; GCN-NEXT:    s_or_b32 s4, s4, s51651; GCN-NEXT:    s_cmp_lg_u32 s6, 291652; GCN-NEXT:    v_readlane_b32 s5, v6, 151653; GCN-NEXT:    s_cselect_b32 s5, s5, 11654; GCN-NEXT:    s_lshl_b32 s5, s5, 11655; GCN-NEXT:    s_cmp_lg_u32 s6, 281656; GCN-NEXT:    v_readlane_b32 s7, v6, 141657; GCN-NEXT:    s_cselect_b32 s7, s7, 11658; GCN-NEXT:    s_and_b32 s7, s7, 11659; GCN-NEXT:    s_or_b32 s5, s7, s51660; GCN-NEXT:    s_and_b32 s5, s5, 31661; GCN-NEXT:    s_or_b32 s4, s5, s41662; GCN-NEXT:    s_lshl_b32 s4, s4, 121663; GCN-NEXT:    s_cmp_lg_u32 s6, 271664; GCN-NEXT:    v_readlane_b32 s5, v6, 131665; GCN-NEXT:    s_cselect_b32 s5, s5, 11666; GCN-NEXT:    s_lshl_b32 s5, s5, 31667; GCN-NEXT:    s_cmp_lg_u32 s6, 261668; GCN-NEXT:    v_readlane_b32 s7, v6, 121669; GCN-NEXT:    s_cselect_b32 s7, s7, 11670; GCN-NEXT:    s_and_b32 s7, s7, 11671; GCN-NEXT:    s_lshl_b32 s7, s7, 21672; GCN-NEXT:    s_or_b32 s5, s5, s71673; GCN-NEXT:    s_cmp_lg_u32 s6, 251674; GCN-NEXT:    v_readlane_b32 s7, v6, 111675; GCN-NEXT:    s_cselect_b32 s7, s7, 11676; GCN-NEXT:    s_lshl_b32 s7, s7, 11677; GCN-NEXT:    s_cmp_lg_u32 s6, 241678; GCN-NEXT:    v_readlane_b32 s8, v6, 101679; GCN-NEXT:    s_cselect_b32 s8, s8, 11680; GCN-NEXT:    s_and_b32 s8, s8, 11681; GCN-NEXT:    s_or_b32 s7, s8, s71682; GCN-NEXT:    s_and_b32 s7, s7, 31683; GCN-NEXT:    s_or_b32 s5, s7, s51684; GCN-NEXT:    s_and_b32 s5, s5, 151685; GCN-NEXT:    s_lshl_b32 s5, s5, 81686; GCN-NEXT:    s_or_b32 s4, s4, s51687; GCN-NEXT:    s_cmp_lg_u32 s6, 231688; GCN-NEXT:    v_readlane_b32 s5, v6, 91689; GCN-NEXT:    s_cselect_b32 s5, s5, 11690; GCN-NEXT:    s_lshl_b32 s5, s5, 31691; GCN-NEXT:    s_cmp_lg_u32 s6, 221692; GCN-NEXT:    v_readlane_b32 s7, v6, 81693; GCN-NEXT:    s_cselect_b32 s7, s7, 11694; GCN-NEXT:    s_and_b32 s7, s7, 11695; GCN-NEXT:    s_lshl_b32 s7, s7, 21696; GCN-NEXT:    s_or_b32 s5, s5, s71697; GCN-NEXT:    s_cmp_lg_u32 s6, 211698; GCN-NEXT:    v_readlane_b32 s7, v6, 71699; GCN-NEXT:    s_cselect_b32 s7, s7, 11700; GCN-NEXT:    s_lshl_b32 s7, s7, 11701; GCN-NEXT:    s_cmp_lg_u32 s6, 201702; GCN-NEXT:    v_readlane_b32 s8, v6, 61703; GCN-NEXT:    s_cselect_b32 s8, s8, 11704; GCN-NEXT:    s_and_b32 s8, s8, 11705; GCN-NEXT:    s_or_b32 s7, s8, s71706; GCN-NEXT:    s_and_b32 s7, s7, 31707; GCN-NEXT:    s_or_b32 s5, s7, s51708; GCN-NEXT:    s_lshl_b32 s5, s5, 41709; GCN-NEXT:    s_cmp_lg_u32 s6, 191710; GCN-NEXT:    v_readlane_b32 s7, v6, 51711; GCN-NEXT:    s_cselect_b32 s7, s7, 11712; GCN-NEXT:    s_lshl_b32 s7, s7, 31713; GCN-NEXT:    s_cmp_lg_u32 s6, 181714; GCN-NEXT:    v_readlane_b32 s8, v6, 41715; GCN-NEXT:    s_cselect_b32 s8, s8, 11716; GCN-NEXT:    s_and_b32 s8, s8, 11717; GCN-NEXT:    s_lshl_b32 s8, s8, 21718; GCN-NEXT:    s_or_b32 s7, s7, s81719; GCN-NEXT:    s_cmp_lg_u32 s6, 171720; GCN-NEXT:    v_readlane_b32 s8, v6, 31721; GCN-NEXT:    s_cselect_b32 s8, s8, 11722; GCN-NEXT:    s_lshl_b32 s8, s8, 11723; GCN-NEXT:    s_cmp_lg_u32 s6, 161724; GCN-NEXT:    v_readlane_b32 s9, v6, 21725; GCN-NEXT:    s_cselect_b32 s9, s9, 11726; GCN-NEXT:    s_and_b32 s9, s9, 11727; GCN-NEXT:    s_or_b32 s8, s9, s81728; GCN-NEXT:    s_and_b32 s8, s8, 31729; GCN-NEXT:    s_or_b32 s7, s8, s71730; GCN-NEXT:    s_and_b32 s7, s7, 151731; GCN-NEXT:    s_or_b32 s5, s7, s51732; GCN-NEXT:    s_and_b32 s5, s5, 0xff1733; GCN-NEXT:    s_or_b32 s4, s5, s41734; GCN-NEXT:    s_lshl_b32 s4, s4, 161735; GCN-NEXT:    s_cmp_lg_u32 s6, 151736; GCN-NEXT:    v_readlane_b32 s5, v6, 321737; GCN-NEXT:    s_cselect_b32 s5, s5, 11738; GCN-NEXT:    s_lshl_b32 s5, s5, 31739; GCN-NEXT:    s_cmp_lg_u32 s6, 141740; GCN-NEXT:    v_readlane_b32 s7, v6, 311741; GCN-NEXT:    s_cselect_b32 s7, s7, 11742; GCN-NEXT:    s_and_b32 s7, s7, 11743; GCN-NEXT:    s_lshl_b32 s7, s7, 21744; GCN-NEXT:    s_or_b32 s5, s5, s71745; GCN-NEXT:    s_cmp_lg_u32 s6, 131746; GCN-NEXT:    v_readlane_b32 s7, v6, 301747; GCN-NEXT:    s_cselect_b32 s7, s7, 11748; GCN-NEXT:    s_lshl_b32 s7, s7, 11749; GCN-NEXT:    s_cmp_lg_u32 s6, 121750; GCN-NEXT:    v_readlane_b32 s8, v6, 291751; GCN-NEXT:    s_cselect_b32 s8, s8, 11752; GCN-NEXT:    s_and_b32 s8, s8, 11753; GCN-NEXT:    s_or_b32 s7, s8, s71754; GCN-NEXT:    s_and_b32 s7, s7, 31755; GCN-NEXT:    s_or_b32 s5, s7, s51756; GCN-NEXT:    s_lshl_b32 s5, s5, 121757; GCN-NEXT:    s_cmp_lg_u32 s6, 111758; GCN-NEXT:    v_readlane_b32 s7, v6, 281759; GCN-NEXT:    s_cselect_b32 s7, s7, 11760; GCN-NEXT:    s_lshl_b32 s7, s7, 31761; GCN-NEXT:    s_cmp_lg_u32 s6, 101762; GCN-NEXT:    v_readlane_b32 s8, v6, 271763; GCN-NEXT:    s_cselect_b32 s8, s8, 11764; GCN-NEXT:    s_and_b32 s8, s8, 11765; GCN-NEXT:    s_lshl_b32 s8, s8, 21766; GCN-NEXT:    s_or_b32 s7, s7, s81767; GCN-NEXT:    s_cmp_lg_u32 s6, 91768; GCN-NEXT:    v_readlane_b32 s8, v6, 261769; GCN-NEXT:    s_cselect_b32 s8, s8, 11770; GCN-NEXT:    s_lshl_b32 s8, s8, 11771; GCN-NEXT:    s_cmp_lg_u32 s6, 81772; GCN-NEXT:    v_readlane_b32 s9, v6, 251773; GCN-NEXT:    s_cselect_b32 s9, s9, 11774; GCN-NEXT:    s_and_b32 s9, s9, 11775; GCN-NEXT:    s_or_b32 s8, s9, s81776; GCN-NEXT:    s_and_b32 s8, s8, 31777; GCN-NEXT:    s_or_b32 s7, s8, s71778; GCN-NEXT:    s_and_b32 s7, s7, 151779; GCN-NEXT:    s_lshl_b32 s7, s7, 81780; GCN-NEXT:    s_or_b32 s5, s5, s71781; GCN-NEXT:    s_cmp_lg_u32 s6, 71782; GCN-NEXT:    v_readlane_b32 s7, v6, 241783; GCN-NEXT:    s_cselect_b32 s7, s7, 11784; GCN-NEXT:    s_lshl_b32 s7, s7, 31785; GCN-NEXT:    s_cmp_lg_u32 s6, 61786; GCN-NEXT:    v_readlane_b32 s8, v6, 231787; GCN-NEXT:    s_cselect_b32 s8, s8, 11788; GCN-NEXT:    s_and_b32 s8, s8, 11789; GCN-NEXT:    s_lshl_b32 s8, s8, 21790; GCN-NEXT:    s_or_b32 s7, s7, s81791; GCN-NEXT:    s_cmp_lg_u32 s6, 51792; GCN-NEXT:    v_readlane_b32 s8, v6, 221793; GCN-NEXT:    s_cselect_b32 s8, s8, 11794; GCN-NEXT:    s_lshl_b32 s8, s8, 11795; GCN-NEXT:    s_cmp_lg_u32 s6, 41796; GCN-NEXT:    v_readlane_b32 s9, v6, 211797; GCN-NEXT:    s_cselect_b32 s9, s9, 11798; GCN-NEXT:    s_and_b32 s9, s9, 11799; GCN-NEXT:    s_or_b32 s8, s9, s81800; GCN-NEXT:    s_and_b32 s8, s8, 31801; GCN-NEXT:    s_or_b32 s7, s8, s71802; GCN-NEXT:    s_lshl_b32 s7, s7, 41803; GCN-NEXT:    s_cmp_lg_u32 s6, 31804; GCN-NEXT:    v_readlane_b32 s8, v6, 201805; GCN-NEXT:    s_cselect_b32 s8, s8, 11806; GCN-NEXT:    s_lshl_b32 s8, s8, 31807; GCN-NEXT:    s_cmp_lg_u32 s6, 21808; GCN-NEXT:    v_readlane_b32 s9, v6, 191809; GCN-NEXT:    s_cselect_b32 s9, s9, 11810; GCN-NEXT:    s_and_b32 s9, s9, 11811; GCN-NEXT:    s_lshl_b32 s9, s9, 21812; GCN-NEXT:    s_or_b32 s8, s8, s91813; GCN-NEXT:    s_cmp_lg_u32 s6, 01814; GCN-NEXT:    s_cselect_b32 s0, s0, 11815; GCN-NEXT:    s_and_b32 s0, s0, 11816; GCN-NEXT:    s_cmp_lg_u32 s6, 11817; GCN-NEXT:    v_readlane_b32 s6, v6, 181818; GCN-NEXT:    s_cselect_b32 s6, s6, 11819; GCN-NEXT:    s_lshl_b32 s6, s6, 11820; GCN-NEXT:    s_or_b32 s0, s0, s61821; GCN-NEXT:    s_and_b32 s0, s0, 31822; GCN-NEXT:    s_or_b32 s0, s0, s81823; GCN-NEXT:    s_and_b32 s0, s0, 151824; GCN-NEXT:    s_or_b32 s0, s0, s71825; GCN-NEXT:    s_and_b32 s0, s0, 0xff1826; GCN-NEXT:    s_or_b32 s0, s0, s51827; GCN-NEXT:    s_and_b32 s0, s0, 0xffff1828; GCN-NEXT:    s_or_b32 s0, s0, s41829; GCN-NEXT:    v_mov_b32_e32 v0, s01830; GCN-NEXT:    v_mov_b32_e32 v1, s11831; GCN-NEXT:    v_readlane_b32 s0, v6, 01832; GCN-NEXT:    v_readlane_b32 s1, v6, 11833; GCN-NEXT:    v_mov_b32_e32 v5, s11834; GCN-NEXT:    v_mov_b32_e32 v2, s21835; GCN-NEXT:    v_mov_b32_e32 v3, s31836; GCN-NEXT:    v_mov_b32_e32 v4, s01837; GCN-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]1838; GCN-NEXT:    s_endpgm1839entry:1840  %v = insertelement <128 x i1> %vec, i1 1, i32 %sel1841  store <128 x i1> %v, ptr addrspace(1) %out1842  ret void1843}1844 1845define amdgpu_ps <32 x float> @float32_inselt_vec(<32 x float> %vec, i32 %sel) {1846; GCN-LABEL: float32_inselt_vec:1847; GCN:       ; %bb.0: ; %entry1848; GCN-NEXT:    v_cmp_ne_u32_e32 vcc, 1, v321849; GCN-NEXT:    v_cmp_ne_u32_e64 s[0:1], 2, v321850; GCN-NEXT:    v_cmp_ne_u32_e64 s[2:3], 3, v321851; GCN-NEXT:    v_cmp_ne_u32_e64 s[4:5], 4, v321852; GCN-NEXT:    v_cmp_ne_u32_e64 s[6:7], 5, v321853; GCN-NEXT:    v_cmp_ne_u32_e64 s[8:9], 6, v321854; GCN-NEXT:    v_cmp_ne_u32_e64 s[10:11], 7, v321855; GCN-NEXT:    v_cmp_ne_u32_e64 s[12:13], 8, v321856; GCN-NEXT:    v_cmp_ne_u32_e64 s[14:15], 9, v321857; GCN-NEXT:    v_cmp_ne_u32_e64 s[16:17], 10, v321858; GCN-NEXT:    v_cmp_ne_u32_e64 s[18:19], 11, v321859; GCN-NEXT:    v_cmp_ne_u32_e64 s[20:21], 12, v321860; GCN-NEXT:    v_cmp_ne_u32_e64 s[22:23], 13, v321861; GCN-NEXT:    v_cmp_ne_u32_e64 s[24:25], 14, v321862; GCN-NEXT:    v_cmp_ne_u32_e64 s[26:27], 15, v321863; GCN-NEXT:    v_cmp_ne_u32_e64 s[28:29], 16, v321864; GCN-NEXT:    v_cmp_ne_u32_e64 s[30:31], 17, v321865; GCN-NEXT:    v_cmp_ne_u32_e64 s[34:35], 18, v321866; GCN-NEXT:    v_cmp_ne_u32_e64 s[36:37], 19, v321867; GCN-NEXT:    v_cmp_ne_u32_e64 s[38:39], 20, v321868; GCN-NEXT:    v_cmp_ne_u32_e64 s[40:41], 21, v321869; GCN-NEXT:    v_cmp_ne_u32_e64 s[42:43], 22, v321870; GCN-NEXT:    v_cmp_ne_u32_e64 s[44:45], 23, v321871; GCN-NEXT:    v_cmp_ne_u32_e64 s[46:47], 24, v321872; GCN-NEXT:    v_cmp_ne_u32_e64 s[48:49], 25, v321873; GCN-NEXT:    v_cmp_ne_u32_e64 s[50:51], 26, v321874; GCN-NEXT:    v_cmp_ne_u32_e64 s[52:53], 27, v321875; GCN-NEXT:    v_cmp_ne_u32_e64 s[54:55], 28, v321876; GCN-NEXT:    v_cmp_ne_u32_e64 s[56:57], 29, v321877; GCN-NEXT:    v_cmp_ne_u32_e64 s[58:59], 30, v321878; GCN-NEXT:    v_cmp_ne_u32_e64 s[60:61], 31, v321879; GCN-NEXT:    v_cmp_ne_u32_e64 s[62:63], 0, v321880; GCN-NEXT:    v_cndmask_b32_e64 v0, 1.0, v0, s[62:63]1881; GCN-NEXT:    v_cndmask_b32_e32 v1, 1.0, v1, vcc1882; GCN-NEXT:    v_cndmask_b32_e64 v2, 1.0, v2, s[0:1]1883; GCN-NEXT:    v_cndmask_b32_e64 v3, 1.0, v3, s[2:3]1884; GCN-NEXT:    v_cndmask_b32_e64 v4, 1.0, v4, s[4:5]1885; GCN-NEXT:    v_cndmask_b32_e64 v5, 1.0, v5, s[6:7]1886; GCN-NEXT:    v_cndmask_b32_e64 v6, 1.0, v6, s[8:9]1887; GCN-NEXT:    v_cndmask_b32_e64 v7, 1.0, v7, s[10:11]1888; GCN-NEXT:    v_cndmask_b32_e64 v8, 1.0, v8, s[12:13]1889; GCN-NEXT:    v_cndmask_b32_e64 v9, 1.0, v9, s[14:15]1890; GCN-NEXT:    v_cndmask_b32_e64 v10, 1.0, v10, s[16:17]1891; GCN-NEXT:    v_cndmask_b32_e64 v11, 1.0, v11, s[18:19]1892; GCN-NEXT:    v_cndmask_b32_e64 v12, 1.0, v12, s[20:21]1893; GCN-NEXT:    v_cndmask_b32_e64 v13, 1.0, v13, s[22:23]1894; GCN-NEXT:    v_cndmask_b32_e64 v14, 1.0, v14, s[24:25]1895; GCN-NEXT:    v_cndmask_b32_e64 v15, 1.0, v15, s[26:27]1896; GCN-NEXT:    v_cndmask_b32_e64 v16, 1.0, v16, s[28:29]1897; GCN-NEXT:    v_cndmask_b32_e64 v17, 1.0, v17, s[30:31]1898; GCN-NEXT:    v_cndmask_b32_e64 v18, 1.0, v18, s[34:35]1899; GCN-NEXT:    v_cndmask_b32_e64 v19, 1.0, v19, s[36:37]1900; GCN-NEXT:    v_cndmask_b32_e64 v20, 1.0, v20, s[38:39]1901; GCN-NEXT:    v_cndmask_b32_e64 v21, 1.0, v21, s[40:41]1902; GCN-NEXT:    v_cndmask_b32_e64 v22, 1.0, v22, s[42:43]1903; GCN-NEXT:    v_cndmask_b32_e64 v23, 1.0, v23, s[44:45]1904; GCN-NEXT:    v_cndmask_b32_e64 v24, 1.0, v24, s[46:47]1905; GCN-NEXT:    v_cndmask_b32_e64 v25, 1.0, v25, s[48:49]1906; GCN-NEXT:    v_cndmask_b32_e64 v26, 1.0, v26, s[50:51]1907; GCN-NEXT:    v_cndmask_b32_e64 v27, 1.0, v27, s[52:53]1908; GCN-NEXT:    v_cndmask_b32_e64 v28, 1.0, v28, s[54:55]1909; GCN-NEXT:    v_cndmask_b32_e64 v29, 1.0, v29, s[56:57]1910; GCN-NEXT:    v_cndmask_b32_e64 v30, 1.0, v30, s[58:59]1911; GCN-NEXT:    v_cndmask_b32_e64 v31, 1.0, v31, s[60:61]1912; GCN-NEXT:    ; return to shader part epilog1913entry:1914  %v = insertelement <32 x float> %vec, float 1.000000e+00, i32 %sel1915  ret <32 x float> %v1916}1917 1918define <8 x double> @double8_inselt_vec(<8 x double> %vec, i32 %sel) {1919; GCN-LABEL: double8_inselt_vec:1920; GCN:       ; %bb.0: ; %entry1921; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1922; GCN-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v161923; GCN-NEXT:    v_mov_b32_e32 v17, 0x3ff000001924; GCN-NEXT:    v_cndmask_b32_e64 v0, v0, 0, vcc1925; GCN-NEXT:    v_cndmask_b32_e32 v1, v1, v17, vcc1926; GCN-NEXT:    v_cmp_eq_u32_e32 vcc, 1, v161927; GCN-NEXT:    v_cndmask_b32_e64 v2, v2, 0, vcc1928; GCN-NEXT:    v_cndmask_b32_e32 v3, v3, v17, vcc1929; GCN-NEXT:    v_cmp_eq_u32_e32 vcc, 2, v161930; GCN-NEXT:    v_cndmask_b32_e64 v4, v4, 0, vcc1931; GCN-NEXT:    v_cndmask_b32_e32 v5, v5, v17, vcc1932; GCN-NEXT:    v_cmp_eq_u32_e32 vcc, 3, v161933; GCN-NEXT:    v_cndmask_b32_e64 v6, v6, 0, vcc1934; GCN-NEXT:    v_cndmask_b32_e32 v7, v7, v17, vcc1935; GCN-NEXT:    v_cmp_eq_u32_e32 vcc, 4, v161936; GCN-NEXT:    v_cndmask_b32_e64 v8, v8, 0, vcc1937; GCN-NEXT:    v_cndmask_b32_e32 v9, v9, v17, vcc1938; GCN-NEXT:    v_cmp_eq_u32_e32 vcc, 5, v161939; GCN-NEXT:    v_cndmask_b32_e64 v10, v10, 0, vcc1940; GCN-NEXT:    v_cndmask_b32_e32 v11, v11, v17, vcc1941; GCN-NEXT:    v_cmp_eq_u32_e32 vcc, 6, v161942; GCN-NEXT:    v_cndmask_b32_e64 v12, v12, 0, vcc1943; GCN-NEXT:    v_cndmask_b32_e32 v13, v13, v17, vcc1944; GCN-NEXT:    v_cmp_eq_u32_e32 vcc, 7, v161945; GCN-NEXT:    v_cndmask_b32_e64 v14, v14, 0, vcc1946; GCN-NEXT:    v_cndmask_b32_e32 v15, v15, v17, vcc1947; GCN-NEXT:    s_setpc_b64 s[30:31]1948entry:1949  %v = insertelement <8 x double> %vec, double 1.000000e+00, i32 %sel1950  ret <8 x double> %v1951}1952