xref: /llvm-project/llvm/test/CodeGen/AMDGPU/undef-build-vector.ll (revision 9e9907f1cfa424366fba58d9520f9305b537cec9)
1; RUN: llc -mtriple=amdgcn < %s | FileCheck %s
2; RUN: llc -mtriple=amdgcn -mcpu=tonga < %s | FileCheck %s
3; RUN: llc -mtriple=amdgcn -mcpu=gfx900 < %s | FileCheck %s
4
5; Checks that we don't crash when code produces a build_vector with two undef operands.
6
7; CHECK: {{^}}buildvector_undefs:
8define amdgpu_kernel void @buildvector_undefs(<2 x i16> %in) {
9entry:
10  %i0 = call <16 x i16> @llvm.vector.insert.v16i16.v2i16(<16 x i16> poison, <2 x i16> %in, i64 0)
11  %i1 = call <16 x i16> @llvm.vector.insert.v16i16.v2i16(<16 x i16> %i0, <2 x i16> zeroinitializer, i64 2)
12  store <16 x i16> %i1, ptr addrspace(1) null, align 32
13  ret void
14}
15
16declare <2 x i16> @llvm.vector.extract.v2i16.v16i16(<16 x i16>, i64 immarg)
17declare <16 x i16> @llvm.vector.insert.v16i16.v2i16(<16 x i16>, <2 x i16>, i64 immarg)
18