aboutsummaryrefslogtreecommitdiff
path: root/llvm/test/MachineVerifier
diff options
context:
space:
mode:
authorSerge Pavlov <sepavloff@gmail.com>2022-03-11 14:40:44 +0700
committerSerge Pavlov <sepavloff@gmail.com>2022-05-27 13:49:47 +0700
commitbdd0093f4d57790893d679ad590cd40c1dc3978c (patch)
tree2272aa293953ba9d388004e236cc037a059335c4 /llvm/test/MachineVerifier
parent0252357b3e1e8f6d3bc51ac6d7ac075842b2c956 (diff)
downloadllvm-bdd0093f4d57790893d679ad590cd40c1dc3978c.zip
llvm-bdd0093f4d57790893d679ad590cd40c1dc3978c.tar.gz
llvm-bdd0093f4d57790893d679ad590cd40c1dc3978c.tar.bz2
[GlobalISel] Add G_IS_FPCLASS
Add a generic opcode to represent `llvm.is_fpclass` intrinsic. Differential Revision: https://reviews.llvm.org/D121454
Diffstat (limited to 'llvm/test/MachineVerifier')
-rw-r--r--llvm/test/MachineVerifier/test_g_is_fpclass.mir40
1 files changed, 40 insertions, 0 deletions
diff --git a/llvm/test/MachineVerifier/test_g_is_fpclass.mir b/llvm/test/MachineVerifier/test_g_is_fpclass.mir
new file mode 100644
index 0000000..a749a79
--- /dev/null
+++ b/llvm/test/MachineVerifier/test_g_is_fpclass.mir
@@ -0,0 +1,40 @@
+# RUN: not --crash llc -o - -march=aarch64 -global-isel -run-pass=none -verify-machineinstrs %s 2>&1 | FileCheck %s
+# REQUIRES: aarch64-registered-target
+
+---
+name: test_fcmp
+legalized: true
+regBankSelected: false
+selected: false
+tracksRegLiveness: true
+liveins:
+body: |
+ bb.0:
+ liveins: $x0, $w0, $q0
+ %s32:_(s32) = COPY $w0
+ %ptr:_(p0) = COPY $x0
+ %vector:_(<4 x s32>) = COPY $q0
+
+ %val1:_(s1) = G_IS_FPCLASS %s32, 1
+ ; CHECK: *** Bad machine code: Too few operands ***
+ ; CHECK: 4 operands expected, but 3 given.
+
+ %val2:_(p0) = G_IS_FPCLASS %s32, 3, 2
+ ; CHECK: *** Bad machine code: Destination must be a scalar or vector of scalars ***
+
+ %val3:_(s1) = G_IS_FPCLASS %s32, 1, 66
+ ; CHECK: *** Bad machine code: Incorrect floating-point semantics (operand 3) ***
+
+ %val4:_(s1) = G_IS_FPCLASS %s32, 7777, 2
+ ; CHECK: *** Bad machine code: Incorrect floating-point class set (operand 2) ***
+
+ %val5:_(s1) = G_IS_FPCLASS %ptr:_(p0), 3, 2
+ ; CHECK: *** Bad machine code: Source must be a scalar or vector of scalars ***
+
+ %var6:_(s1) = G_IS_FPCLASS %vector:_(<4 x s32>), 1, 2
+ ; CHECK: *** Bad machine code: operand types must be all-vector or all-scalar ***
+
+ %var7:_(<2 x s1>) = G_IS_FPCLASS %vector:_(<4 x s32>), 1, 2
+ ; CHECK: *** Bad machine code: operand types must preserve number of vector elements ***
+
+...