|
1 |
| -// RUN: not %clang -target x86_64-unknown-unknown %s 2>&1 | FileCheck %s --check-prefix=X86 |
2 |
| -// RUN: not %clang -target dxil-unknown-unknown %s 2>&1 | FileCheck %s --check-prefix=DXIL |
3 |
| -// RUN: not %clang -target x86_64-unknown-shadermodel %s 2>&1 | FileCheck %s --check-prefix=SM |
4 |
| -// RUN: not %clang -target spirv64-unknown-unknown %s 2>&1 | FileCheck %s --check-prefix=SPIRV |
| 1 | +// REQUIRES: dxil-registered-target |
5 | 2 |
|
| 3 | +// Supported targets |
| 4 | +// |
| 5 | +// RUN: %clang -target dxil--shadermodel6.2-pixel %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-VALID %s |
| 6 | +// RUN: %clang -target dxil-unknown-shadermodel6.2-pixel %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-VALID %s |
| 7 | +// RUN: %clang -target dxil--shadermodel6.2-library %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-VALID %s |
| 8 | +// RUN: %clang -target dxil-unknown-shadermodel6.2-library %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-VALID %s |
6 | 9 |
|
7 |
| -// A completely unsupported target... |
8 |
| -// X86: error: HLSL code generation is unsupported for target 'x86_64-unknown-unknown' |
| 10 | +// Empty shader model |
| 11 | +// |
| 12 | +// RUN: not %clang -target dxil %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-NO-OS %s |
9 | 13 |
|
10 |
| -// Poorly specified targets |
11 |
| -// DXIL: error: HLSL code generation is unsupported for target 'dxil-unknown-unknown' |
12 |
| -// SM: error: HLSL code generation is unsupported for target 'x86_64-unknown-shadermodel' |
| 14 | +// Invalid shader models |
| 15 | +// |
| 16 | +// RUN: not %clang -target dxil--linux %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-BAD-OS %s |
| 17 | +// RUN: not %clang -target dxil--win32 %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-BAD-OS %s |
| 18 | +// RUN: not %clang -target dxil--unknown %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-BAD-OS %s |
| 19 | +// RUN: not %clang -target dxil--invalidos %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-BAD-OS %s |
13 | 20 |
|
14 |
| -// FIXME// SPIRV: error: HLSL code generation is unsupported for target 'spirv64-unknown-unknown' |
| 21 | +// Bad shader model versions. Currently we just check for any version at all. |
| 22 | +// |
| 23 | +// RUN: not %clang -target dxil--shadermodel %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-BAD-OS %s |
| 24 | +// RUN: not %clang -target dxil--shadermodel0.0 %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-BAD-OS %s |
| 25 | + |
| 26 | +// Empty shader stage |
| 27 | +// |
| 28 | +// RUN: not %clang -target dxil-shadermodel6.2 %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-NO-ENV %s |
| 29 | +// RUN: not %clang -target dxil--shadermodel6.2 %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-NO-ENV %s |
| 30 | +// RUN: not %clang -target dxil--shadermodel6.2 %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-NO-ENV %s |
| 31 | + |
| 32 | +// Invalid shader stages |
| 33 | +// |
| 34 | +// RUN: not %clang -target dxil--shadermodel6.2-unknown %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-BAD-ENV %s |
| 35 | +// RUN: not %clang -target dxil--shadermodel6.2-invalidenvironment %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-BAD-ENV %s |
| 36 | +// RUN: not %clang -target dxil--shadermodel6.2-eabi %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-BAD-ENV %s |
| 37 | +// RUN: not %clang -target dxil--shadermodel6.2-msvc %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-BAD-ENV %s |
| 38 | + |
| 39 | +// Non-dxil targets |
| 40 | +// |
| 41 | +// RUN: not %clang -target x86_64-unknown-unknown %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-BAD-TARGET %s |
| 42 | +// RUN: not %clang -target x86_64-linux %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-BAD-TARGET %s |
| 43 | +// RUN: not %clang -target amdgcn %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-BAD-TARGET %s |
| 44 | + |
| 45 | +// CHECK-VALID-NOT: error: |
| 46 | +// CHECK-NO-OS: error: shader model is required in target '{{.*}}' for HLSL code generation |
| 47 | +// CHECK-BAD-OS: error: shader model '{{.*}}' in target '{{.*}}' is invalid for HLSL code generation |
| 48 | +// CHECK-NO-ENV: error: shader stage is required in target '{{.*}}' for HLSL code generation |
| 49 | +// CHECK-BAD-ENV: error: shader stage '{{.*}}' in target '{{.*}}' is invalid for HLSL code generation |
| 50 | +// CHECK-BAD-TARGET: error: HLSL code generation is unsupported for target '{{.*}}' |
| 51 | + |
| 52 | +[shader("pixel")] |
| 53 | +void main() {} |
0 commit comments