From 4b6d3328432410164d907fcc9b674239963766fe Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Thu, 8 Oct 2020 14:32:33 +1000 Subject: [PATCH] gallivm: handle sub-32 bit masked stores. This is used for register stores < 32 bit size. Fixes: builtin-char-rotate-1.0.generated.cl Reviewed-by: Roland Scheidegger Part-of: --- .gitlab-ci/piglit/cl.txt | 8 +++----- src/gallium/auxiliary/gallivm/lp_bld_ir_common.c | 2 ++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci/piglit/cl.txt b/.gitlab-ci/piglit/cl.txt index 265da0530f3..d0073d85ffd 100644 --- a/.gitlab-ci/piglit/cl.txt +++ b/.gitlab-ci/piglit/cl.txt @@ -62,7 +62,6 @@ program/execute/builtin/builtin-char-mul_hi-1.0.generated/mul_hi char2: fail program/execute/builtin/builtin-char-mul_hi-1.0.generated/mul_hi char4: fail program/execute/builtin/builtin-char-mul_hi-1.0.generated/mul_hi char8: fail program/execute/builtin/builtin-char-popcount-1.2.generated: skip -program/execute/builtin/builtin-char-rotate-1.0.generated: crash program/execute/builtin/builtin-float-cos-1.0.generated: timeout program/execute/builtin/builtin-float-fmax-1.0.generated/fmax float1: fail program/execute/builtin/builtin-float-fmax-1.0.generated/fmax float16: fail @@ -140,7 +139,6 @@ program/execute/builtin/builtin-uchar-mul_hi-1.0.generated/mul_hi uchar2: fail program/execute/builtin/builtin-uchar-mul_hi-1.0.generated/mul_hi uchar4: fail program/execute/builtin/builtin-uchar-mul_hi-1.0.generated/mul_hi uchar8: fail program/execute/builtin/builtin-uchar-popcount-1.2.generated: skip -program/execute/builtin/builtin-uchar-rotate-1.0.generated: crash program/execute/builtin/builtin-uint-popcount-1.2.generated: skip program/execute/builtin/builtin-ulong-mad_hi-1.0.generated/mad_hi ulong1: fail program/execute/builtin/builtin-ulong-mad_hi-1.0.generated/mad_hi ulong16: fail @@ -193,9 +191,9 @@ program/execute/vstore/vstore-half-private: skip summary: name: results ---- -------- - pass: 3654 + pass: 3672 fail: 107 - crash: 8 + crash: 6 skip: 73 timeout: 4 warn: 0 @@ -205,4 +203,4 @@ summary: changes: 0 fixes: 0 regressions: 0 - total: 3846 + total: 3862 diff --git a/src/gallium/auxiliary/gallivm/lp_bld_ir_common.c b/src/gallium/auxiliary/gallivm/lp_bld_ir_common.c index 20af9d4d0c5..cecc8abc31b 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_ir_common.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_ir_common.c @@ -216,6 +216,8 @@ void lp_exec_mask_store(struct lp_exec_mask *mask, LLVMValueRef res, dst; dst = LLVMBuildLoad(builder, dst_ptr, ""); + if (bld_store->type.width < 32) + exec_mask = LLVMBuildTrunc(builder, exec_mask, bld_store->vec_type, ""); res = lp_build_select(bld_store, exec_mask, val, dst); LLVMBuildStore(builder, res, dst_ptr); } else