diff options
Diffstat (limited to 'test/MC/AArch64/basic-a64-diagnostics.s')
| -rw-r--r-- | test/MC/AArch64/basic-a64-diagnostics.s | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/test/MC/AArch64/basic-a64-diagnostics.s b/test/MC/AArch64/basic-a64-diagnostics.s index 80e32c48673a..d37c0d5aba2a 100644 --- a/test/MC/AArch64/basic-a64-diagnostics.s +++ b/test/MC/AArch64/basic-a64-diagnostics.s @@ -1781,12 +1781,20 @@ ;; Exponent too large fmov d3, #0.0625 fmov s2, #32.0 + fmov s2, #32 + fmov v0.4s, #-32 // CHECK-ERROR: error: expected compatible register or floating-point constant // CHECK-ERROR-NEXT: fmov d3, #0.0625 // CHECK-ERROR-NEXT: ^ // CHECK-ERROR-NEXT: error: expected compatible register or floating-point constant // CHECK-ERROR-NEXT: fmov s2, #32.0 // CHECK-ERROR-NEXT: ^ +// CHECK-ERROR-NEXT: error: expected compatible register or floating-point constant +// CHECK-ERROR-NEXT: fmov s2, #32 +// CHECK-ERROR-NEXT: ^ +// CHECK-ERROR-NEXT: error: expected compatible register or floating-point constant +// CHECK-ERROR-NEXT: fmov v0.4s, #-32 +// CHECK-ERROR-NEXT: ^ ;; Fraction too precise fmov s9, #1.03125 @@ -1798,11 +1806,17 @@ // CHECK-ERROR-NEXT: fmov s28, #1.96875 // CHECK-ERROR-NEXT: ^ - ;; No particular reason, but a striking omission - fmov d0, #0.0 -// CHECK-ERROR-AARCH64: error: expected compatible register or floating-point constant -// CHECK-ERROR-AARCH64-NEXT: fmov d0, #0.0 -// CHECK-ERROR-AARCH64-NEXT: ^ + ;; Explicitly encoded value too large + fmov s15, #0x100 +// CHECK-ERROR: error: encoded floating point value out of range +// CHECK-ERROR-NEXT: fmov s15, #0x100 +// CHECK-ERROR-NEXT: ^ + + ;; Not possible to fmov ZR to a whole vector + fmov v0.4s, #0.0 +// CHECK-ERROR: error: invalid operand for instruction +// CHECK-ERROR-NEXT: fmov v0.4s, #0.0 +// CHECK-ERROR-NEXT: ^ //------------------------------------------------------------------------------ // Floating-point <-> integer conversion |
