openfimg: compiler: Handle dst swizzling of non-vector opcodes

Texture fetches can be swizzled by reshuffling swizzle of sampler
operand, while opcodes with replicated result don't care about
destination swizzle.

Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>
openfimg: compiler: Clean-up empty regions and list before assembling

Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>
openfimg: compiler: Switch to more convenient representation of swizzle

Internally it will be stored as four integers selecting channels, while
external API using strings is preserved, because it is more suitable
for code generator.

Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>
openfimg: compiler: Fix register flag merging

While at it, make the function available for other modules.

Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>
openfimg: compiler: Replace delete_moves pass with src_propagation

The new pass is much more complete and also handles source modifiers and
non-temp (inputs, constants) to temp moves.

Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>