diff options
author | Matt Turner <[email protected]> | 2015-01-12 13:58:06 -0800 |
---|---|---|
committer | Matt Turner <[email protected]> | 2015-01-15 10:11:42 -0800 |
commit | f0aec4ee1e364927f3003cabafa644035bcd803c (patch) | |
tree | 0de1c015c486c904367aae0a8faeba7b2b23c6cc /src/glsl/opt_copy_propagation_elements.cpp | |
parent | 41d9f232b6a7f53086b9c428cca30e45905abd48 (diff) |
i965: Don't consider null dst instructions as matching non-null dst.
When performing common subexpression elimination on instructions with
non-null destinations we emit a MOV to copy the result to a new
register that must have no other uses. In the case of:
cmp.g.f0.0(8) null:D, vgrf43:F, 0.500000f
...
cmp.g.f0.0(8) vgrf113:D, vgrf43:F, 0.500000f
we put the first instruction in the AEB and decided that we could reuse
its result when we found the second. Unfortunately, that meant that we'd
emit a MOV from the first's destination, which is null.
Don't do anything if the entry's destination is null and the
instruction's destination is non-null.
Tested-by: Tapani Pälli <[email protected]>
Diffstat (limited to 'src/glsl/opt_copy_propagation_elements.cpp')
0 files changed, 0 insertions, 0 deletions