|
1 | 1 | // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1250 -show-encoding %s 2>&1 | FileCheck --check-prefixes=GFX1250-ERR --implicit-check-not=error: -strict-whitespace %s
|
2 | 2 |
|
| 3 | +// For v_dual_cndmask_b32 use of the explicit src2 forces VOPD3 form even if it is vcc_lo. |
| 4 | +// If src2 is omitted then it forces VOPD form. As a result a proper form of the instruction |
| 5 | +// has to be used if the other component of the dual instruction cannot be used if that |
| 6 | +// encoding. |
| 7 | + |
| 8 | +v_dual_cndmask_b32 v2, v4, v1 :: v_dual_fma_f32 v7, v1, v2, v3 |
| 9 | +// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid VOPDY instruction |
| 10 | +// GFX1250-ERR: v_dual_cndmask_b32 v2, v4, v1 :: v_dual_fma_f32 v7, v1, v2, v3 |
| 11 | +// GFX1250-ERR: ^ |
| 12 | + |
| 13 | +v_dual_fma_f32 v7, v1, v2, v3 :: v_dual_cndmask_b32 v2, v4, v1 |
| 14 | +// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: too few operands for instruction |
| 15 | +// GFX1250-ERR: v_dual_fma_f32 v7, v1, v2, v3 :: v_dual_cndmask_b32 v2, v4, v1 |
| 16 | +// GFX1250-ERR: ^ |
| 17 | + |
| 18 | +v_dual_cndmask_b32 v7, v1, v2 :: v_dual_cndmask_b32 v2, v4, v1, vcc_lo |
| 19 | +// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction |
| 20 | +// GFX1250-ERR: v_dual_cndmask_b32 v7, v1, v2 :: v_dual_cndmask_b32 v2, v4, v1, vcc_lo |
| 21 | +// GFX1250-ERR: ^ |
| 22 | + |
| 23 | +v_dual_cndmask_b32 v7, v1, v2, vcc_lo :: v_dual_cndmask_b32 v2, v4, v1 |
| 24 | +// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: too few operands for instruction |
| 25 | +// GFX1250-ERR: v_dual_cndmask_b32 v7, v1, v2, vcc_lo :: v_dual_cndmask_b32 v2, v4, v1 |
| 26 | +// GFX1250-ERR: ^ |
| 27 | + |
3 | 28 | // Check for unique 64-bit literal
|
4 | 29 |
|
5 | 30 | v_mov_b64 v[4:5], v[2:3] quad_perm:[1,1,1,1]
|
|
0 commit comments