brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.3 KiB · 6164520 Raw
176 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=amdgcn < %s | FileCheck -check-prefix=GFX6 %s3; RUN: llc -mtriple=amdgcn -mcpu=fiji < %s | FileCheck -check-prefix=GFX8 %s4 5 6define amdgpu_kernel void @any_extend_vector_inreg_v16i8_to_v4i32(ptr addrspace(1) nocapture readonly %arg, ptr addrspace(1) %arg1) local_unnamed_addr #0 {7; GFX6-LABEL: any_extend_vector_inreg_v16i8_to_v4i32:8; GFX6:       ; %bb.0: ; %bb9; GFX6-NEXT:    s_load_dwordx4 s[12:15], s[4:5], 0x910; GFX6-NEXT:    s_mov_b32 s3, 0xf00011; GFX6-NEXT:    s_mov_b32 s2, -112; GFX6-NEXT:    v_mov_b32_e32 v0, 013; GFX6-NEXT:    s_waitcnt lgkmcnt(0)14; GFX6-NEXT:    s_mov_b32 s0, s1415; GFX6-NEXT:    s_mov_b32 s1, s1516; GFX6-NEXT:    s_load_dwordx8 s[4:11], s[12:13], 0x017; GFX6-NEXT:    s_waitcnt lgkmcnt(0)18; GFX6-NEXT:    s_load_dword s4, s[12:13], 0x819; GFX6-NEXT:    buffer_store_byte v0, off, s[0:3], 0 offset:1320; GFX6-NEXT:    buffer_store_byte v0, off, s[0:3], 0 offset:1521; GFX6-NEXT:    buffer_store_byte v0, off, s[0:3], 0 offset:1422; GFX6-NEXT:    buffer_store_byte v0, off, s[0:3], 0 offset:823; GFX6-NEXT:    buffer_store_byte v0, off, s[0:3], 0 offset:1124; GFX6-NEXT:    buffer_store_byte v0, off, s[0:3], 0 offset:1025; GFX6-NEXT:    buffer_store_byte v0, off, s[0:3], 0 offset:426; GFX6-NEXT:    buffer_store_byte v0, off, s[0:3], 0 offset:627; GFX6-NEXT:    buffer_store_byte v0, off, s[0:3], 0 offset:128; GFX6-NEXT:    buffer_store_byte v0, off, s[0:3], 029; GFX6-NEXT:    buffer_store_byte v0, off, s[0:3], 0 offset:330; GFX6-NEXT:    s_lshr_b32 s7, s9, 1631; GFX6-NEXT:    s_waitcnt lgkmcnt(0)32; GFX6-NEXT:    s_lshl_b64 s[8:9], s[4:5], 833; GFX6-NEXT:    s_waitcnt expcnt(0)34; GFX6-NEXT:    v_mov_b32_e32 v0, s1135; GFX6-NEXT:    buffer_store_byte v0, off, s[0:3], 0 offset:936; GFX6-NEXT:    s_waitcnt expcnt(0)37; GFX6-NEXT:    v_mov_b32_e32 v0, s538; GFX6-NEXT:    buffer_store_byte v0, off, s[0:3], 0 offset:239; GFX6-NEXT:    s_lshr_b64 s[4:5], s[6:7], 1640; GFX6-NEXT:    s_waitcnt expcnt(0)41; GFX6-NEXT:    v_mov_b32_e32 v0, s942; GFX6-NEXT:    buffer_store_byte v0, off, s[0:3], 0 offset:1243; GFX6-NEXT:    s_lshr_b32 s5, s4, 844; GFX6-NEXT:    s_lshr_b32 s4, s4, 2445; GFX6-NEXT:    s_waitcnt expcnt(0)46; GFX6-NEXT:    v_mov_b32_e32 v0, s547; GFX6-NEXT:    buffer_store_byte v0, off, s[0:3], 0 offset:548; GFX6-NEXT:    s_waitcnt expcnt(0)49; GFX6-NEXT:    v_mov_b32_e32 v0, s450; GFX6-NEXT:    buffer_store_byte v0, off, s[0:3], 0 offset:751; GFX6-NEXT:    s_endpgm52;53; GFX8-LABEL: any_extend_vector_inreg_v16i8_to_v4i32:54; GFX8:       ; %bb.0: ; %bb55; GFX8-NEXT:    s_load_dwordx4 s[8:11], s[4:5], 0x2456; GFX8-NEXT:    v_mov_b32_e32 v2, 057; GFX8-NEXT:    s_waitcnt lgkmcnt(0)58; GFX8-NEXT:    s_load_dwordx8 s[0:7], s[8:9], 0x059; GFX8-NEXT:    s_waitcnt lgkmcnt(0)60; GFX8-NEXT:    s_load_dword s0, s[8:9], 0x2061; GFX8-NEXT:    s_lshr_b32 s6, s5, 2462; GFX8-NEXT:    s_lshr_b32 s8, s2, 2463; GFX8-NEXT:    s_waitcnt lgkmcnt(0)64; GFX8-NEXT:    s_lshl_b64 s[2:3], s[0:1], 865; GFX8-NEXT:    s_add_u32 s4, s10, 1366; GFX8-NEXT:    s_addc_u32 s5, s11, 067; GFX8-NEXT:    v_mov_b32_e32 v0, s468; GFX8-NEXT:    v_mov_b32_e32 v1, s569; GFX8-NEXT:    s_add_u32 s4, s10, 1570; GFX8-NEXT:    flat_store_byte v[0:1], v271; GFX8-NEXT:    s_addc_u32 s5, s11, 072; GFX8-NEXT:    v_mov_b32_e32 v0, s473; GFX8-NEXT:    v_mov_b32_e32 v1, s574; GFX8-NEXT:    s_add_u32 s4, s10, 1475; GFX8-NEXT:    flat_store_byte v[0:1], v276; GFX8-NEXT:    s_addc_u32 s5, s11, 077; GFX8-NEXT:    v_mov_b32_e32 v0, s478; GFX8-NEXT:    v_mov_b32_e32 v1, s579; GFX8-NEXT:    s_add_u32 s4, s10, 880; GFX8-NEXT:    flat_store_byte v[0:1], v281; GFX8-NEXT:    s_addc_u32 s5, s11, 082; GFX8-NEXT:    v_mov_b32_e32 v0, s483; GFX8-NEXT:    v_mov_b32_e32 v1, s584; GFX8-NEXT:    s_add_u32 s4, s10, 1185; GFX8-NEXT:    flat_store_byte v[0:1], v286; GFX8-NEXT:    s_addc_u32 s5, s11, 087; GFX8-NEXT:    v_mov_b32_e32 v0, s488; GFX8-NEXT:    v_mov_b32_e32 v1, s589; GFX8-NEXT:    s_add_u32 s4, s10, 1090; GFX8-NEXT:    flat_store_byte v[0:1], v291; GFX8-NEXT:    s_addc_u32 s5, s11, 092; GFX8-NEXT:    v_mov_b32_e32 v0, s493; GFX8-NEXT:    v_mov_b32_e32 v1, s594; GFX8-NEXT:    s_add_u32 s4, s10, 495; GFX8-NEXT:    flat_store_byte v[0:1], v296; GFX8-NEXT:    s_addc_u32 s5, s11, 097; GFX8-NEXT:    v_mov_b32_e32 v0, s498; GFX8-NEXT:    v_mov_b32_e32 v1, s599; GFX8-NEXT:    s_add_u32 s4, s10, 6100; GFX8-NEXT:    flat_store_byte v[0:1], v2101; GFX8-NEXT:    s_addc_u32 s5, s11, 0102; GFX8-NEXT:    v_mov_b32_e32 v0, s4103; GFX8-NEXT:    v_mov_b32_e32 v1, s5104; GFX8-NEXT:    s_add_u32 s4, s10, 1105; GFX8-NEXT:    flat_store_byte v[0:1], v2106; GFX8-NEXT:    s_addc_u32 s5, s11, 0107; GFX8-NEXT:    v_mov_b32_e32 v0, s4108; GFX8-NEXT:    v_mov_b32_e32 v1, s5109; GFX8-NEXT:    flat_store_byte v[0:1], v2110; GFX8-NEXT:    v_mov_b32_e32 v0, s10111; GFX8-NEXT:    v_mov_b32_e32 v1, s11112; GFX8-NEXT:    s_add_u32 s4, s10, 3113; GFX8-NEXT:    flat_store_byte v[0:1], v2114; GFX8-NEXT:    s_addc_u32 s5, s11, 0115; GFX8-NEXT:    v_mov_b32_e32 v0, s4116; GFX8-NEXT:    v_mov_b32_e32 v1, s5117; GFX8-NEXT:    s_add_u32 s4, s10, 9118; GFX8-NEXT:    flat_store_byte v[0:1], v2119; GFX8-NEXT:    s_addc_u32 s5, s11, 0120; GFX8-NEXT:    v_mov_b32_e32 v0, s4121; GFX8-NEXT:    v_mov_b32_e32 v1, s5122; GFX8-NEXT:    v_mov_b32_e32 v2, s7123; GFX8-NEXT:    s_add_u32 s4, s10, 2124; GFX8-NEXT:    flat_store_byte v[0:1], v2125; GFX8-NEXT:    s_addc_u32 s5, s11, 0126; GFX8-NEXT:    v_mov_b32_e32 v0, s4127; GFX8-NEXT:    v_mov_b32_e32 v1, s5128; GFX8-NEXT:    v_mov_b32_e32 v2, s1129; GFX8-NEXT:    s_add_u32 s0, s10, 5130; GFX8-NEXT:    flat_store_byte v[0:1], v2131; GFX8-NEXT:    s_addc_u32 s1, s11, 0132; GFX8-NEXT:    v_mov_b32_e32 v0, s0133; GFX8-NEXT:    v_mov_b32_e32 v1, s1134; GFX8-NEXT:    v_mov_b32_e32 v2, s8135; GFX8-NEXT:    s_add_u32 s0, s10, 12136; GFX8-NEXT:    flat_store_byte v[0:1], v2137; GFX8-NEXT:    s_addc_u32 s1, s11, 0138; GFX8-NEXT:    v_mov_b32_e32 v0, s0139; GFX8-NEXT:    v_mov_b32_e32 v1, s1140; GFX8-NEXT:    v_mov_b32_e32 v2, s3141; GFX8-NEXT:    s_add_u32 s0, s10, 7142; GFX8-NEXT:    flat_store_byte v[0:1], v2143; GFX8-NEXT:    s_addc_u32 s1, s11, 0144; GFX8-NEXT:    v_mov_b32_e32 v0, s0145; GFX8-NEXT:    v_mov_b32_e32 v1, s1146; GFX8-NEXT:    v_mov_b32_e32 v2, s6147; GFX8-NEXT:    flat_store_byte v[0:1], v2148; GFX8-NEXT:    s_endpgm149bb:150  %tmp2 = load <16 x i8>, ptr addrspace(1) %arg, align 16151  %tmp3 = extractelement <16 x i8> %tmp2, i64 4152  %tmp6 = extractelement <16 x i8> %tmp2, i64 11153  %tmp10 = getelementptr inbounds <8 x i8>, ptr addrspace(1) %arg, i64 2154  %tmp12 = load <16 x i8>, ptr addrspace(1) %tmp10, align 16155  %tmp13 = extractelement <16 x i8> %tmp12, i64 7156  %tmp17 = extractelement <16 x i8> %tmp12, i64 12157  %tmp21 = getelementptr inbounds <8 x i8>, ptr addrspace(1) %arg, i64 4158  %tmp23 = load <16 x i8>, ptr addrspace(1) %tmp21, align 16159  %tmp24 = extractelement <16 x i8> %tmp23, i64 3160  %tmp1 = insertelement <16 x i8> poison, i8 %tmp3, i32 2161  %tmp4 = insertelement <16 x i8> %tmp1, i8 0, i32 3162  %tmp5 = insertelement <16 x i8> %tmp4, i8 0, i32 4163  %tmp7 = insertelement <16 x i8> %tmp5, i8 %tmp6, i32 5164  %tmp8 = insertelement <16 x i8> %tmp7, i8 0, i32 6165  %tmp9 = insertelement <16 x i8> %tmp8, i8 %tmp13, i32 7166  %tmp14 = insertelement <16 x i8> %tmp9, i8 0, i32 8167  %tmp15 = insertelement <16 x i8> %tmp14, i8 %tmp17, i32 9168  %tmp16 = insertelement <16 x i8> %tmp15, i8 0, i32 10169  %tmp18 = insertelement <16 x i8> %tmp16, i8 0, i32 11170  %tmp19 = insertelement <16 x i8> %tmp18, i8 %tmp24, i32 12171  store <16 x i8> %tmp19, ptr addrspace(1) %arg1, align 1172  ret void173}174 175attributes #0 = { nounwind }176