brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 04652af Raw
40 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -global-isel -mtriple=amdgcn-- -mem-intrinsic-expand-size=3 %s -o - | FileCheck -check-prefix=LOOP %s3; RUN: llc -global-isel -mtriple=amdgcn-- -mem-intrinsic-expand-size=5 %s -o - | FileCheck -check-prefix=UNROLL %s4 5declare void @llvm.memset.p1.i32(ptr addrspace(1), i8, i32, i1)6 7define amdgpu_cs void @memset_p1i8(ptr addrspace(1) %dst, i8 %val) {8; LOOP-LABEL: memset_p1i8:9; LOOP:       ; %bb.0: ; %loadstoreloop.preheader10; LOOP-NEXT:    s_mov_b64 s[0:1], 011; LOOP-NEXT:    s_mov_b32 s2, 012; LOOP-NEXT:    s_mov_b32 s3, 0xf00013; LOOP-NEXT:    v_mov_b32_e32 v4, s114; LOOP-NEXT:    v_mov_b32_e32 v3, s015; LOOP-NEXT:  .LBB0_1: ; %loadstoreloop16; LOOP-NEXT:    ; =>This Inner Loop Header: Depth=117; LOOP-NEXT:    v_add_i32_e32 v5, vcc, v0, v318; LOOP-NEXT:    v_addc_u32_e32 v6, vcc, v1, v4, vcc19; LOOP-NEXT:    v_add_i32_e32 v3, vcc, 1, v320; LOOP-NEXT:    v_addc_u32_e32 v4, vcc, 0, v4, vcc21; LOOP-NEXT:    v_cmp_gt_u32_e32 vcc, 4, v322; LOOP-NEXT:    buffer_store_byte v2, v[5:6], s[0:3], 0 addr6423; LOOP-NEXT:    s_cbranch_vccnz .LBB0_124; LOOP-NEXT:  ; %bb.2: ; %split25; LOOP-NEXT:    s_endpgm26;27; UNROLL-LABEL: memset_p1i8:28; UNROLL:       ; %bb.0:29; UNROLL-NEXT:    s_mov_b32 s2, 030; UNROLL-NEXT:    s_mov_b32 s3, 0xf00031; UNROLL-NEXT:    s_mov_b64 s[0:1], 032; UNROLL-NEXT:    buffer_store_byte v2, v[0:1], s[0:3], 0 addr6433; UNROLL-NEXT:    buffer_store_byte v2, v[0:1], s[0:3], 0 addr64 offset:134; UNROLL-NEXT:    buffer_store_byte v2, v[0:1], s[0:3], 0 addr64 offset:235; UNROLL-NEXT:    buffer_store_byte v2, v[0:1], s[0:3], 0 addr64 offset:336; UNROLL-NEXT:    s_endpgm37  call void @llvm.memset.p1.i32(ptr addrspace(1) %dst, i8 %val, i32 4, i1 false)38  ret void39}40