SpirvShader: Fixes for phis.
Loops attempted to special-case phis with allocas to deal with their
non-ssa nature, but this didn't handle divergent loops correctly.
Rearchitect phis to always use an alloca, and mask the updates with
the edge masks. This handles all cases in a cleaner, more unified
implementation.
Tests: dEQP-VK.glsl.switch.*
Tests: dEQP-VK.glsl.functions.control_flow.*
Bug: b/128527271
Change-Id: I5b450cd3f5f10b1076d65750d326fedc286abfe5
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/31269
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by:
Ben Clayton <bclayton@google.com>
Reviewed-by:
Chris Forbes <chrisforbes@google.com>
Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
Showing
Please
register
or
sign in
to comment