[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / MachineVerifier / test_g_memmove.mir
blobd86b34c251e634dad746b20d125da129a1ab651a
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 name:            test_memmove
5 legalized:       true
6 regBankSelected: false
7 selected:        false
8 tracksRegLiveness: true
9 liveins:
10 body:             |
11   bb.0:
13     %0:_(p0) = G_CONSTANT i64 0
14     %1:_(p0) = G_CONSTANT i64 4
15     %2:_(s64) = G_CONSTANT i64 4
17     ; CHECK: *** Bad machine code: memcpy/memmove must have 2 memory operands ***
18     G_MEMMOVE %0, %1, %2, 0
20     ; CHECK: *** Bad machine code: memcpy/memmove must have 2 memory operands ***
21     G_MEMMOVE %0, %1, %2, 0 :: (load 4)
23     ; CHECK: *** Bad machine code: memcpy/memmove must have 2 memory operands ***
24     G_MEMMOVE %0, %1, %2, 0 :: (store 4)
26     ; CHECK: *** Bad machine code: wrong memory operand types ***
27     G_MEMMOVE %0, %1, %2, 0 :: (load 4), (store 4)
29     ; CHECK: *** Bad machine code: inconsistent memory operand sizes ***
30     G_MEMMOVE %0, %1, %2, 0 :: (store 8), (load 4)
32     ; CHECK: *** Bad machine code: inconsistent memory operand sizes ***
33     G_MEMMOVE %0, %1, %2, 0 :: (store unknown-size), (load 4)
35     ; CHECK: *** Bad machine code: inconsistent memory operand sizes ***
36     G_MEMMOVE %0, %1, %2, 0 :: (store 8), (load unknown-size)
38     ; CHECK: *** Bad machine code: inconsistent store address space ***
39     G_MEMMOVE %0, %1, %2, 0 :: (store 4, addrspace 1), (load 4)
41     ; CHECK: *** Bad machine code: inconsistent load address space ***
42     G_MEMMOVE %0, %1, %2, 0 :: (store 4), (load 4, addrspace 1)
44     ; CHECK: *** Bad machine code: memory instruction operand must be a pointer ***
45     G_MEMMOVE %2, %0, %2, 0 :: (store 4), (load 4)
47     ; CHECK: *** Bad machine code: memory instruction operand must be a pointer ***
48     G_MEMMOVE %0, %2, %2, 0 :: (store 4), (load 4)
50     ; CHECK: *** Bad machine code: 'tail' flag (operand 3) must be an immediate 0 or 1 ***
51     G_MEMMOVE %0, %0, %2, %0 :: (store 4), (load 4)
53     ; CHECK: *** Bad machine code: 'tail' flag (operand 3) must be an immediate 0 or 1 ***
54     G_MEMMOVE %0, %0, %2, 2 :: (store 4), (load 4)
55 ...