This is a follow up on https://reviews.llvm.org/D135900.
It turned out floating-point modifiers should be used with floating-point operands, otherwise an assert may be triggered. The issue manifests itself with e32 and sdwa variants, for example:
v_cndmask_b32_e32 v5, |-4.0|, v2, vcc
The patch corrects operand types and adds more tests.