lima: use nir_src_as_float
Signed-off-by: Karol Herbst <kherbst@redhat.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Qiang Yu <yuq825@gmail.com>
This commit is contained in:
@@ -177,10 +177,7 @@ static bool gpir_emit_intrinsic(gpir_block *block, nir_instr *ni)
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
int offset = nir_intrinsic_base(instr);
|
int offset = nir_intrinsic_base(instr);
|
||||||
|
offset += (int)nir_src_as_float(instr->src[0]);
|
||||||
nir_const_value *const_offset = nir_src_as_const_value(instr->src[0]);
|
|
||||||
assert(const_offset);
|
|
||||||
offset += (int)const_offset->f32[0];
|
|
||||||
|
|
||||||
load->index = offset / 4;
|
load->index = offset / 4;
|
||||||
load->component = offset % 4;
|
load->component = offset % 4;
|
||||||
|
@@ -209,7 +209,6 @@ static ppir_node *ppir_emit_intrinsic(ppir_block *block, nir_instr *ni)
|
|||||||
unsigned mask = 0;
|
unsigned mask = 0;
|
||||||
ppir_load_node *lnode;
|
ppir_load_node *lnode;
|
||||||
ppir_store_node *snode;
|
ppir_store_node *snode;
|
||||||
nir_const_value *const_offset;
|
|
||||||
|
|
||||||
switch (instr->intrinsic) {
|
switch (instr->intrinsic) {
|
||||||
case nir_intrinsic_load_input:
|
case nir_intrinsic_load_input:
|
||||||
@@ -234,10 +233,7 @@ static ppir_node *ppir_emit_intrinsic(ppir_block *block, nir_instr *ni)
|
|||||||
|
|
||||||
lnode->num_components = instr->num_components;
|
lnode->num_components = instr->num_components;
|
||||||
lnode->index = nir_intrinsic_base(instr);
|
lnode->index = nir_intrinsic_base(instr);
|
||||||
|
lnode->index += (uint32_t)nir_src_as_float(instr->src[0]);
|
||||||
const_offset = nir_src_as_const_value(instr->src[0]);
|
|
||||||
assert(const_offset);
|
|
||||||
lnode->index += (uint32_t)const_offset->f32[0];
|
|
||||||
|
|
||||||
return &lnode->node;
|
return &lnode->node;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user