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:
Karol Herbst
2019-04-13 19:33:41 +02:00
parent fe8c57e859
commit 606b74035e
2 changed files with 2 additions and 9 deletions

View File

@@ -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;

View File

@@ -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;