aco/tests: test that s_bfe bits is masked

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23464>
This commit is contained in:
Rhys Perry
2023-06-06 12:02:02 +01:00
parent 08064a5542
commit 31c8c42f48

View File

@@ -234,3 +234,22 @@ BEGIN_TEST(isel.discard_early_exit.mrt0)
pbld.add_vsfs(vs, fs);
pbld.print_ir(VK_SHADER_STAGE_FRAGMENT_BIT, "Assembly");
END_TEST
BEGIN_TEST(isel.s_bfe_mask_bits)
QoShaderModuleCreateInfo cs = qoShaderModuleCreateInfoGLSL(COMPUTE,
layout(local_size_x=1) in;
layout(binding=0) buffer Buf {
int res;
};
void main() {
//>> s1: %bits, s1: (kill)%_:scc = s_and_b32 (kill)%_, 31
//! s1: %src1 = s_pack_ll_b32_b16 0, (kill)%bits
//! s1: %_, s1: (kill)%_:scc = s_bfe_i32 0xdeadbeef, (kill)%src1
res = bitfieldExtract(0xdeadbeef, 0, res & 0x1f);
}
);
PipelineBuilder pbld(get_vk_device(GFX10_3));
pbld.add_cs(cs);
pbld.print_ir(VK_SHADER_STAGE_COMPUTE_BIT, "ACO IR", true);
END_TEST