Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / CodeGenHLSL / cbuf.hlsl
blob92c883943d03e774829d137fff019741a74bad72
1 // RUN: %clang_cc1 -finclude-default-header -x hlsl -triple \
2 // RUN:   dxil-pc-shadermodel6.3-library %s \
3 // RUN:   -emit-llvm -disable-llvm-passes -o - | FileCheck %s
5 // CHECK: @[[CB:.+]] = external constant { float, double }
6 cbuffer A : register(b0, space2) {
7   float a;
8   double b;
11 // CHECK: @[[TB:.+]] = external constant { float, double }
12 tbuffer A : register(t2, space1) {
13   float c;
14   double d;
17 float foo() {
18 // CHECK: load float, ptr @[[CB]], align 4
19 // CHECK: load double, ptr getelementptr inbounds ({ float, double }, ptr @[[CB]], i32 0, i32 1), align 8
20 // CHECK: load float, ptr @[[TB]], align 4
21 // CHECK: load double, ptr getelementptr inbounds ({ float, double }, ptr @[[TB]], i32 0, i32 1), align 8
22   return a + b + c*d;
25 // CHECK: !hlsl.cbufs = !{![[CBMD:[0-9]+]]}
26 // CHECK: !hlsl.srvs = !{![[TBMD:[0-9]+]]}
27 // CHECK: ![[CBMD]] = !{ptr @[[CB]], !"A.cb.ty", i32 13, i32 0, i32 2}
28 // CHECK: ![[TBMD]] = !{ptr @[[TB]], !"A.tb.ty", i32 15, i32 2, i32 1}