gallivm: more 64-bit integer prep work.
This converts one other place to using the new helper. Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
@@ -186,15 +186,15 @@ void lp_build_fetch_args(
|
||||
}
|
||||
|
||||
/**
|
||||
* with doubles src and dst channels aren't 1:1.
|
||||
* with 64-bit src and dst channels aren't 1:1.
|
||||
* check the src/dst types for the opcode,
|
||||
* 1. if neither is double then src == dst;
|
||||
* 2. if dest is double
|
||||
* 1. if neither is 64-bit then src == dst;
|
||||
* 2. if dest is 64-bit
|
||||
* - don't store to y or w
|
||||
* - if src is double then src == dst.
|
||||
* - if src is 64-bit then src == dst.
|
||||
* - else for f2d, d.xy = s.x
|
||||
* - else for f2d, d.zw = s.y
|
||||
* 3. if dst is single, src is double
|
||||
* 3. if dst is single, src is 64-bit
|
||||
* - map dst x,z to src xy;
|
||||
* - map dst y,w to src zw;
|
||||
*/
|
||||
@@ -204,12 +204,12 @@ static int get_src_chan_idx(unsigned opcode,
|
||||
enum tgsi_opcode_type dtype = tgsi_opcode_infer_dst_type(opcode);
|
||||
enum tgsi_opcode_type stype = tgsi_opcode_infer_src_type(opcode);
|
||||
|
||||
if (dtype != TGSI_TYPE_DOUBLE && stype != TGSI_TYPE_DOUBLE)
|
||||
if (!tgsi_type_is_64bit(dtype) && !tgsi_type_is_64bit(stype))
|
||||
return dst_chan_index;
|
||||
if (dtype == TGSI_TYPE_DOUBLE) {
|
||||
if (tgsi_type_is_64bit(dtype)) {
|
||||
if (dst_chan_index == 1 || dst_chan_index == 3)
|
||||
return -1;
|
||||
if (stype == TGSI_TYPE_DOUBLE)
|
||||
if (tgsi_type_is_64bit(stype))
|
||||
return dst_chan_index;
|
||||
if (dst_chan_index == 0)
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user