aboutsummaryrefslogtreecommitdiffstats
path: root/src/intel/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'src/intel/compiler')
-rw-r--r--src/intel/compiler/brw_nir_lower_mem_access_bit_sizes.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/intel/compiler/brw_nir_lower_mem_access_bit_sizes.c b/src/intel/compiler/brw_nir_lower_mem_access_bit_sizes.c
index 4ea20fe5b18..aabf24150a6 100644
--- a/src/intel/compiler/brw_nir_lower_mem_access_bit_sizes.c
+++ b/src/intel/compiler/brw_nir_lower_mem_access_bit_sizes.c
@@ -53,6 +53,9 @@ dup_mem_intrinsic(nir_builder *b, nir_intrinsic_instr *intrin,
}
dup->num_components = num_components;
+ if (intrin->intrinsic == nir_intrinsic_load_scratch ||
+ intrin->intrinsic == nir_intrinsic_store_scratch)
+ assert(num_components == 1);
for (unsigned i = 0; i < info->num_indices; i++)
dup->const_index[i] = intrin->const_index[i];
@@ -92,7 +95,7 @@ lower_mem_load_bit_size(nir_builder *b, nir_intrinsic_instr *intrin,
nir_ssa_def *result;
nir_src *offset_src = nir_get_io_offset_src(intrin);
- if (bit_size < 32 && nir_src_is_const(*offset_src)) {
+ if (bit_size < 32 && !needs_scalar && nir_src_is_const(*offset_src)) {
/* The offset is constant so we can use a 32-bit load and just shift it
* around as needed.
*/