1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/test/MachineVerifier/test_g_jump_table.mir
Amara Emerson 9b31bc723f [GlobalISel] Add a G_JUMP_TABLE opcode.
This opcode generates a pointer to the address of the jump table
specified by the source operand, which is a jump table index.

It will be used in conjunction with an upcoming G_BRJT opcode to support
jump table codegen with GlobalISel.

Differential Revision: https://reviews.llvm.org/D63111

llvm-svn: 363096
2019-06-11 19:58:06 +00:00

27 lines
682 B
YAML

# RUN: not llc -march=aarch64 -o /dev/null -run-pass=none -verify-machineinstrs %s 2>&1 | FileCheck %s
# REQUIRES: global-isel, aarch64-registered-target
---
name: test_jump_table
legalized: true
tracksRegLiveness: true
jumpTable:
kind: block-address
entries:
- id: 0
blocks: [ '%bb.0' ]
liveins:
body: |
bb.0:
; CHECK: Bad machine code: Too few operands
%0:_(s32) = G_JUMP_TABLE
; CHECK: G_JUMP_TABLE source operand must be a jump table index
%2:_(s32) = G_JUMP_TABLE %0
; CHECK: G_JUMP_TABLE dest operand must have a pointer type
%3:_(s32) = G_JUMP_TABLE %jump-table.0
...