Compares, v_cndmask_b32, and v_readfirstlane_b32 use EXEC
in a way which modifies the result. This implicit EXEC use
shall not be ignored for the purposes of instruction moves.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
Compares, v_cndmask_b32, and v_readfirstlane_b32 use EXEC in a way which modifies the result.
This doesn't make any sense to me for cndmask. It handles EXEC exactly the same as any other VALU instruction: it writes a result in any lane which is enabled by EXEC, and does nothing for any lane that is disabled.
Comment Actions
It writes a scalar register and content of that register is different with different exec. Same thing as compare. See the bug found by Sebastian here: D116053.