39 lines · plain
1; RUN: opt -S -mtriple=amdgcn-amd-amdhsa -passes=amdgpu-promote-alloca < %s | FileCheck %s2 3; Do not promote an alloca with users of vector/aggregate type.4 5; CHECK-LABEL: @test_insertelement(6; CHECK: %alloca = alloca i167; CHECK-NEXT: insertelement <2 x ptr addrspace(5)> poison, ptr addrspace(5) %alloca, i32 08define amdgpu_kernel void @test_insertelement() #0 {9entry:10 %alloca = alloca i16, align 4, addrspace(5)11 %in = insertelement <2 x ptr addrspace(5)> poison, ptr addrspace(5) %alloca, i32 012 store <2 x ptr addrspace(5)> %in, ptr poison, align 413 ret void14}15 16; CHECK-LABEL: @test_insertvalue(17; CHECK: %alloca = alloca i1618; CHECK-NEXT: insertvalue { ptr addrspace(5) } poison, ptr addrspace(5) %alloca, 019define amdgpu_kernel void @test_insertvalue() #0 {20entry:21 %alloca = alloca i16, align 4, addrspace(5)22 %in = insertvalue { ptr addrspace(5) } poison, ptr addrspace(5) %alloca, 023 store { ptr addrspace(5) } %in, ptr poison, align 424 ret void25}26 27; CHECK-LABEL: @test_insertvalue_array(28; CHECK: %alloca = alloca i1629; CHECK-NEXT: insertvalue [2 x ptr addrspace(5)] poison, ptr addrspace(5) %alloca, 030define amdgpu_kernel void @test_insertvalue_array() #0 {31entry:32 %alloca = alloca i16, align 4, addrspace(5)33 %in = insertvalue [2 x ptr addrspace(5)] poison, ptr addrspace(5) %alloca, 034 store [2 x ptr addrspace(5)] %in, ptr poison, align 435 ret void36}37 38attributes #0 = { nounwind }39