1
+ // RUN: %clang_cc1 -finclude-default-header -triple dxil-pc-shadermodel6.6-library %s -fnative-half-type -verify
2
+
3
+
4
+ float4 test_float_too_many_arg (float p0, float p1) {
5
+ return asfloat (p0, p1);
6
+ // expected-error@-1 {{no matching function for call to 'asfloat'}}
7
+ // expected-note@hlsl/hlsl_intrinsics.h:* {{candidate function template not viable: requires single argument 'V', but 2 arguments were provided}}
8
+ // expected-note@hlsl/hlsl_intrinsics.h:* {{candidate function template not viable: requires single argument 'F', but 2 arguments were provided}}
9
+ }
10
+
11
+
12
+ float test_float_double (double p1) {
13
+ return asfloat (p1);
14
+ // expected-error@hlsl/hlsl_intrinsics.h:* {{no matching function for call to 'bit_cast'}}
15
+ // expected-note@-2 {{in instantiation of function template specialization 'hlsl::asfloat<double>'}}
16
+ // expected-note@hlsl/hlsl_detail.h:* {{candidate template ignored: could not match 'vector<double, N>' against 'double'}}
17
+ // expected-note@hlsl/hlsl_detail.h:* {{candidate template ignored: substitution failure [with U = float, T = double]: no type named 'Type'}}
18
+ }
19
+
20
+ float test_float_half (half p1) {
21
+ return asfloat (p1);
22
+ // expected-error@hlsl/hlsl_intrinsics.h:* {{no matching function for call to 'bit_cast'}}
23
+ // expected-note@-2 {{in instantiation of function template specialization 'hlsl::asfloat<half>'}}
24
+ // expected-note@hlsl/hlsl_detail.h:* {{candidate template ignored: could not match 'vector<half, N>' against 'half'}}
25
+ // expected-note@hlsl/hlsl_detail.h:* {{candidate template ignored: substitution failure [with U = float, T = half]: no type named 'Type'}}
26
+ }
27
+
28
+
29
+ float test_float_half (bool p1) {
30
+ return asfloat (p1);
31
+ // expected-error@hlsl/hlsl_intrinsics.h:* {{no matching function for call to 'bit_cast'}}
32
+ // expected-note@-2 {{in instantiation of function template specialization 'hlsl::asfloat<bool>'}}
33
+ // expected-note@hlsl/hlsl_detail.h:* {{candidate template ignored: could not match 'vector<bool, N>' against 'bool'}}
34
+ // expected-note@hlsl/hlsl_detail.h:* {{candidate template ignored: substitution failure [with U = float, T = bool]: no type named 'Type'}}
35
+ }
0 commit comments