xref: /llvm-project/clang/test/Preprocessor/predefined-macros-hlsl.hlsl (revision 4d621025d4fc2f2438affdca7a016dd93b56f4e0)
1// RUN: %clang_cc1 %s -E -dM -o - -triple dxil-pc-shadermodel6.0-amplification | FileCheck -match-full-lines %s --check-prefixes=CHECK,AMPLIFICATION,NOHALF
2// RUN: %clang_cc1 %s -E -dM -o - -triple dxil-pc-shadermodel6.0-compute | FileCheck -match-full-lines %s --check-prefixes=CHECK,COMPUTE,NOHALF
3// RUN: %clang_cc1 %s -E -dM -o - -triple dxil-pc-shadermodel6.0-domain | FileCheck -match-full-lines %s --check-prefixes=CHECK,DOMAIN,NOHALF
4// RUN: %clang_cc1 %s -E -dM -o - -triple dxil-pc-shadermodel6.0-geometry | FileCheck -match-full-lines %s --check-prefixes=CHECK,GEOMETRY,NOHALF
5// RUN: %clang_cc1 %s -E -dM -o - -triple dxil-pc-shadermodel6.0-hull | FileCheck -match-full-lines %s --check-prefixes=CHECK,HULL,NOHALF
6// RUN: %clang_cc1 %s -E -dM -o - -triple dxil-pc-shadermodel6.0-library | FileCheck -match-full-lines %s --check-prefixes=CHECK,LIBRARY,NOHALF
7// RUN: %clang_cc1 %s -E -dM -o - -triple dxil-pc-shadermodel6.0-mesh | FileCheck -match-full-lines %s --check-prefixes=CHECK,MESH,NOHALF
8// RUN: %clang_cc1 %s -E -dM -o - -triple dxil-pc-shadermodel6.0-pixel | FileCheck -match-full-lines %s --check-prefixes=CHECK,PIXEL,NOHALF
9// RUN: %clang_cc1 %s -E -dM -o - -triple dxil-pc-shadermodel6.0-vertex | FileCheck -match-full-lines %s --check-prefixes=CHECK,VERTEX,NOHALF
10// RUN: %clang_cc1 %s -E -dM -o - -triple dxil-pc-shadermodel6.3-vertex -fnative-half-type | FileCheck -match-full-lines %s --check-prefixes=CHECK,VERTEX,HALF
11
12// HALF: #define __HLSL_ENABLE_16_BIT 1
13// NOHALF-NOT: __HLSL_ENABLE_16_BIT
14
15// CHECK: #define __HLSL_VERSION 2028
16
17// CHECK: #define __SHADER_STAGE_AMPLIFICATION 14
18// CHECK: #define __SHADER_STAGE_COMPUTE 5
19// CHECK: #define __SHADER_STAGE_DOMAIN 4
20// CHECK: #define __SHADER_STAGE_GEOMETRY 2
21// CHECK: #define __SHADER_STAGE_HULL 3
22// CHECK: #define __SHADER_STAGE_LIBRARY 6
23// CHECK: #define __SHADER_STAGE_MESH 13
24// CHECK: #define __SHADER_STAGE_PIXEL 0
25// CHECK: #define __SHADER_STAGE_VERTEX 1
26
27// AMPLIFICATION: #define __SHADER_TARGET_STAGE 14
28// COMPUTE: #define __SHADER_TARGET_STAGE 5
29// DOMAIN: #define __SHADER_TARGET_STAGE 4
30// GEOMETRY: #define __SHADER_TARGET_STAGE 2
31// HULL: #define __SHADER_TARGET_STAGE 3
32// LIBRARY: #define __SHADER_TARGET_STAGE 6
33// MESH: #define __SHADER_TARGET_STAGE 13
34// PIXEL: #define __SHADER_TARGET_STAGE 0
35// VERTEX: #define __SHADER_TARGET_STAGE 1
36
37// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library %s -E -dM -o - -x hlsl -std=hlsl2015 2>&1 | FileCheck -match-full-lines %s --check-prefixes=STD2015
38// STD2015: warning: support for HLSL language version hlsl2015 is incomplete, recommend using hlsl202x instead
39// STD2015: #define __HLSL_VERSION 2015
40
41// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library %s -E -dM -o - -x hlsl -std=hlsl2016 2>&1 | FileCheck -match-full-lines %s --check-prefixes=STD2016
42// STD2016: warning: support for HLSL language version hlsl2016 is incomplete, recommend using hlsl202x instead
43// STD2016: #define __HLSL_VERSION 2016
44
45// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library %s -E -dM -o - -x hlsl -std=hlsl2017 2>&1 | FileCheck -match-full-lines %s --check-prefixes=STD2017
46// STD2017: warning: support for HLSL language version hlsl2017 is incomplete, recommend using hlsl202x instead
47// STD2017: #define __HLSL_VERSION 2017
48
49// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library %s -E -dM -o - -x hlsl -std=hlsl2018 2>&1 | FileCheck -match-full-lines %s --check-prefixes=STD2018
50// STD2018: warning: support for HLSL language version hlsl2018 is incomplete, recommend using hlsl202x instead
51// STD2018: #define __HLSL_VERSION 2018
52
53// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library %s -E -dM -o - -x hlsl -std=hlsl2021 2>&1 | FileCheck -match-full-lines %s --check-prefixes=STD2021
54// STD2021: warning: support for HLSL language version hlsl2021 is incomplete, recommend using hlsl202x instead
55// STD2021: #define __HLSL_VERSION 2021
56
57// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library %s -E -dM -o - -x hlsl -std=hlsl202x | FileCheck -match-full-lines %s --check-prefixes=STD202x
58// STD202x-NOT: warning
59// STD202x: #define __HLSL_VERSION 2028
60
61// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library %s -E -dM -o - -x hlsl -std=hlsl202y | FileCheck -match-full-lines %s --check-prefixes=STD202y
62// STD202y-NOT: warning
63// STD202y: #define __HLSL_VERSION 2029
64