aco: only create parallelcopy to restore exec at loop exit if needed
authorRhys Perry <pendingchaos02@gmail.com>
Mon, 6 Jan 2020 15:17:21 +0000 (15:17 +0000)
committerMarge Bot <eric+marge@anholt.net>
Wed, 29 Jan 2020 18:02:27 +0000 (18:02 +0000)
commitdba71de5c63617677fe44558f995d35fad643413
tree194aadffb8698d13233721f36c8b5369983583ca
parent4537b9741014fbd40b9ed5d98a658031997851aa
aco: only create parallelcopy to restore exec at loop exit if needed

The operand isn't fixed to exec, which can mess up the spiller. This also
adds a new situation where a phi is needed.

Fixes dEQP-VK.ssbo.layout.random.descriptor_indexing.2 and an assertion
when compiling a Detroit: Become Human shader.

Fixes: 93c8ebfa ('aco: Initial commit of independent AMD compiler')
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3257>
src/amd/compiler/aco_insert_exec_mask.cpp