xref: /llvm-project/llvm/test/MachineVerifier/test_g_unmerge_values.mir (revision d20190e68413634b87f0f9426312a0e9d8456d18)
1# RUN: not --crash llc -o - -mtriple=arm64 -run-pass=none -verify-machineinstrs %s 2>&1 | FileCheck %s
2# REQUIRES: aarch64-registered-target
3
4---
5name: g_unmerge_values
6tracksRegLiveness: true
7body: |
8  bb.0:
9    ; CHECK: Bad machine code: G_UNMERGE_VALUES destination types do not match
10    %0:_(s64) = IMPLICIT_DEF
11    %1:_(s32), %2:_(s16) = G_UNMERGE_VALUES %0
12
13    ; CHECK: Bad machine code: G_UNMERGE_VALUES source operand does not match vector destination operands
14    %3:_(<4 x s32>) = IMPLICIT_DEF
15    %4:_(<3 x s32>), %5:_(<3 x s32>) = G_UNMERGE_VALUES %3
16
17    ; CHECK: Bad machine code: G_UNMERGE_VALUES source operand does not match vector destination operands
18    %6:_(<2 x s16>), %7:_(<2 x s16>) = G_UNMERGE_VALUES %3
19
20    ; CHECK: Bad machine code: G_UNMERGE_VALUES vector source operand does not match scalar destination operands
21    %8:_(<2 x s32>) = IMPLICIT_DEF
22    %9:_(s32), %10:_(s32), %11:_(s32) = G_UNMERGE_VALUES %8
23
24    ; CHECK: Bad machine code: G_UNMERGE_VALUES vector source operand does not match scalar destination operands
25    %12:_(s16), %13:_(s16) = G_UNMERGE_VALUES %8
26
27    ; CHECK: Bad machine code: G_UNMERGE_VALUES scalar source operand does not match scalar destination operands
28    %14:_(s64) = IMPLICIT_DEF
29    %15:_(s16), %16:_(s16) = G_UNMERGE_VALUES %14
30
31    ; CHECK: Bad machine code: G_UNMERGE_VALUES scalar source operand does not match scalar destination operands
32    %17:_(s32), %18:_(s32), %19:_(s32) = G_UNMERGE_VALUES %14
33...
34