43 lines · plain
1; RUN: opt -S --passes="print-dx-shader-flags" 2>&1 %s | FileCheck %s2; RUN: llc %s --filetype=obj -o - | obj2yaml | FileCheck %s --check-prefix=DXC3 4; This test makes sure that resource arrays sizes are accounted for when5; counting the number of UAVs for setting the shader flag '64 UAV slots' when6; the validator version is >= 1.67 8target triple = "dxil-pc-shadermodel6.7-library"9 10; CHECK: Combined Shader Flags for Module11; CHECK-NEXT: Shader Flags Value: 0x0001800012 13; CHECK: Note: shader requires additional functionality:14; CHECK: UAVs at every shader stage15; CHECK: 64 UAV slots16 17; CHECK: Function test : 0x0001800018define void @test() "hlsl.export" {19 ; RWBuffer<float> Buf : register(u0, space0)20 %buf0 = call target("dx.TypedBuffer", float, 1, 0, 1)21 @llvm.dx.resource.handlefrombinding.tdx.TypedBuffer_f32_1_0t(22 i32 0, i32 0, i32 1, i32 0, ptr null)23 24 ; RWBuffer<float> Buf[8] : register(u1, space0)25 %buf1 = call target("dx.TypedBuffer", float, 1, 0, 1)26 @llvm.dx.resource.handlefrombinding.tdx.TypedBuffer_f32_1_0t(27 i32 0, i32 1, i32 8, i32 0, ptr null)28 ret void29}30 31!dx.valver = !{!1}32!1 = !{i32 1, i32 6}33 34!llvm.module.flags = !{!0}35!0 = !{i32 1, !"dx.resmayalias", i32 1}36 37; DXC: - Name: SFI038; DXC-NEXT: Size: 839; DXC-NEXT: Flags:40; DXC: Max64UAVs: true41; DXC: NextUnusedBit: false42; DXC: ...43