[tint] Implement subgroupAnd, Or, Xor builtins
Implement subgroupAnd, subgroupOr and subgroupXor builtin functions for
WGSL, SPIR-V IR, MSL (AST and IR) and HLSL (AST and IR) backends.
Skip expectations for Tint end2end tests have also been regenerated for all subgroup builtins for FXC.
Bug: 354738715
Change-Id: Ief085297c5d659faaf0c5f8893357fc92dccb21f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/201695
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Natalie Chouinard <chouinard@google.com>
diff --git a/test/tint/builtins/gen/literal/subgroupAnd/4adc72.wgsl b/test/tint/builtins/gen/literal/subgroupAnd/4adc72.wgsl
new file mode 100644
index 0000000..87ff8a4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupAnd/4adc72.wgsl
@@ -0,0 +1,58 @@
+// Copyright 2024 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl_shader_model 60
+
+
+enable subgroups;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
+// fn subgroupAnd(value: vec<2, i32>) -> vec<2, i32>
+fn subgroupAnd_4adc72() -> vec2<i32>{
+ var res: vec2<i32> = subgroupAnd(vec2<i32>(1i));
+ return res;
+}
+@fragment
+fn fragment_main() {
+ prevent_dce = subgroupAnd_4adc72();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ prevent_dce = subgroupAnd_4adc72();
+}