uint32_t index_bit_size = nir_src_bit_size(instr->src[1]);
struct lp_build_context *int_bld = get_int_bld(bld_base, true, bit_size);
- bool index_is_constant_data = LLVMIsAConstantAggregateZero(index) || LLVMIsAConstantDataSequential(index) || LLVMIsAUndefValue(index);
-
- if (index_is_constant_data) {
- /* freeze `src` in case inactive invocations contain poison */
- src = LLVMBuildFreeze(builder, src, "");
- result[0] = LLVMBuildShuffleVector(builder, src, LLVMGetUndef(LLVMTypeOf(src)), index, "");
- } else if (util_get_cpu_caps()->has_avx2 && bit_size == 32 && index_bit_size == 32 && int_bld->type.length == 8) {
+ if (util_get_cpu_caps()->has_avx2 && bit_size == 32 && index_bit_size == 32 && int_bld->type.length == 8) {
/* freeze `src` in case inactive invocations contain poison */
src = LLVMBuildFreeze(builder, src, "");
result[0] = lp_build_intrinsic_binary(builder, "llvm.x86.avx2.permd", int_bld->vec_type, src, index);
# New CTS failures in 1.3.5.0
dEQP-VK.api.info.format_properties.g10x6_b10x6r10x6_2plane_420_unorm_3pack16,Fail
-# since Debian 12 CI uprev
-dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_double_constant,Crash
dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.enable_raster,Fail
dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.enable_raster,Fail
dEQP-VK.memory_model.message_passing.ext.u64.noncoherent.atomic_atomic.atomicwrite.device.payload_local.physbuffer.guard_local.image.comp,Fail
-# since Debian 12 uprev
-dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_i64vec4_constant,Crash