diff options
author | Paulo Zanoni <[email protected]> | 2019-07-11 15:08:03 -0700 |
---|---|---|
committer | Caio Marcelo de Oliveira Filho <[email protected]> | 2019-08-12 15:16:23 -0700 |
commit | 866bb775de7942ee120fb1f33c7a92ce47f8904b (patch) | |
tree | b2b4d1635f5d21dc090bbc3ba1ee0c6d2450bd0d /src/intel/compiler/brw_fs.h | |
parent | 9217cf3b5e349f6fb09cfee23f0975398b0f6acb (diff) |
intel/fs: add 64 bit integer multiplication lowering
While NIR's lower_imul64() solves the case of 64 bit integer multiplications
generated early, we don't have a way to lower such instructions when they are
generated by our own backend, such as the scan/reduce intrinsics. We'll need
this soon, so implement it now.
An easy way to test this is to simply disable nir_lower_imul64 to let
those operations reach the backend.
v2:
- Fix Q/UQ copy/paste errors (Caio).
- Transform an 'if' into 'else if' (Caio).
- Add an extra comment to clarify the need for 64b = 32b * 32b
(Caio).
- Make private functions private (Caio).
v3:
- Remove ambiguity with 'b' and 'd' variables (Caio).
- Allocate potentially less regs for the dwords (Caio).
Cc: Jason Ekstrand <[email protected]>
Cc: Matt Turner <[email protected]>
Cc: Caio Marcelo de Oliveira Filho <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
Reviewed-by: Caio Marcelo de Oliveira Filho <[email protected]>
Signed-off-by: Paulo Zanoni <[email protected]>
Diffstat (limited to 'src/intel/compiler/brw_fs.h')
-rw-r--r-- | src/intel/compiler/brw_fs.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/intel/compiler/brw_fs.h b/src/intel/compiler/brw_fs.h index fb78fa829a0..a3604aef509 100644 --- a/src/intel/compiler/brw_fs.h +++ b/src/intel/compiler/brw_fs.h @@ -407,6 +407,7 @@ private: void resolve_inot_sources(const brw::fs_builder &bld, nir_alu_instr *instr, fs_reg *op); void lower_mul_dword_inst(fs_inst *inst, bblock_t *block); + void lower_mul_qword_inst(fs_inst *inst, bblock_t *block); void lower_mulh_inst(fs_inst *inst, bblock_t *block); }; |