Issue 182243
Summary Machine verifier fails to catch v_cndmask_b32_e64 with invalid operands
Labels backend:AMDGPU, accepts-invalid
Assignees
Reporter arsenm
    The machine verifier fails to diagnose this malformed instruction. V_CNDMASK_B32_e64 has source modifier operands before each source operands. 


```
# RUN: llc -mtriple=amdgcn-- -mcpu=gfx1030 -run-pass=none %s
---
name:            invalid_test_v_cndmask_e64
tracksRegLiveness: true
stack:
  - { id: 0, size: 12}
machineFunctionInfo:
  scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
  frameOffsetReg:  '$sgpr33'
 stackPtrOffsetReg: '$sgpr32'
body:             |
  bb.0:
    liveins: $sgpr4
    renamable $vgpr2 = V_MOV_B32_e32 0, implicit $exec
    renamable $vgpr0 = V_CNDMASK_B32_e64 %stack.0, killed $vgpr2, 0, 0, $sgpr4, implicit $exec
    SI_RETURN
...

```

The first operand %stack.0 must be an immediate encoding a source modifier mask. 

_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to