[clang] [HLSL] Rewrite a small subset of HLSL intrinsics into TableGen (PR #188362)
Deric C. via cfe-commits
cfe-commits at lists.llvm.org
Wed Mar 25 10:00:59 PDT 2026
================
@@ -3,64 +3,56 @@
float test_no_second_arg(float3 p0) {
return refract(p0);
// expected-error at -1 {{no matching function for call to 'refract'}}
- // expected-note at hlsl/hlsl_intrinsics.h:* {{candidate function template not viable: requires 3 arguments, but 1 was provided}}
- // expected-note at hlsl/hlsl_intrinsics.h:* {{candidate function template not viable: requires 3 arguments, but 1 was provided}}
- // expected-note at hlsl/hlsl_intrinsics.h:* {{candidate function template not viable: requires 3 arguments, but 1 was provided}}
- // expected-note at hlsl/hlsl_intrinsics.h:* {{candidate function template not viable: requires 3 arguments, but 1 was provided}}
+ // expected-note at hlsl/hlsl_inline_intrinsics_gen.inc:* 8 {{candidate function not viable: requires 3 arguments, but 1 was provided}}
}
float test_no_third_arg(float3 p0) {
return refract(p0, p0);
// expected-error at -1 {{no matching function for call to 'refract'}}
- // expected-note at hlsl/hlsl_intrinsics.h:* {{candidate function template not viable: requires 3 arguments, but 2 were provided}}
- // expected-note at hlsl/hlsl_intrinsics.h:* {{candidate function template not viable: requires 3 arguments, but 2 were provided}}
- // expected-note at hlsl/hlsl_intrinsics.h:* {{candidate function template not viable: requires 3 arguments, but 2 were provided}}
- // expected-note at hlsl/hlsl_intrinsics.h:* {{candidate function template not viable: requires 3 arguments, but 2 were provided}}
+ // expected-note at hlsl/hlsl_inline_intrinsics_gen.inc:* 8 {{candidate function not viable: requires 3 arguments, but 2 were provided}}
}
float test_too_many_arg(float2 p0) {
return refract(p0, p0, p0, p0);
// expected-error at -1 {{no matching function for call to 'refract'}}
- // expected-note at hlsl/hlsl_intrinsics.h:* {{candidate function template not viable: requires 3 arguments, but 4 were provided}}
- // expected-note at hlsl/hlsl_intrinsics.h:* {{candidate function template not viable: requires 3 arguments, but 4 were provided}}
- // expected-note at hlsl/hlsl_intrinsics.h:* {{candidate function template not viable: requires 3 arguments, but 4 were provided}}
- // expected-note at hlsl/hlsl_intrinsics.h:* {{candidate function template not viable: requires 3 arguments, but 4 were provided}}
+ // expected-note at hlsl/hlsl_inline_intrinsics_gen.inc:* 8 {{candidate function not viable: requires 3 arguments, but 4 were provided}}
}
float test_double_inputs(double p0, double p1, double p2) {
return refract(p0, p1, p2);
- // expected-error at -1 {{no matching function for call to 'refract'}}
- // expected-note at hlsl/hlsl_intrinsics.h:* {{candidate template ignored}}
- // expected-note at hlsl/hlsl_intrinsics.h:* {{candidate template ignored}}
- // expected-note at hlsl/hlsl_intrinsics.h:* {{candidate template ignored}}
- // expected-note at hlsl/hlsl_intrinsics.h:* {{candidate template ignored}}
+ // expected-error at -1 {{call to 'refract' is ambiguous}}
+ // expected-note at hlsl/hlsl_inline_intrinsics_gen.inc:* 2 {{candidate function}}
}
float test_int_inputs(int p0, int p1, int p2) {
return refract(p0, p1, p2);
- // expected-error at -1 {{no matching function for call to 'refract'}}
- // expected-note at hlsl/hlsl_intrinsics.h:* {{candidate template ignored}}
- // expected-note at hlsl/hlsl_intrinsics.h:* {{candidate template ignored}}
- // expected-note at hlsl/hlsl_intrinsics.h:* {{candidate template ignored}}
- // expected-note at hlsl/hlsl_intrinsics.h:* {{candidate template ignored}}
+ // expected-error at -1 {{call to 'refract' is ambiguous}}
+ // expected-note at hlsl/hlsl_inline_intrinsics_gen.inc:* 2 {{candidate function}}
}
float1 test_vec1_inputs(float1 p0, float1 p1, float1 p2) {
return refract(p0, p1, p2);
----------------
Icohedron wrote:
This function call is now valid, when it wasn't before. There are now just float1 -> float implicit conversion warnings instead of no matching function call.
https://github.com/llvm/llvm-project/pull/188362
More information about the cfe-commits
mailing list