From 65194cf0a926267839ff56e47c1a1eb14e2b0977 Mon Sep 17 00:00:00 2001 From: Ellie Hermaszewska Date: Fri, 5 Jul 2024 21:09:13 +0800 Subject: Add vector overloads for or and and (#4529) * Add vector overloads for or and and Closes #4441 and #4434 * Disable cuda checks which use unsupported bool vectors * Add tests for 4531 --- source/slang/core.meta.slang | 45 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'source/slang') diff --git a/source/slang/core.meta.slang b/source/slang/core.meta.slang index 631c09d19..a8badc05a 100644 --- a/source/slang/core.meta.slang +++ b/source/slang/core.meta.slang @@ -2255,6 +2255,51 @@ bool and(bool v0, bool v1) return __and(v0, v1); } +[__unsafeForceInlineEarly] +[OverloadRank(-10)] +__intrinsic_op($(kIROp_And)) +vector and(vector v0, vector v1); + +[__unsafeForceInlineEarly] +[OverloadRank(-10)] +vector and(bool b, vector v) +{ + return and(vector(b), v); +} + +[__unsafeForceInlineEarly] +[OverloadRank(-10)] +vector and(vector v, bool b) +{ + return and(v, vector(b)); +} + +[__unsafeForceInlineEarly] +[OverloadRank(-10)] +bool or(bool v0, bool v1) +{ + return __or(v0, v1); +} + +[__unsafeForceInlineEarly] +[OverloadRank(-10)] +__intrinsic_op($(kIROp_Or)) +vector or(vector v0, vector v1); + +[__unsafeForceInlineEarly] +[OverloadRank(-10)] +vector or(bool b, vector v) +{ + return or(vector(b), v); +} + +[__unsafeForceInlineEarly] +[OverloadRank(-10)] +vector or(vector v, bool b) +{ + return or(v, vector(b)); +} + __generic [__unsafeForceInlineEarly] [OverloadRank(-10)] -- cgit v1.2.3