[clang] [HLSL] Add "or" intrinsic (PR #128979)

Ashley Coleman via cfe-commits cfe-commits at lists.llvm.org
Thu Feb 27 14:28:14 PST 2025


================
@@ -0,0 +1,27 @@
+// RUN: %clang_cc1 -finclude-default-header -triple dxil-pc-shadermodel6.6-library %s -verify -DTEST_FUNC=__builtin_hlsl_or
+// RUN: %clang_cc1 -finclude-default-header -triple dxil-pc-shadermodel6.6-library %s -verify -DTEST_FUNC=__builtin_hlsl_and
+
+
+bool test_too_few_arg(bool a)
+{
+    return TEST_FUNC(a);
+  // expected-error at -1 {{too few arguments to function call, expected 2, have 1}}
+}
+
+bool test_too_many_arg(bool a)
+{
+    return TEST_FUNC(a, a, a);
+  // expected-error at -1 {{too many arguments to function call, expected 2, have 3}}
+}
+
+bool2 test_mismatched_args(bool2 a, bool3 b)
+{
+    return TEST_FUNC(a, b);
+  // expected-error at -1 {{all arguments to}}{{.*}}{{must have the same type}}
----------------
V-FEXrt wrote:

This suggestion is almost certainly wrong way to type this out. Just trying to show the idea. Does the .* here  capture `and`/`or` in the error message? If yes, match the possible valid cases with an or regex instead of allowing anything (another point for DAMP being more clear)

```suggestion
  // expected-error at -1 {{all arguments to}}{{and|or}}{{must have the same type}}

```

https://github.com/llvm/llvm-project/pull/128979


More information about the cfe-commits mailing list