intel/fs: fixup a64 messages

And run algebraic when either int64 for float64 are not supported so
those don't end up in the generated code.

Cc: mesa-stable
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17396>
(cherry picked from commit 139e8f4635)
This commit is contained in:
Lionel Landwerlin
2022-07-20 16:53:14 +03:00
committed by Dylan Baker
parent 8a3a0210ae
commit a7750abce3
3 changed files with 3 additions and 3 deletions

View File

@@ -1021,7 +1021,7 @@
"description": "intel/fs: fixup a64 messages",
"nominated": true,
"nomination_type": 0,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null
},

View File

@@ -6153,7 +6153,7 @@ fs_visitor::optimize()
OPT(split_virtual_grfs);
/* Lower 64 bit MOVs generated by payload lowering. */
if (!devinfo->has_64bit_float && !devinfo->has_64bit_int)
if (!devinfo->has_64bit_float || !devinfo->has_64bit_int)
OPT(opt_algebraic);
OPT(register_coalesce);

View File

@@ -1910,7 +1910,7 @@ emit_a64_oword_block_header(const fs_builder &bld, const fs_reg &addr)
/* We can't do stride 1 with the UNIFORM file, it requires stride 0 */
expanded_addr = ubld.vgrf(BRW_REGISTER_TYPE_UQ);
expanded_addr.stride = 0;
ubld.MOV(expanded_addr, addr);
ubld.MOV(expanded_addr, retype(addr, BRW_REGISTER_TYPE_UQ));
}
fs_reg header = ubld.vgrf(BRW_REGISTER_TYPE_UD);