92 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=amdgcn -mcpu=gfx1200 < %s | FileCheck %s3 4define protected amdgpu_kernel void @no_folding_imm_to_inst_with_fi(<4 x i64> %val4, <16 x i64> %val16) {5; CHECK-LABEL: no_folding_imm_to_inst_with_fi:6; CHECK: ; %bb.0: ; %bb7; CHECK-NEXT: s_clause 0x28; CHECK-NEXT: s_load_b256 s[36:43], s[4:5], 0x249; CHECK-NEXT: s_load_b512 s[16:31], s[4:5], 0xe410; CHECK-NEXT: s_load_b512 s[0:15], s[4:5], 0xa411; CHECK-NEXT: s_mov_b64 s[34:35], src_private_base12; CHECK-NEXT: s_movk_i32 s34, 0x8013; CHECK-NEXT: s_delay_alu instid0(SALU_CYCLE_1)14; CHECK-NEXT: s_add_nc_u64 s[44:45], s[34:35], 0x7015; CHECK-NEXT: v_dual_mov_b32 v26, s34 :: v_dual_mov_b32 v27, s3516; CHECK-NEXT: v_dual_mov_b32 v20, s44 :: v_dual_mov_b32 v21, s4517; CHECK-NEXT: s_wait_kmcnt 0x018; CHECK-NEXT: v_dual_mov_b32 v0, s40 :: v_dual_mov_b32 v1, s4119; CHECK-NEXT: v_dual_mov_b32 v2, s42 :: v_dual_mov_b32 v3, s4320; CHECK-NEXT: v_dual_mov_b32 v4, s36 :: v_dual_mov_b32 v5, s3721; CHECK-NEXT: v_dual_mov_b32 v6, s38 :: v_dual_mov_b32 v7, s3922; CHECK-NEXT: v_dual_mov_b32 v12, s24 :: v_dual_mov_b32 v13, s2523; CHECK-NEXT: s_add_nc_u64 s[24:25], s[34:35], 0x6024; CHECK-NEXT: v_dual_mov_b32 v8, s28 :: v_dual_mov_b32 v9, s2925; CHECK-NEXT: v_dual_mov_b32 v10, s30 :: v_dual_mov_b32 v11, s3126; CHECK-NEXT: v_dual_mov_b32 v16, s20 :: v_dual_mov_b32 v17, s2127; CHECK-NEXT: s_add_nc_u64 s[20:21], s[34:35], 0x5028; CHECK-NEXT: v_dual_mov_b32 v14, s26 :: v_dual_mov_b32 v15, s2729; CHECK-NEXT: s_wait_alu depctr_sa_sdst(0)30; CHECK-NEXT: v_dual_mov_b32 v22, s24 :: v_dual_mov_b32 v23, s2531; CHECK-NEXT: v_dual_mov_b32 v18, s22 :: v_dual_mov_b32 v19, s2332; CHECK-NEXT: v_dual_mov_b32 v25, s21 :: v_dual_mov_b32 v24, s2033; CHECK-NEXT: scratch_store_b128 off, v[0:3], off offset:16 scope:SCOPE_SYS34; CHECK-NEXT: s_wait_storecnt 0x035; CHECK-NEXT: scratch_store_b128 off, v[4:7], off scope:SCOPE_SYS36; CHECK-NEXT: s_wait_storecnt 0x037; CHECK-NEXT: flat_store_b128 v[20:21], v[8:11] scope:SCOPE_SYS38; CHECK-NEXT: s_wait_storecnt 0x039; CHECK-NEXT: flat_store_b128 v[22:23], v[12:15] scope:SCOPE_SYS40; CHECK-NEXT: s_wait_storecnt 0x041; CHECK-NEXT: flat_store_b128 v[24:25], v[16:19] scope:SCOPE_SYS42; CHECK-NEXT: s_wait_storecnt 0x043; CHECK-NEXT: v_dual_mov_b32 v4, s12 :: v_dual_mov_b32 v5, s1344; CHECK-NEXT: s_add_nc_u64 s[12:13], s[34:35], 4845; CHECK-NEXT: v_dual_mov_b32 v0, s16 :: v_dual_mov_b32 v1, s1746; CHECK-NEXT: v_dual_mov_b32 v2, s18 :: v_dual_mov_b32 v3, s1947; CHECK-NEXT: v_dual_mov_b32 v6, s14 :: v_dual_mov_b32 v7, s1548; CHECK-NEXT: s_wait_alu depctr_sa_sdst(0)49; CHECK-NEXT: v_dual_mov_b32 v29, s13 :: v_dual_mov_b32 v28, s1250; CHECK-NEXT: v_dual_mov_b32 v8, s8 :: v_dual_mov_b32 v9, s951; CHECK-NEXT: v_dual_mov_b32 v10, s10 :: v_dual_mov_b32 v11, s1152; CHECK-NEXT: v_dual_mov_b32 v12, s4 :: v_dual_mov_b32 v13, s553; CHECK-NEXT: v_dual_mov_b32 v14, s6 :: v_dual_mov_b32 v15, s754; CHECK-NEXT: v_dual_mov_b32 v16, s0 :: v_dual_mov_b32 v17, s155; CHECK-NEXT: v_dual_mov_b32 v18, s2 :: v_dual_mov_b32 v19, s356; CHECK-NEXT: flat_store_b128 v[26:27], v[0:3] offset:64 scope:SCOPE_SYS57; CHECK-NEXT: s_wait_storecnt 0x058; CHECK-NEXT: flat_store_b128 v[28:29], v[4:7] scope:SCOPE_SYS59; CHECK-NEXT: s_wait_storecnt 0x060; CHECK-NEXT: flat_store_b128 v[26:27], v[8:11] offset:32 scope:SCOPE_SYS61; CHECK-NEXT: s_wait_storecnt 0x062; CHECK-NEXT: flat_store_b128 v[26:27], v[12:15] offset:16 scope:SCOPE_SYS63; CHECK-NEXT: s_wait_storecnt 0x064; CHECK-NEXT: flat_store_b128 v[26:27], v[16:19] scope:SCOPE_SYS65; CHECK-NEXT: s_wait_storecnt 0x066; CHECK-NEXT: flat_load_b128 v[0:3], v[22:23] scope:SCOPE_SYS67; CHECK-NEXT: s_wait_loadcnt_dscnt 0x068; CHECK-NEXT: flat_load_b128 v[0:3], v[20:21] scope:SCOPE_SYS69; CHECK-NEXT: s_wait_loadcnt_dscnt 0x070; CHECK-NEXT: flat_load_b128 v[0:3], v[26:27] offset:64 scope:SCOPE_SYS71; CHECK-NEXT: s_wait_loadcnt_dscnt 0x072; CHECK-NEXT: flat_load_b128 v[0:3], v[24:25] scope:SCOPE_SYS73; CHECK-NEXT: s_wait_loadcnt_dscnt 0x074; CHECK-NEXT: flat_load_b128 v[0:3], v[26:27] offset:32 scope:SCOPE_SYS75; CHECK-NEXT: s_wait_loadcnt_dscnt 0x076; CHECK-NEXT: flat_load_b128 v[0:3], v[28:29] scope:SCOPE_SYS77; CHECK-NEXT: s_wait_loadcnt_dscnt 0x078; CHECK-NEXT: flat_load_b128 v[0:3], v[26:27] scope:SCOPE_SYS79; CHECK-NEXT: s_wait_loadcnt_dscnt 0x080; CHECK-NEXT: flat_load_b128 v[0:3], v[26:27] offset:16 scope:SCOPE_SYS81; CHECK-NEXT: s_wait_loadcnt 0x082; CHECK-NEXT: s_endpgm83bb:84 %alloca = alloca <4 x i64>, align 32, addrspace(5)85 %alloca1 = alloca <16 x i64>, align 128, addrspace(5)86 store volatile <4 x i64> %val4, ptr addrspace(5) %alloca87 %ascast = addrspacecast ptr addrspace(5) %alloca1 to ptr88 store volatile <16 x i64> %val16, ptr %ascast89 %load = load volatile <16 x i64>, ptr %ascast90 ret void91}92