yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

aidanfnvAdd arguments for controlling floating point denormal mode (#7461)d50c3f34a

master
1.3 KiB26 linesraw
1//TEST:SIMPLE(filecheck=CHECK_ANY):-target spirv-assembly -entry genericEntry<half> -stage compute
2//TEST:SIMPLE(filecheck=CHECK_ANY):-target spirv-assembly -entry genericEntry<float> -stage compute
3//TEST:SIMPLE(filecheck=CHECK_ANY):-target spirv-assembly -entry genericEntry<double> -stage compute
4
5//TEST:SIMPLE(filecheck=CHECK_PRESERVE):-target spirv-assembly -entry genericEntry<half> -stage compute -denorm-mode-fp32 preserve
6//TEST:SIMPLE(filecheck=CHECK_PRESERVE):-target spirv-assembly -entry genericEntry<float> -stage compute -denorm-mode-fp32 preserve
7//TEST:SIMPLE(filecheck=CHECK_PRESERVE):-target spirv-assembly -entry genericEntry<double> -stage compute -denorm-mode-fp32 preserve
8
9//TEST:SIMPLE(filecheck=CHECK_FTZ):-target spirv-assembly -entry genericEntry<half> -stage compute -denorm-mode-fp32 ftz
10//TEST:SIMPLE(filecheck=CHECK_FTZ):-target spirv-assembly -entry genericEntry<float> -stage compute -denorm-mode-fp32 ftz
11//TEST:SIMPLE(filecheck=CHECK_FTZ):-target spirv-assembly -entry genericEntry<double> -stage compute -denorm-mode-fp32 ftz
12
13// CHECK_ANY-NOT: DenormPreserve
14// CHECK_ANY-NOT: DenormFlushToZero
15
16// CHECK_PRESERVE: DenormPreserve 32
17// CHECK_FTZ: DenormFlushToZero 32
18
19[shader("compute")]  
20[numthreads(1, 1, 1)]
21__generic<T : __BuiltinArithmeticType> void genericEntry()
22{
23    T a = T(1);
24    T b = T(2);  
25    T result = a + b;
26}