xref: /llvm-project/llvm/test/MachineVerifier/test_g_prefetch.mir (revision 35ebd92d3d13925c1a4c61424a7be21cf32dc4c1)
1# RUN: not --crash llc -o - -mtriple=aarch64 -global-isel -run-pass=none -verify-machineinstrs %s 2>&1 | FileCheck %s
2# REQUIRES: aarch64-registered-target
3
4---
5name: test_fcmp
6legalized: true
7regBankSelected: false
8selected: false
9tracksRegLiveness: true
10liveins:
11body: |
12  bb.0:
13    liveins: $x0, $w0, $q0
14    %s32:_(s32) = COPY $w0
15    %ptr:_(p0) = COPY $x0
16
17    G_PREFETCH %ptr
18    ; CHECK: *** Bad machine code: Too few operands ***
19    ; CHECK: 4 operands expected, but 1 given.
20
21    G_PREFETCH %ptr, 0, 0, 0, 0
22    ; CHECK: *** Bad machine code: Extra explicit operand on non-variadic instruction ***
23    ; CHECK: operand 4:
24
25    G_PREFETCH %s32, 0, 0, 0
26    ; CHECK: *** Bad machine code: addr operand must be a pointer ***
27    ; CHECK: operand 0:
28
29    G_PREFETCH %ptr, 10, 0, 0
30    ; CHECK: *** Bad machine code: rw operand must be an immediate 0-1 ***
31    ; CHECK: operand 1:
32
33    G_PREFETCH %ptr, 0, 10, 0
34    ; CHECK: *** Bad machine code: locality operand must be an immediate 0-3 ***
35    ; CHECK: operand 2:
36
37    G_PREFETCH %ptr, 0, 0, 10
38    ; CHECK: *** Bad machine code: cache type operand must be an immediate 0-1 ***
39    ; CHECK: operand 3:
40...
41