[ARM] Cortex-M4 schedule additions
[llvm-complete.git] / test / MachineVerifier / test_g_shuffle_vector.mir
blob7e07fa9d4fcab5b96ad0a3faf1746f8ffcf19fec
1 # RUN: not llc -o - -march=arm64  -run-pass=none -verify-machineinstrs %s 2>&1 | FileCheck %s
2 # REQUIRES: aarch64-registered-target
3 ---
4 name:            g_shuffle_vector
5 tracksRegLiveness: true
6 liveins:
7 body:             |
8   bb.0:
9     %0:_(<2 x s32>) = G_IMPLICIT_DEF
10     %1:_(<2 x s32>) = G_IMPLICIT_DEF
11     %2:_(<4 x s32>) = G_IMPLICIT_DEF
13     %3:_(s32) = G_CONSTANT i32 0
14     %4:_(s32) = G_CONSTANT i32 1
15     %5:_(<2 x s32>) = G_BUILD_VECTOR %3, %4
17     ; CHECK: Bad machine code: Incorrect mask operand type for G_SHUFFLE_VECTOR
18     %6:_(<4 x s32>) = G_SHUFFLE_VECTOR %0, %1, %2
20     ; CHECK: Bad machine code: Incorrect mask operand type for G_SHUFFLE_VECTOR
21     %7:_(<4 x s32>) = G_SHUFFLE_VECTOR %0, %1, %5
23     ; CHECK: Bad machine code: Incorrect mask operand type for G_SHUFFLE_VECTOR
24     %8:_(<4 x s32>) = G_SHUFFLE_VECTOR %0, %1, 0
26     ; CHECK: Bad machine code: Incorrect mask operand type for G_SHUFFLE_VECTOR
27     %9:_(<4 x s32>) = G_SHUFFLE_VECTOR %0, %1, i32 0
29     ; CHECK: Bad machine code: Wrong result type for shufflemask
30     %10:_(<4 x s32>) = G_SHUFFLE_VECTOR %0, %1, shufflemask(0, 2)
32     ; CHECK: Bad machine code: Wrong result type for shufflemask
33     %11:_(<2 x s32>) = G_SHUFFLE_VECTOR %0, %1, shufflemask(0, 2, 1, 1)
35     ; CHECK: Bad machine code: G_SHUFFLE_VECTOR cannot change element type
36     %12:_(<4 x s16>) = G_SHUFFLE_VECTOR %0, %1, shufflemask(0, 2, 1, 1)
38     ; CHECK: Bad machine code: Source operands must be the same type
39     %13:_(<4 x s32>) = G_SHUFFLE_VECTOR %0, %2, shufflemask(0, 2, 1, 1)
41     ; CHECK: Bad machine code: Out of bounds shuffle index
42     %14:_(<4 x s32>) = G_SHUFFLE_VECTOR %0, %1, shufflemask(0, 2, 1, 4)
44     ; CHECK: Bad machine code: Out of bounds shuffle index
45     %15:_(<4 x s32>) = G_SHUFFLE_VECTOR %0, %1, shufflemask(0, 2, 1, 5)
47     %19:_(s16) = G_CONSTANT i16 0
49     ; CHECK: Bad machine code: Source operands must be the same type
50     %20:_(<2 x s32>) = G_SHUFFLE_VECTOR %3, %19, shufflemask(1, 0)
52     ; CHECK: Bad machine code: G_SHUFFLE_VECTOR cannot change element type
53     %21:_(s16) = G_SHUFFLE_VECTOR %3, %4, shufflemask(0)
55     ; CHECK: Bad machine code: Out of bounds shuffle index
56     %22:_(s32) = G_IMPLICIT_DEF
57     %20:_(<2 x s32>) = G_SHUFFLE_VECTOR %22, %22, shufflemask(0, 2)
59 ...