brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · e3bd584 Raw
43 lines · plain
1; RUN: opt -S --passes="print-dx-shader-flags" 2>&1 %s | FileCheck %s2 3; Note: there is no feature flag here (only a module flag), so we don't have an4; object test.5 6target triple = "dxil-pc-shadermodel6.7-library"7 8; CHECK:      Combined Shader Flags for Module9; CHECK-NEXT: Shader Flags Value: 0x0000001010 11; CHECK: Note: shader requires additional functionality:12; CHECK:       Raw and structured buffers13 14; CHECK: Function rawbuf : 0x0000001015define float @rawbuf() "hlsl.export" {16  %buffer = call target("dx.RawBuffer", i8, 0, 0, 0)17      @llvm.dx.resource.handlefrombinding(i32 0, i32 0, i32 1, i32 0, ptr null)18  %load = call {float, i1} @llvm.dx.resource.load.rawbuffer.f32(19      target("dx.RawBuffer", i8, 0, 0, 0) %buffer, i32 0, i32 0)20  %data = extractvalue {float, i1} %load, 021  ret float %data22}23 24; CHECK: Function structbuf : 0x0000001025define float @structbuf() "hlsl.export" {26  %buffer = call target("dx.RawBuffer", float, 0, 0, 0)27      @llvm.dx.resource.handlefrombinding(i32 0, i32 0, i32 1, i32 0, ptr null)28  %load = call {float, i1} @llvm.dx.resource.load.rawbuffer.f32(29      target("dx.RawBuffer", float, 0, 0, 0) %buffer, i32 0, i32 0)30  %data = extractvalue {float, i1} %load, 031  ret float %data32}33 34; CHECK: Function typedbuf : 0x0000000035define float @typedbuf(<4 x float> %val) "hlsl.export" {36  %buffer = call target("dx.TypedBuffer", float, 0, 0, 0)37      @llvm.dx.resource.handlefrombinding(i32 0, i32 0, i32 1, i32 0, ptr null)38  %load = call {float, i1} @llvm.dx.resource.load.typedbuffer(39      target("dx.TypedBuffer", float, 0, 0, 0) %buffer, i32 0)40  %data = extractvalue {float, i1} %load, 041  ret float %data42}43