Skip to content

Commit 569631d

Browse files
committed
adding test
1 parent e417ac7 commit 569631d

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

llvm/lib/Analysis/DXILResource.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,6 @@ static dxil::ElementType toDXILElementType(Type *Ty, bool IsSigned) {
207207
}
208208

209209
static dxil::ElementType toDXILStorageType(dxil::ElementType ET) {
210-
// TODO: Handle unorm and snorm.
211210
if (ET == dxil::ElementType::U64 || ET == dxil::ElementType::F64 ||
212211
ET == dxil::ElementType::I64 || ET == dxil::ElementType::SNormF64 ||
213212
ET == dxil::ElementType::UNormF64)
@@ -646,9 +645,10 @@ void ResourceTypeInfo::print(raw_ostream &OS, const DataLayout &DL) const {
646645
OS << " Alignment: " << Struct.AlignLog2 << "\n";
647646
} else if (isTyped()) {
648647
TypedInfo Typed = getTyped();
649-
OS << " Element Type: " << getElementTypeName(Typed.ElementTy) << "\n"
650-
<< " Storage Type: " << getElementTypeName(Typed.DXILStorageTy)
651-
<< "\n"
648+
OS << " Element Type: " << getElementTypeName(Typed.ElementTy);
649+
if (Typed.ElementTy != Typed.DXILStorageTy)
650+
OS << " (stored as " << getElementTypeName(Typed.DXILStorageTy) << ")";
651+
OS << "\n"
652652
<< " Element Count: " << Typed.ElementCount << "\n";
653653
} else if (isFeedback())
654654
OS << " Feedback Type: " << getSamplerFeedbackTypeName(getFeedbackType())

llvm/test/Analysis/DXILResource/buffer-frombinding.ll

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
@Five.str = private unnamed_addr constant [5 x i8] c"Five\00", align 1
1212
@CB.str = private unnamed_addr constant [3 x i8] c"CB\00", align 1
1313
@Constants.str = private unnamed_addr constant [10 x i8] c"Constants\00", align 1
14+
@Six.str = private unnamed_addr constant [4 x i8] c"Six\00", align 1
15+
1416

1517
define void @test_typedbuffer() {
1618
; ByteAddressBuffer Buf : register(t8, space1)
@@ -137,6 +139,23 @@ define void @test_typedbuffer() {
137139
; CHECK: Element Type: f32
138140
; CHECK: Element Count: 4
139141

142+
%uav4 = call target("dx.TypedBuffer", double, 1, 0, 0)
143+
@llvm.dx.resource.handlefrombinding(i32 5, i32 0, i32 1, i32 0, ptr @Six.str)
144+
; CHECK: Resource [[UAV4:[0-9]+]]:
145+
; CHECK: Name: Six
146+
; CHECK: Binding:
147+
; CHECK: Record ID: 4
148+
; CHECK: Space: 5
149+
; CHECK: Lower Bound: 0
150+
; CHECK: Size: 1
151+
; CHECK: Globally Coherent: 0
152+
; CHECK: Counter Direction: Unknown
153+
; CHECK: Class: UAV
154+
; CHECK: Kind: Buffer
155+
; CHECK: IsROV: 0
156+
; CHECK: Element Type: f64 (stored as u32)
157+
; CHECK: Element Count: 1
158+
140159
%cb0 = call target("dx.CBuffer", {float})
141160
@llvm.dx.resource.handlefrombinding(i32 1, i32 0, i32 1, i32 0, ptr @CB.str)
142161
; CHECK: Resource [[CB0:[0-9]+]]:
@@ -175,6 +194,7 @@ define void @test_typedbuffer() {
175194
; CHECK-DAG: Call bound to [[UAV1]]: %uav1 =
176195
; CHECK-DAG: Call bound to [[UAV2]]: %uav2_1 =
177196
; CHECK-DAG: Call bound to [[UAV2]]: %uav2_2 =
197+
; CHECK-DAG: Call bound to [[UAV4]]: %uav4 =
178198
; CHECK-DAG: Call bound to [[CB0]]: %cb0 =
179199
; CHECK-DAG: Call bound to [[CB1]]: %cb1 =
180200

0 commit comments

Comments
 (0)