xref: /llvm-project/llvm/test/MachineVerifier/test_g_is_fpclass.mir (revision d20190e68413634b87f0f9426312a0e9d8456d18)
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    %vector:_(<4 x s32>) = COPY $q0
17
18    %val1:_(s1) = G_IS_FPCLASS %s32
19    ; CHECK: *** Bad machine code: Too few operands ***
20    ; CHECK: 3 operands expected, but 2 given.
21
22    %val2:_(p0) = G_IS_FPCLASS %s32, 3
23    ; CHECK: *** Bad machine code: Destination must be a scalar or vector of scalars ***
24
25    %val4:_(s1) = G_IS_FPCLASS %s32, 7777
26    ; CHECK: *** Bad machine code: Incorrect floating-point class set (operand 2) ***
27
28    %val5:_(s1) = G_IS_FPCLASS %ptr:_(p0), 3
29    ; CHECK: *** Bad machine code: Source must be a scalar or vector of scalars ***
30
31    %var6:_(s1) = G_IS_FPCLASS %vector:_(<4 x s32>), 1
32    ; CHECK: *** Bad machine code: operand types must be all-vector or all-scalar ***
33
34    %var7:_(<2 x s1>) = G_IS_FPCLASS %vector:_(<4 x s32>), 1
35    ; CHECK: *** Bad machine code: operand types must preserve number of vector elements ***
36
37...
38