diff options
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir | 3 | ||||
-rw-r--r-- | llvm/test/MachineVerifier/test_g_is_fpclass.mir | 40 |
2 files changed, 43 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir b/llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir index 2127229..881b7f8 100644 --- a/llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir +++ b/llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir @@ -484,6 +484,9 @@ # DEBUG-NEXT: G_FCOPYSIGN (opcode {{[0-9]+}}): 2 type indices # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined +# DEBUG-NEXT: G_IS_FPCLASS (opcode {{[0-9]+}}): 2 type indices, 0 imm indices +# DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined +# DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined # DEBUG-NEXT: G_FCANONICALIZE (opcode {{[0-9]+}}): 1 type index, 0 imm indices # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined 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 *** + +... |