aco: implement 64-bit integer reductions
authorRhys Perry <pendingchaos02@gmail.com>
Mon, 11 Nov 2019 19:48:54 +0000 (19:48 +0000)
committerRhys Perry <pendingchaos02@gmail.com>
Tue, 19 Nov 2019 18:58:04 +0000 (18:58 +0000)
commit56c06c79fcf32fdec67d6bc6141b6fa76a773c16
treeaebe3a66a05c619f4d0e2a8d97f3cdd9986838ca
parent33277bd66e32d50a96b7cd5dfe73a6a962138ea2
aco: implement 64-bit integer reductions

The multiplication reduction is larger than it could be, but it should be
easier to implement this way.

No failures with dEQP-VK.subgroups.*int64* except those caused by LLVM
being used for other stages.

v2: don't call setFixed() for v_add carry-out, since setHint sets physReg
v3: add and use emit_vadd32() helper
v4: use num_opcodes instead of last_opcode

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> (v3)
src/amd/compiler/aco_builder_h.py
src/amd/compiler/aco_lower_to_hw_instr.cpp
src/amd/compiler/aco_reduce_assign.cpp