================ @@ -0,0 +1,103 @@ +; RUN: opt -S -dxil-translate-metadata < %s | FileCheck %s +; RUN: opt -S --passes="dxil-pretty-printer" < %s 2>&1 | FileCheck %s --check-prefix=PRINT +; RUN: llc %s --filetype=asm -o - < %s 2>&1 | FileCheck %s --check-prefixes=CHECK,PRINT + +target datalayout = "e-m:e-p:32:32-i1:32-i8:8-i16:16-i32:32-i64:64-f16:16-f32:32-f64:64-n8:16:32:64" +target triple = "dxil-pc-shadermodel6.6-compute" + +%"class.hlsl::Buffer" = type { target("dx.TypedBuffer", <4 x half>, 0, 0, 0) } +%"class.hlsl::Buffer.1" = type { target("dx.TypedBuffer", <2 x float>, 0, 0, 0) } +%"class.hlsl::Buffer.2" = type { target("dx.TypedBuffer", double, 0, 0, 0) } +%"class.hlsl::Buffer.3" = type { target("dx.TypedBuffer", i32, 0, 0, 1) } +%"class.hlsl::ByteAddressBuffer" = type { target("dx.RawBuffer", i8, 0, 0) } +%"class.hlsl::StructuredBuffer" = type { target("dx.RawBuffer", i16, 0, 0) } +%"class.hlsl::Buffer.4" = type { target("dx.TypedBuffer", i64, 0, 0, 0) } + +@Zero = internal global %"class.hlsl::Buffer" poison, align 4 +@One = internal global %"class.hlsl::Buffer.1" poison, align 4 +@Two = internal global %"class.hlsl::Buffer.2" poison, align 4 +@Three = internal global %"class.hlsl::Buffer.3" poison, align 4 +@Four = internal global %"class.hlsl::ByteAddressBuffer" poison, align 4 +@Five = internal global %"class.hlsl::StructuredBuffer" poison, align 4 +@Six = internal global %"class.hlsl::Buffer.4" poison, align 4 + +; PRINT:; Resource Bindings: +; PRINT-NEXT:; +; PRINT-NEXT:; Name Type Format Dim ID HLSL Bind Count +; PRINT-NEXT:; ------------------------------ ---------- ------- ----------- ------- -------------- ------ +; PRINT-NEXT:; SRV f16 buf T0 t0 1 +; PRINT-NEXT:; SRV f32 buf T1 t1 1 +; PRINT-NEXT:; SRV f64 buf T2 t2 1 +; PRINT-NEXT:; SRV i32 buf T3 t3 1 +; PRINT-NEXT:; SRV byte r/o T4 t5 1 +; PRINT-NEXT:; SRV struct r/o T5 t6 1 +; PRINT-NEXT:; SRV u64 buf T6 t10,space2 1 + +define void @test() #0 { + ; RWBuffer<half4> Buf : register(u0) ---------------- bogner wrote:
This isn't `RWBuffer<half4>`, it's `Buffer<half4>` - the former is a UAV. This applies to all of the RWBuffer in this file. https://github.com/llvm/llvm-project/pull/130222 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits