xref: /llvm-project/llvm/test/MachineVerifier/test_g_constant_pool.mir (revision d20190e68413634b87f0f9426312a0e9d8456d18)
1# RUN: not --crash llc -o - -mtriple=arm64 -global-isel -run-pass=none \
2# RUN:   -verify-machineinstrs %s 2>&1 | FileCheck %s
3# REQUIRES: aarch64-registered-target
4
5---
6name:            test_constant_pool
7constants:
8  - id:          0
9    value:       'double 3.250000e+00'
10stack:
11  - { id: 0, size: 64, alignment: 8 }
12legalized:       true
13regBankSelected: false
14selected:        false
15tracksRegLiveness: true
16liveins:
17body:             |
18  bb.0:
19
20    ; CHECK: Bad machine code: Too few operands
21    %0:_(p0) = G_CONSTANT_POOL
22
23    ; CHECK: Bad machine code: Src operand 1 must be a constant pool index
24    %1:_(p0) = G_CONSTANT_POOL 1
25
26    ; CHECK: Bad machine code: Src operand 1 must be a constant pool index
27    %2:_(p0) = G_CONSTANT_POOL i32 1
28
29    ; CHECK: Bad machine code: Src operand 1 must be a constant pool index
30    %3:_(p0) = G_CONSTANT_POOL %stack.0
31
32    ; CHECK: Dst operand 0 must be a pointer
33    %4:_(s32) = G_CONSTANT_POOL %const.0
34
35    ; CHECK: Dst operand 0 must be a pointer
36    %5:_(s64) = G_CONSTANT_POOL %const.0
37
38    ; CHECK-NOT: %6
39    %6:_(p0) = G_CONSTANT_POOL %const.0
40...
41