diff options
author | Jason Ekstrand <jason@jlekstrand.net> | 2020-09-25 16:29:23 -0500 |
---|---|---|
committer | Eric Engestrom <eric@engestrom.ch> | 2020-10-14 19:29:27 +0200 |
commit | f6dfeec5f40480263b70847082237fbe724b4ebc (patch) | |
tree | acefd0992d4c79c90824c6421a0abcc8855fdecb | |
parent | 07ba04a35add2662910369b16eac1280f22e6969 (diff) |
nir/opt_load_store_vectorize: Use bit sizes when checking mask compatibility
Without this, it was checking bit size compatibility with bit sizes such
as 96 which is clearly invalid.
No shader-db changes on Ice Lake
Fixes: ce9205c03bd20d "nir: add a load/store vectorization pass"
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6871>
(cherry picked from commit 57e7c5f05eb15adf8e4d51a7536d8267e9ff0d2d)
-rw-r--r-- | .pick_status.json | 2 | ||||
-rw-r--r-- | src/compiler/nir/nir_opt_load_store_vectorize.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/.pick_status.json b/.pick_status.json index f186809c580..0007c7c6a2d 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -9004,7 +9004,7 @@ "description": "nir/opt_load_store_vectorize: Use bit sizes when checking mask compatibility", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "ce9205c03bd20d26af23ca891e97a9f848a612d1" }, diff --git a/src/compiler/nir/nir_opt_load_store_vectorize.c b/src/compiler/nir/nir_opt_load_store_vectorize.c index c31c8d293bf..d00b382f67e 100644 --- a/src/compiler/nir/nir_opt_load_store_vectorize.c +++ b/src/compiler/nir/nir_opt_load_store_vectorize.c @@ -709,11 +709,11 @@ new_bitsize_acceptable(struct vectorize_ctx *ctx, unsigned new_bit_size, return false; unsigned write_mask = nir_intrinsic_write_mask(low->intrin); - if (!writemask_representable(write_mask, low_size, new_bit_size)) + if (!writemask_representable(write_mask, get_bit_size(low), new_bit_size)) return false; write_mask = nir_intrinsic_write_mask(high->intrin); - if (!writemask_representable(write_mask, high_size, new_bit_size)) + if (!writemask_representable(write_mask, get_bit_size(high), new_bit_size)) return false; } |