From e40b1df4323b6d1e08485689237bcb863e3daa44 Mon Sep 17 00:00:00 2001 From: Caio Oliveira Date: Wed, 16 Nov 2022 23:54:21 -0800 Subject: [PATCH] nir: Add nir_intrinsic_rotate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Ian Romanick Reviewed-by: Timur Kristóf Part-of: --- src/compiler/nir/nir_divergence_analysis.c | 1 + src/compiler/nir/nir_intrinsics.py | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/compiler/nir/nir_divergence_analysis.c b/src/compiler/nir/nir_divergence_analysis.c index b932b6adac7..8194cac3807 100644 --- a/src/compiler/nir/nir_divergence_analysis.c +++ b/src/compiler/nir/nir_divergence_analysis.c @@ -385,6 +385,7 @@ visit_intrinsic(nir_shader *shader, nir_intrinsic_instr *instr) case nir_intrinsic_ballot_find_lsb: case nir_intrinsic_ballot_find_msb: case nir_intrinsic_ballot_bit_count_reduce: + case nir_intrinsic_rotate: case nir_intrinsic_shuffle_xor: case nir_intrinsic_shuffle_up: case nir_intrinsic_shuffle_down: diff --git a/src/compiler/nir/nir_intrinsics.py b/src/compiler/nir/nir_intrinsics.py index e446d11a34c..050a2000088 100644 --- a/src/compiler/nir/nir_intrinsics.py +++ b/src/compiler/nir/nir_intrinsics.py @@ -449,6 +449,10 @@ intrinsic("quad_swap_horizontal", src_comp=[0], dest_comp=0, flags=[CAN_ELIMINAT intrinsic("quad_swap_vertical", src_comp=[0], dest_comp=0, flags=[CAN_ELIMINATE]) intrinsic("quad_swap_diagonal", src_comp=[0], dest_comp=0, flags=[CAN_ELIMINATE]) +# Rotate operation from SPIR-V: SpvOpGroupNonUniformRotateKHR. +intrinsic("rotate", src_comp=[0, 1], dest_comp=0, bit_sizes=src0, + indices=[EXECUTION_SCOPE, CLUSTER_SIZE], flags=[CAN_ELIMINATE]); + intrinsic("reduce", src_comp=[0], dest_comp=0, bit_sizes=src0, indices=[REDUCTION_OP, CLUSTER_SIZE], flags=[CAN_ELIMINATE]) intrinsic("inclusive_scan", src_comp=[0], dest_comp=0, bit_sizes=src0,