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