1; We use llc for this test so that we don't abort after the first error. 2; RUN: not llc %s -o /dev/null 2>&1 | FileCheck %s 3 4target triple = "dxil-pc-shadermodel6.6-compute" 5 6; CHECK: error: 7; CHECK-SAME: in function storetoomany 8; CHECK-SAME: typedBufferStore data must be a vector of 4 elements 9define void @storetoomany(<5 x float> %data, i32 %index) "hlsl.export" { 10 %buffer = call target("dx.TypedBuffer", <4 x float>, 1, 0, 0) 11 @llvm.dx.resource.handlefrombinding.tdx.TypedBuffer_v4f32_1_0_0( 12 i32 0, i32 0, i32 1, i32 0, i1 false) 13 14 call void @llvm.dx.resource.store.typedbuffer.tdx.TypedBuffer_v4f32_1_0_0t.v5f32( 15 target("dx.TypedBuffer", <4 x float>, 1, 0, 0) %buffer, 16 i32 %index, <5 x float> %data) 17 18 ret void 19} 20 21; CHECK: error: 22; CHECK-SAME: in function storetoofew 23; CHECK-SAME: typedBufferStore data must be a vector of 4 elements 24define void @storetoofew(<3 x i32> %data, i32 %index) "hlsl.export" { 25 %buffer = call target("dx.TypedBuffer", <4 x i32>, 1, 0, 0) 26 @llvm.dx.resource.handlefrombinding.tdx.TypedBuffer_v4i32_1_0_0( 27 i32 0, i32 0, i32 1, i32 0, i1 false) 28 29 call void @llvm.dx.resource.store.typedbuffer.tdx.TypedBuffer_v4i32_1_0_0t.v3i32( 30 target("dx.TypedBuffer", <4 x i32>, 1, 0, 0) %buffer, 31 i32 %index, <3 x i32> %data) 32 33 ret void 34} 35 36declare 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>) 37declare 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