Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19399>
ctx->f16 = LLVMHalfTypeInContext(ctx->context);
ctx->f32 = LLVMFloatTypeInContext(ctx->context);
ctx->f64 = LLVMDoubleTypeInContext(ctx->context);
+ ctx->v4i8 = LLVMVectorType(ctx->i8, 4);
ctx->v2i16 = LLVMVectorType(ctx->i16, 2);
ctx->v4i16 = LLVMVectorType(ctx->i16, 4);
ctx->v2f16 = LLVMVectorType(ctx->f16, 2);
LLVMTypeRef f16;
LLVMTypeRef f32;
LLVMTypeRef f64;
+ LLVMTypeRef v4i8;
LLVMTypeRef v2i16;
LLVMTypeRef v4i16;
LLVMTypeRef v2f16;
case nir_op_vec5:
case nir_op_vec8:
case nir_op_vec16:
+ case nir_op_unpack_32_4x8:
case nir_op_unpack_32_2x16:
case nir_op_unpack_64_2x32:
case nir_op_unpack_64_4x16:
break;
}
+ case nir_op_unpack_32_4x8:
+ result = LLVMBuildBitCast(ctx->ac.builder, src[0], ctx->ac.v4i8, "");
+ break;
case nir_op_unpack_32_2x16: {
result = LLVMBuildBitCast(ctx->ac.builder, src[0],
ctx->ac.v2i16, "");