brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 26b8096 Raw
40 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 52; RUN: opt -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 -passes=loop-vectorize -S < %s | FileCheck %s3 4; Reduced from a crash, variables added to make things more realistic.5; This is a roundabout test for TargetLowering::getValueType() returning6; a reasonable value for <N x p7> instead of asserting.7define amdgpu_kernel void @_dynamic_pack_simple_dispatch_0_pack_i32(ptr addrspace(1) %.ptr, i64 %v) {8; CHECK-LABEL: define amdgpu_kernel void @_dynamic_pack_simple_dispatch_0_pack_i32(9; CHECK-SAME: ptr addrspace(1) [[DOTPTR:%.*]], i64 [[V:%.*]]) #[[ATTR0:[0-9]+]] {10; CHECK-NEXT:  [[ENTRY:.*]]:11; CHECK-NEXT:    [[DOTRSRC:%.*]] = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p8.p1(ptr addrspace(1) [[DOTPTR]], i16 0, i64 2147483648, i32 159744)12; CHECK-NEXT:    [[TMP1:%.*]] = addrspacecast ptr addrspace(8) [[DOTRSRC]] to ptr addrspace(7)13; CHECK-NEXT:    br label %[[LOOP:.*]]14; CHECK:       [[LOOP]]:15; CHECK-NEXT:    [[TMP3:%.*]] = phi i64 [ 0, %[[ENTRY]] ], [ [[TMP5:%.*]], %[[LOOP]] ]16; CHECK-NEXT:    [[TMP4:%.*]] = getelementptr i32, ptr addrspace(7) [[TMP1]], i32 017; CHECK-NEXT:    [[TMP5]] = add i64 [[TMP3]], 118; CHECK-NEXT:    [[EXITCOND_NOT:%.*]] = icmp eq i64 [[TMP3]], [[V]]19; CHECK-NEXT:    br i1 [[EXITCOND_NOT]], label %[[EXIT:.*]], label %[[LOOP]]20; CHECK:       [[EXIT]]:21; CHECK-NEXT:    ret void22;23entry:24  %rsrc = call ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p1(ptr addrspace(1) %.ptr, i16 0, i64 2147483648, i32 159744)25  %fat = addrspacecast ptr addrspace(8) %rsrc to ptr addrspace(7)26  br label %loop27 28loop:                                                ; preds = %loop, %entry29  %iv = phi i64 [ 0, %entry ], [ %iv.next, %loop ]30  %ptr = getelementptr i32, ptr addrspace(7) %fat, i32 031  %iv.next = add i64 %iv, 132  %exitcond.not = icmp eq i64 %iv, %v33  br i1 %exitcond.not, label %exit, label %loop34 35exit:                             ; preds = %exit36  ret void37}38 39declare ptr addrspace(8) @llvm.amdgcn.make.buffer.rsrc.p1(ptr addrspace(1) readnone, i16, i64, i32)40