xref: /llvm-project/llvm/test/MachineVerifier/test_g_brjt.mir (revision d20190e68413634b87f0f9426312a0e9d8456d18)
1# RUN: not --crash llc -mtriple=aarch64 -o /dev/null -run-pass=none -verify-machineinstrs %s 2>&1 | FileCheck %s
2# REQUIRES: aarch64-registered-target
3
4---
5name:            test_jump_table
6legalized:       true
7tracksRegLiveness: true
8jumpTable:
9  kind:            block-address
10  entries:
11    - id:              0
12      blocks:          [ '%bb.0' ]
13body:             |
14  bb.0:
15    liveins: $x0
16    %0:_(s64) = COPY $x0
17    %1:_(p0) = COPY $x0
18    ; CHECK: Bad machine code: Too few operands
19    G_BRJT
20
21    ; CHECK: G_BRJT src operand 0 must be a pointer type
22    G_BRJT %0, %jump-table.0, %0
23
24    ; CHECK: G_BRJT src operand 1 must be a jump table index
25    G_BRJT %1, %0, %0
26
27    ; CHECK: G_BRJT src operand 2 must be a scalar reg type
28    G_BRJT %1, %jump-table.0, %1
29
30...
31