summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/slang/hlsl.meta.slang1
-rw-r--r--tests/bugs/gh-4414.slang10
2 files changed, 11 insertions, 0 deletions
diff --git a/source/slang/hlsl.meta.slang b/source/slang/hlsl.meta.slang
index 24bbf1429..c01265369 100644
--- a/source/slang/hlsl.meta.slang
+++ b/source/slang/hlsl.meta.slang
@@ -10877,6 +10877,7 @@ vector<T,N> mul(matrix<T,N,M> left, vector<T,M> right)
}
__generic<T : __BuiltinLogicalType, let N : int, let M : int>
[__readNone]
+[OverloadRank(-1)]
[require(cpp_cuda_glsl_hlsl_metal_spirv, sm_4_0_version)]
vector<T,N> mul(matrix<T,N,M> left, vector<T,M> right)
{
diff --git a/tests/bugs/gh-4414.slang b/tests/bugs/gh-4414.slang
new file mode 100644
index 000000000..99d537089
--- /dev/null
+++ b/tests/bugs/gh-4414.slang
@@ -0,0 +1,10 @@
+//TEST:SIMPLE(filecheck=CHK):-target hlsl -entry main -stage vertex
+
+void main()
+{
+ int2x2 a;
+ int4 b;
+
+ //CHK-NOT:error 39999: ambiguous call
+ b.zw = mul(a, b.yx);
+}