xref: /llvm-project/llvm/test/CodeGen/DirectX/BufferStore-errors.ll (revision aa07f922103ebe8e78c8da4c754b43af3c129f3e)
190e84113SJustin Bogner; We use llc for this test so that we don't abort after the first error.
290e84113SJustin Bogner; RUN: not llc %s -o /dev/null 2>&1 | FileCheck %s
390e84113SJustin Bogner
490e84113SJustin Bognertarget triple = "dxil-pc-shadermodel6.6-compute"
590e84113SJustin Bogner
690e84113SJustin Bogner; CHECK: error:
790e84113SJustin Bogner; CHECK-SAME: in function storetoomany
890e84113SJustin Bogner; CHECK-SAME: typedBufferStore data must be a vector of 4 elements
993d2a2caSJustin Bognerdefine void @storetoomany(<5 x float> %data, i32 %index) "hlsl.export" {
1090e84113SJustin Bogner  %buffer = call target("dx.TypedBuffer", <4 x float>, 1, 0, 0)
11*aa07f922SJustin Bogner      @llvm.dx.resource.handlefrombinding.tdx.TypedBuffer_v4f32_1_0_0(
1290e84113SJustin Bogner          i32 0, i32 0, i32 1, i32 0, i1 false)
1390e84113SJustin Bogner
14*aa07f922SJustin Bogner  call void @llvm.dx.resource.store.typedbuffer.tdx.TypedBuffer_v4f32_1_0_0t.v5f32(
1590e84113SJustin Bogner      target("dx.TypedBuffer", <4 x float>, 1, 0, 0) %buffer,
1690e84113SJustin Bogner      i32 %index, <5 x float> %data)
1790e84113SJustin Bogner
1890e84113SJustin Bogner  ret void
1990e84113SJustin Bogner}
2090e84113SJustin Bogner
2190e84113SJustin Bogner; CHECK: error:
2290e84113SJustin Bogner; CHECK-SAME: in function storetoofew
2390e84113SJustin Bogner; CHECK-SAME: typedBufferStore data must be a vector of 4 elements
2493d2a2caSJustin Bognerdefine void @storetoofew(<3 x i32> %data, i32 %index) "hlsl.export" {
2590e84113SJustin Bogner  %buffer = call target("dx.TypedBuffer", <4 x i32>, 1, 0, 0)
26*aa07f922SJustin Bogner      @llvm.dx.resource.handlefrombinding.tdx.TypedBuffer_v4i32_1_0_0(
2790e84113SJustin Bogner          i32 0, i32 0, i32 1, i32 0, i1 false)
2890e84113SJustin Bogner
29*aa07f922SJustin Bogner  call void @llvm.dx.resource.store.typedbuffer.tdx.TypedBuffer_v4i32_1_0_0t.v3i32(
3090e84113SJustin Bogner      target("dx.TypedBuffer", <4 x i32>, 1, 0, 0) %buffer,
3190e84113SJustin Bogner      i32 %index, <3 x i32> %data)
3290e84113SJustin Bogner
3390e84113SJustin Bogner  ret void
3490e84113SJustin Bogner}
3590e84113SJustin Bogner
36*aa07f922SJustin Bognerdeclare void @llvm.dx.resource.store.typedbuffer.tdx.TypedBuffer_v4f32_1_0_0t.v5f32(target("dx.TypedBuffer", <4 x float>, 1, 0, 0), i32, <5 x float>)
37*aa07f922SJustin Bognerdeclare void @llvm.dx.resource.store.typedbuffer.tdx.TypedBuffer_v4i32_1_0_0t.v3i32(target("dx.TypedBuffer", <4 x i32>, 1, 0, 0), i32, <3 x i32>)
38