[llvm] r333744 - [AArch64][SVE] Asm: Support for FDUP_ZI (copy fp immediate) instruction.

Sander de Smalen via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 1 05:54:46 PDT 2018


Author: s.desmalen
Date: Fri Jun  1 05:54:46 2018
New Revision: 333744

URL: http://llvm.org/viewvc/llvm-project?rev=333744&view=rev
Log:
[AArch64][SVE] Asm: Support for FDUP_ZI (copy fp immediate) instruction.

Unpredicated copy of floating-point immediate value into SVE vector,
along with MOV-aliases.

Reviewers: rengolin, fhahn, samparker, SjoerdMeijer, javed.absar

Reviewed By: fhahn

Differential Revision: https://reviews.llvm.org/D47482


Added:
    llvm/trunk/test/MC/AArch64/SVE/fdup-diagnostics.s
    llvm/trunk/test/MC/AArch64/SVE/fdup.s
    llvm/trunk/test/MC/AArch64/SVE/fmov-diagnostics.s
    llvm/trunk/test/MC/AArch64/SVE/fmov.s
Modified:
    llvm/trunk/lib/Target/AArch64/AArch64SVEInstrInfo.td
    llvm/trunk/lib/Target/AArch64/SVEInstrFormats.td

Modified: llvm/trunk/lib/Target/AArch64/AArch64SVEInstrInfo.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64SVEInstrInfo.td?rev=333744&r1=333743&r2=333744&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/AArch64SVEInstrInfo.td (original)
+++ llvm/trunk/lib/Target/AArch64/AArch64SVEInstrInfo.td Fri Jun  1 05:54:46 2018
@@ -37,6 +37,7 @@ let Predicates = [HasSVE] in {
 
   // Splat immediate (unpredicated)
   defm DUP_ZI   : sve_int_dup_imm<"dup">;
+  defm FDUP_ZI  : sve_int_dup_fpimm<"fdup">;
   defm DUPM_ZI : sve_int_dup_mask_imm<"dupm">;
 
   // continuous load with reg+immediate

Modified: llvm/trunk/lib/Target/AArch64/SVEInstrFormats.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/SVEInstrFormats.td?rev=333744&r1=333743&r2=333744&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/SVEInstrFormats.td (original)
+++ llvm/trunk/lib/Target/AArch64/SVEInstrFormats.td Fri Jun  1 05:54:46 2018
@@ -527,6 +527,44 @@ multiclass sve_int_dup_imm<string asm> {
                   (!cast<Instruction>(NAME # _S) ZPR32:$Zd, cpy_imm8_opt_lsl_i32:$imm), 1>;
   def : InstAlias<"mov $Zd, $imm",
                   (!cast<Instruction>(NAME # _D) ZPR64:$Zd, cpy_imm8_opt_lsl_i64:$imm), 1>;
+
+  def : InstAlias<"fmov $Zd, #0.0",
+                  (!cast<Instruction>(NAME # _H) ZPR16:$Zd, 0, 0), 1>;
+  def : InstAlias<"fmov $Zd, #0.0",
+                  (!cast<Instruction>(NAME # _S) ZPR32:$Zd, 0, 0), 1>;
+  def : InstAlias<"fmov $Zd, #0.0",
+                  (!cast<Instruction>(NAME # _D) ZPR64:$Zd, 0, 0), 1>;
+}
+
+class sve_int_dup_fpimm<bits<2> sz8_64, Operand fpimmtype,
+                        string asm, ZPRRegOp zprty>
+: I<(outs zprty:$Zd), (ins fpimmtype:$imm8),
+  asm, "\t$Zd, $imm8",
+  "",
+  []>, Sched<[]> {
+  bits<5> Zd;
+  bits<8> imm8;
+  let Inst{31-24} = 0b00100101;
+  let Inst{23-22} = sz8_64;
+  let Inst{21-14} = 0b11100111;
+  let Inst{13}    = 0b0;
+  let Inst{12-5}  = imm8;
+  let Inst{4-0}   = Zd;
+
+  let isReMaterializable = 1;
+}
+
+multiclass sve_int_dup_fpimm<string asm> {
+  def _H : sve_int_dup_fpimm<0b01, fpimm16, asm, ZPR16>;
+  def _S : sve_int_dup_fpimm<0b10, fpimm32, asm, ZPR32>;
+  def _D : sve_int_dup_fpimm<0b11, fpimm64, asm, ZPR64>;
+
+  def : InstAlias<"fmov $Zd, $imm8",
+                  (!cast<Instruction>(NAME # _H) ZPR16:$Zd, fpimm16:$imm8), 1>;
+  def : InstAlias<"fmov $Zd, $imm8",
+                  (!cast<Instruction>(NAME # _S) ZPR32:$Zd, fpimm32:$imm8), 1>;
+  def : InstAlias<"fmov $Zd, $imm8",
+                  (!cast<Instruction>(NAME # _D) ZPR64:$Zd, fpimm64:$imm8), 1>;
 }
 
 class sve_int_arith_imm0<bits<2> sz8_64, bits<3> opc, string asm,

Added: llvm/trunk/test/MC/AArch64/SVE/fdup-diagnostics.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AArch64/SVE/fdup-diagnostics.s?rev=333744&view=auto
==============================================================================
--- llvm/trunk/test/MC/AArch64/SVE/fdup-diagnostics.s (added)
+++ llvm/trunk/test/MC/AArch64/SVE/fdup-diagnostics.s Fri Jun  1 05:54:46 2018
@@ -0,0 +1,64 @@
+// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve  2>&1 < %s| FileCheck %s
+
+// --------------------------------------------------------------------------//
+// Invalid immediates
+
+fdup z0.h, #-0.05859375   // r = -4, n = 15
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fdup z0.h, #-0.05859375   // r = -4, n = 15
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+fdup z0.s, #-0.05859375   // r = -4, n = 15
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fdup z0.s, #-0.05859375   // r = -4, n = 15
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+fdup z0.d, #-0.05859375   // r = -4, n = 15
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fdup z0.d, #-0.05859375   // r = -4, n = 15
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+fdup z0.h, #-64.00000000   // r = 5, n = 32
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fdup z0.h, #-64.00000000   // r = 5, n = 32
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+fdup z0.s, #-64.00000000   // r = 5, n = 32
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fdup z0.s, #-64.00000000   // r = 5, n = 32
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+fdup z0.d, #-64.00000000   // r = 5, n = 32
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fdup z0.d, #-64.00000000   // r = 5, n = 32
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+fdup z0.h, #0.05859375   // r = -4, n = 15
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fdup z0.h, #0.05859375   // r = -4, n = 15
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+fdup z0.s, #0.05859375   // r = -4, n = 15
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fdup z0.s, #0.05859375   // r = -4, n = 15
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+fdup z0.d, #0.05859375   // r = -4, n = 15
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fdup z0.d, #0.05859375   // r = -4, n = 15
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+fdup z0.h, #64.00000000   // r = 5, n = 32
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fdup z0.h, #64.00000000   // r = 5, n = 32
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+fdup z0.s, #64.00000000   // r = 5, n = 32
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fdup z0.s, #64.00000000   // r = 5, n = 32
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+fdup z0.d, #64.00000000   // r = 5, n = 32
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fdup z0.d, #64.00000000   // r = 5, n = 32
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

Added: llvm/trunk/test/MC/AArch64/SVE/fdup.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AArch64/SVE/fdup.s?rev=333744&view=auto
==============================================================================
--- llvm/trunk/test/MC/AArch64/SVE/fdup.s (added)
+++ llvm/trunk/test/MC/AArch64/SVE/fdup.s Fri Jun  1 05:54:46 2018
@@ -0,0 +1,1556 @@
+// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve < %s \
+// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
+// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \
+// RUN:        | FileCheck %s --check-prefix=CHECK-ERROR
+// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve < %s \
+// RUN:        | llvm-objdump -d -mattr=+sve - | FileCheck %s --check-prefix=CHECK-INST
+// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve < %s \
+// RUN:        | llvm-objdump -d - | FileCheck %s --check-prefix=CHECK-UNKNOWN
+
+fdup z0.h, #-0.12500000
+// CHECK-INST: fmov z0.h, #-0.12500000
+// CHECK-ENCODING: [0x00,0xd8,0x79,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 d8 79 25 <unknown>
+
+fdup z0.s, #-0.12500000
+// CHECK-INST: fmov z0.s, #-0.12500000
+// CHECK-ENCODING: [0x00,0xd8,0xb9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 d8 b9 25 <unknown>
+
+fdup z0.d, #-0.12500000
+// CHECK-INST: fmov z0.d, #-0.12500000
+// CHECK-ENCODING: [0x00,0xd8,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 d8 f9 25 <unknown>
+
+fdup z0.d, #-0.13281250
+// CHECK-INST: fmov z0.d, #-0.13281250
+// CHECK-ENCODING: [0x20,0xd8,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 d8 f9 25 <unknown>
+
+fdup z0.d, #-0.14062500
+// CHECK-INST: fmov z0.d, #-0.14062500
+// CHECK-ENCODING: [0x40,0xd8,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 d8 f9 25 <unknown>
+
+fdup z0.d, #-0.14843750
+// CHECK-INST: fmov z0.d, #-0.14843750
+// CHECK-ENCODING: [0x60,0xd8,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 d8 f9 25 <unknown>
+
+fdup z0.d, #-0.15625000
+// CHECK-INST: fmov z0.d, #-0.15625000
+// CHECK-ENCODING: [0x80,0xd8,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 d8 f9 25 <unknown>
+
+fdup z0.d, #-0.16406250
+// CHECK-INST: fmov z0.d, #-0.16406250
+// CHECK-ENCODING: [0xa0,0xd8,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 d8 f9 25 <unknown>
+
+fdup z0.d, #-0.17187500
+// CHECK-INST: fmov z0.d, #-0.17187500
+// CHECK-ENCODING: [0xc0,0xd8,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 d8 f9 25 <unknown>
+
+fdup z0.d, #-0.17968750
+// CHECK-INST: fmov z0.d, #-0.17968750
+// CHECK-ENCODING: [0xe0,0xd8,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 d8 f9 25 <unknown>
+
+fdup z0.d, #-0.18750000
+// CHECK-INST: fmov z0.d, #-0.18750000
+// CHECK-ENCODING: [0x00,0xd9,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 d9 f9 25 <unknown>
+
+fdup z0.d, #-0.19531250
+// CHECK-INST: fmov z0.d, #-0.19531250
+// CHECK-ENCODING: [0x20,0xd9,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 d9 f9 25 <unknown>
+
+fdup z0.d, #-0.20312500
+// CHECK-INST: fmov z0.d, #-0.20312500
+// CHECK-ENCODING: [0x40,0xd9,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 d9 f9 25 <unknown>
+
+fdup z0.d, #-0.21093750
+// CHECK-INST: fmov z0.d, #-0.21093750
+// CHECK-ENCODING: [0x60,0xd9,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 d9 f9 25 <unknown>
+
+fdup z0.d, #-0.21875000
+// CHECK-INST: fmov z0.d, #-0.21875000
+// CHECK-ENCODING: [0x80,0xd9,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 d9 f9 25 <unknown>
+
+fdup z0.d, #-0.22656250
+// CHECK-INST: fmov z0.d, #-0.22656250
+// CHECK-ENCODING: [0xa0,0xd9,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 d9 f9 25 <unknown>
+
+fdup z0.d, #-0.23437500
+// CHECK-INST: fmov z0.d, #-0.23437500
+// CHECK-ENCODING: [0xc0,0xd9,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 d9 f9 25 <unknown>
+
+fdup z0.d, #-0.24218750
+// CHECK-INST: fmov z0.d, #-0.24218750
+// CHECK-ENCODING: [0xe0,0xd9,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 d9 f9 25 <unknown>
+
+fdup z0.d, #-0.25000000
+// CHECK-INST: fmov z0.d, #-0.25000000
+// CHECK-ENCODING: [0x00,0xda,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 da f9 25 <unknown>
+
+fdup z0.d, #-0.26562500
+// CHECK-INST: fmov z0.d, #-0.26562500
+// CHECK-ENCODING: [0x20,0xda,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 da f9 25 <unknown>
+
+fdup z0.d, #-0.28125000
+// CHECK-INST: fmov z0.d, #-0.28125000
+// CHECK-ENCODING: [0x40,0xda,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 da f9 25 <unknown>
+
+fdup z0.d, #-0.29687500
+// CHECK-INST: fmov z0.d, #-0.29687500
+// CHECK-ENCODING: [0x60,0xda,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 da f9 25 <unknown>
+
+fdup z0.d, #-0.31250000
+// CHECK-INST: fmov z0.d, #-0.31250000
+// CHECK-ENCODING: [0x80,0xda,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 da f9 25 <unknown>
+
+fdup z0.d, #-0.32812500
+// CHECK-INST: fmov z0.d, #-0.32812500
+// CHECK-ENCODING: [0xa0,0xda,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 da f9 25 <unknown>
+
+fdup z0.d, #-0.34375000
+// CHECK-INST: fmov z0.d, #-0.34375000
+// CHECK-ENCODING: [0xc0,0xda,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 da f9 25 <unknown>
+
+fdup z0.d, #-0.35937500
+// CHECK-INST: fmov z0.d, #-0.35937500
+// CHECK-ENCODING: [0xe0,0xda,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 da f9 25 <unknown>
+
+fdup z0.d, #-0.37500000
+// CHECK-INST: fmov z0.d, #-0.37500000
+// CHECK-ENCODING: [0x00,0xdb,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 db f9 25 <unknown>
+
+fdup z0.d, #-0.39062500
+// CHECK-INST: fmov z0.d, #-0.39062500
+// CHECK-ENCODING: [0x20,0xdb,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 db f9 25 <unknown>
+
+fdup z0.d, #-0.40625000
+// CHECK-INST: fmov z0.d, #-0.40625000
+// CHECK-ENCODING: [0x40,0xdb,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 db f9 25 <unknown>
+
+fdup z0.d, #-0.42187500
+// CHECK-INST: fmov z0.d, #-0.42187500
+// CHECK-ENCODING: [0x60,0xdb,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 db f9 25 <unknown>
+
+fdup z0.d, #-0.43750000
+// CHECK-INST: fmov z0.d, #-0.43750000
+// CHECK-ENCODING: [0x80,0xdb,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 db f9 25 <unknown>
+
+fdup z0.d, #-0.45312500
+// CHECK-INST: fmov z0.d, #-0.45312500
+// CHECK-ENCODING: [0xa0,0xdb,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 db f9 25 <unknown>
+
+fdup z0.d, #-0.46875000
+// CHECK-INST: fmov z0.d, #-0.46875000
+// CHECK-ENCODING: [0xc0,0xdb,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 db f9 25 <unknown>
+
+fdup z0.d, #-0.48437500
+// CHECK-INST: fmov z0.d, #-0.48437500
+// CHECK-ENCODING: [0xe0,0xdb,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 db f9 25 <unknown>
+
+fdup z0.d, #-0.50000000
+// CHECK-INST: fmov z0.d, #-0.50000000
+// CHECK-ENCODING: [0x00,0xdc,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 dc f9 25 <unknown>
+
+fdup z0.d, #-0.53125000
+// CHECK-INST: fmov z0.d, #-0.53125000
+// CHECK-ENCODING: [0x20,0xdc,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 dc f9 25 <unknown>
+
+fdup z0.d, #-0.56250000
+// CHECK-INST: fmov z0.d, #-0.56250000
+// CHECK-ENCODING: [0x40,0xdc,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 dc f9 25 <unknown>
+
+fdup z0.d, #-0.59375000
+// CHECK-INST: fmov z0.d, #-0.59375000
+// CHECK-ENCODING: [0x60,0xdc,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 dc f9 25 <unknown>
+
+fdup z0.d, #-0.62500000
+// CHECK-INST: fmov z0.d, #-0.62500000
+// CHECK-ENCODING: [0x80,0xdc,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 dc f9 25 <unknown>
+
+fdup z0.d, #-0.65625000
+// CHECK-INST: fmov z0.d, #-0.65625000
+// CHECK-ENCODING: [0xa0,0xdc,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 dc f9 25 <unknown>
+
+fdup z0.d, #-0.68750000
+// CHECK-INST: fmov z0.d, #-0.68750000
+// CHECK-ENCODING: [0xc0,0xdc,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 dc f9 25 <unknown>
+
+fdup z0.d, #-0.71875000
+// CHECK-INST: fmov z0.d, #-0.71875000
+// CHECK-ENCODING: [0xe0,0xdc,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 dc f9 25 <unknown>
+
+fdup z0.d, #-0.75000000
+// CHECK-INST: fmov z0.d, #-0.75000000
+// CHECK-ENCODING: [0x00,0xdd,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 dd f9 25 <unknown>
+
+fdup z0.d, #-0.78125000
+// CHECK-INST: fmov z0.d, #-0.78125000
+// CHECK-ENCODING: [0x20,0xdd,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 dd f9 25 <unknown>
+
+fdup z0.d, #-0.81250000
+// CHECK-INST: fmov z0.d, #-0.81250000
+// CHECK-ENCODING: [0x40,0xdd,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 dd f9 25 <unknown>
+
+fdup z0.d, #-0.84375000
+// CHECK-INST: fmov z0.d, #-0.84375000
+// CHECK-ENCODING: [0x60,0xdd,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 dd f9 25 <unknown>
+
+fdup z0.d, #-0.87500000
+// CHECK-INST: fmov z0.d, #-0.87500000
+// CHECK-ENCODING: [0x80,0xdd,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 dd f9 25 <unknown>
+
+fdup z0.d, #-0.90625000
+// CHECK-INST: fmov z0.d, #-0.90625000
+// CHECK-ENCODING: [0xa0,0xdd,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 dd f9 25 <unknown>
+
+fdup z0.d, #-0.93750000
+// CHECK-INST: fmov z0.d, #-0.93750000
+// CHECK-ENCODING: [0xc0,0xdd,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 dd f9 25 <unknown>
+
+fdup z0.d, #-0.96875000
+// CHECK-INST: fmov z0.d, #-0.96875000
+// CHECK-ENCODING: [0xe0,0xdd,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 dd f9 25 <unknown>
+
+fdup z0.d, #-1.00000000
+// CHECK-INST: fmov z0.d, #-1.00000000
+// CHECK-ENCODING: [0x00,0xde,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 de f9 25 <unknown>
+
+fdup z0.d, #-1.06250000
+// CHECK-INST: fmov z0.d, #-1.06250000
+// CHECK-ENCODING: [0x20,0xde,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 de f9 25 <unknown>
+
+fdup z0.d, #-1.12500000
+// CHECK-INST: fmov z0.d, #-1.12500000
+// CHECK-ENCODING: [0x40,0xde,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 de f9 25 <unknown>
+
+fdup z0.d, #-1.18750000
+// CHECK-INST: fmov z0.d, #-1.18750000
+// CHECK-ENCODING: [0x60,0xde,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 de f9 25 <unknown>
+
+fdup z0.d, #-1.25000000
+// CHECK-INST: fmov z0.d, #-1.25000000
+// CHECK-ENCODING: [0x80,0xde,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 de f9 25 <unknown>
+
+fdup z0.d, #-1.31250000
+// CHECK-INST: fmov z0.d, #-1.31250000
+// CHECK-ENCODING: [0xa0,0xde,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 de f9 25 <unknown>
+
+fdup z0.d, #-1.37500000
+// CHECK-INST: fmov z0.d, #-1.37500000
+// CHECK-ENCODING: [0xc0,0xde,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 de f9 25 <unknown>
+
+fdup z0.d, #-1.43750000
+// CHECK-INST: fmov z0.d, #-1.43750000
+// CHECK-ENCODING: [0xe0,0xde,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 de f9 25 <unknown>
+
+fdup z0.d, #-1.50000000
+// CHECK-INST: fmov z0.d, #-1.50000000
+// CHECK-ENCODING: [0x00,0xdf,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 df f9 25 <unknown>
+
+fdup z0.d, #-1.56250000
+// CHECK-INST: fmov z0.d, #-1.56250000
+// CHECK-ENCODING: [0x20,0xdf,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 df f9 25 <unknown>
+
+fdup z0.d, #-1.62500000
+// CHECK-INST: fmov z0.d, #-1.62500000
+// CHECK-ENCODING: [0x40,0xdf,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 df f9 25 <unknown>
+
+fdup z0.d, #-1.68750000
+// CHECK-INST: fmov z0.d, #-1.68750000
+// CHECK-ENCODING: [0x60,0xdf,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 df f9 25 <unknown>
+
+fdup z0.d, #-1.75000000
+// CHECK-INST: fmov z0.d, #-1.75000000
+// CHECK-ENCODING: [0x80,0xdf,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 df f9 25 <unknown>
+
+fdup z0.d, #-1.81250000
+// CHECK-INST: fmov z0.d, #-1.81250000
+// CHECK-ENCODING: [0xa0,0xdf,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 df f9 25 <unknown>
+
+fdup z0.d, #-1.87500000
+// CHECK-INST: fmov z0.d, #-1.87500000
+// CHECK-ENCODING: [0xc0,0xdf,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 df f9 25 <unknown>
+
+fdup z0.d, #-1.93750000
+// CHECK-INST: fmov z0.d, #-1.93750000
+// CHECK-ENCODING: [0xe0,0xdf,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 df f9 25 <unknown>
+
+fdup z0.d, #-2.00000000
+// CHECK-INST: fmov z0.d, #-2.00000000
+// CHECK-ENCODING: [0x00,0xd0,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 d0 f9 25 <unknown>
+
+fdup z0.d, #-2.12500000
+// CHECK-INST: fmov z0.d, #-2.12500000
+// CHECK-ENCODING: [0x20,0xd0,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 d0 f9 25 <unknown>
+
+fdup z0.d, #-2.25000000
+// CHECK-INST: fmov z0.d, #-2.25000000
+// CHECK-ENCODING: [0x40,0xd0,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 d0 f9 25 <unknown>
+
+fdup z0.d, #-2.37500000
+// CHECK-INST: fmov z0.d, #-2.37500000
+// CHECK-ENCODING: [0x60,0xd0,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 d0 f9 25 <unknown>
+
+fdup z0.d, #-2.50000000
+// CHECK-INST: fmov z0.d, #-2.50000000
+// CHECK-ENCODING: [0x80,0xd0,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 d0 f9 25 <unknown>
+
+fdup z0.d, #-2.62500000
+// CHECK-INST: fmov z0.d, #-2.62500000
+// CHECK-ENCODING: [0xa0,0xd0,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 d0 f9 25 <unknown>
+
+fdup z0.d, #-2.75000000
+// CHECK-INST: fmov z0.d, #-2.75000000
+// CHECK-ENCODING: [0xc0,0xd0,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 d0 f9 25 <unknown>
+
+fdup z0.d, #-2.87500000
+// CHECK-INST: fmov z0.d, #-2.87500000
+// CHECK-ENCODING: [0xe0,0xd0,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 d0 f9 25 <unknown>
+
+fdup z0.d, #-3.00000000
+// CHECK-INST: fmov z0.d, #-3.00000000
+// CHECK-ENCODING: [0x00,0xd1,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 d1 f9 25 <unknown>
+
+fdup z0.d, #-3.12500000
+// CHECK-INST: fmov z0.d, #-3.12500000
+// CHECK-ENCODING: [0x20,0xd1,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 d1 f9 25 <unknown>
+
+fdup z0.d, #-3.25000000
+// CHECK-INST: fmov z0.d, #-3.25000000
+// CHECK-ENCODING: [0x40,0xd1,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 d1 f9 25 <unknown>
+
+fdup z0.d, #-3.37500000
+// CHECK-INST: fmov z0.d, #-3.37500000
+// CHECK-ENCODING: [0x60,0xd1,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 d1 f9 25 <unknown>
+
+fdup z0.d, #-3.50000000
+// CHECK-INST: fmov z0.d, #-3.50000000
+// CHECK-ENCODING: [0x80,0xd1,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 d1 f9 25 <unknown>
+
+fdup z0.d, #-3.62500000
+// CHECK-INST: fmov z0.d, #-3.62500000
+// CHECK-ENCODING: [0xa0,0xd1,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 d1 f9 25 <unknown>
+
+fdup z0.d, #-3.75000000
+// CHECK-INST: fmov z0.d, #-3.75000000
+// CHECK-ENCODING: [0xc0,0xd1,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 d1 f9 25 <unknown>
+
+fdup z0.d, #-3.87500000
+// CHECK-INST: fmov z0.d, #-3.87500000
+// CHECK-ENCODING: [0xe0,0xd1,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 d1 f9 25 <unknown>
+
+fdup z0.d, #-4.00000000
+// CHECK-INST: fmov z0.d, #-4.00000000
+// CHECK-ENCODING: [0x00,0xd2,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 d2 f9 25 <unknown>
+
+fdup z0.d, #-4.25000000
+// CHECK-INST: fmov z0.d, #-4.25000000
+// CHECK-ENCODING: [0x20,0xd2,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 d2 f9 25 <unknown>
+
+fdup z0.d, #-4.50000000
+// CHECK-INST: fmov z0.d, #-4.50000000
+// CHECK-ENCODING: [0x40,0xd2,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 d2 f9 25 <unknown>
+
+fdup z0.d, #-4.75000000
+// CHECK-INST: fmov z0.d, #-4.75000000
+// CHECK-ENCODING: [0x60,0xd2,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 d2 f9 25 <unknown>
+
+fdup z0.d, #-5.00000000
+// CHECK-INST: fmov z0.d, #-5.00000000
+// CHECK-ENCODING: [0x80,0xd2,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 d2 f9 25 <unknown>
+
+fdup z0.d, #-5.25000000
+// CHECK-INST: fmov z0.d, #-5.25000000
+// CHECK-ENCODING: [0xa0,0xd2,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 d2 f9 25 <unknown>
+
+fdup z0.d, #-5.50000000
+// CHECK-INST: fmov z0.d, #-5.50000000
+// CHECK-ENCODING: [0xc0,0xd2,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 d2 f9 25 <unknown>
+
+fdup z0.d, #-5.75000000
+// CHECK-INST: fmov z0.d, #-5.75000000
+// CHECK-ENCODING: [0xe0,0xd2,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 d2 f9 25 <unknown>
+
+fdup z0.d, #-6.00000000
+// CHECK-INST: fmov z0.d, #-6.00000000
+// CHECK-ENCODING: [0x00,0xd3,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 d3 f9 25 <unknown>
+
+fdup z0.d, #-6.25000000
+// CHECK-INST: fmov z0.d, #-6.25000000
+// CHECK-ENCODING: [0x20,0xd3,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 d3 f9 25 <unknown>
+
+fdup z0.d, #-6.50000000
+// CHECK-INST: fmov z0.d, #-6.50000000
+// CHECK-ENCODING: [0x40,0xd3,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 d3 f9 25 <unknown>
+
+fdup z0.d, #-6.75000000
+// CHECK-INST: fmov z0.d, #-6.75000000
+// CHECK-ENCODING: [0x60,0xd3,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 d3 f9 25 <unknown>
+
+fdup z0.d, #-7.00000000
+// CHECK-INST: fmov z0.d, #-7.00000000
+// CHECK-ENCODING: [0x80,0xd3,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 d3 f9 25 <unknown>
+
+fdup z0.d, #-7.25000000
+// CHECK-INST: fmov z0.d, #-7.25000000
+// CHECK-ENCODING: [0xa0,0xd3,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 d3 f9 25 <unknown>
+
+fdup z0.d, #-7.50000000
+// CHECK-INST: fmov z0.d, #-7.50000000
+// CHECK-ENCODING: [0xc0,0xd3,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 d3 f9 25 <unknown>
+
+fdup z0.d, #-7.75000000
+// CHECK-INST: fmov z0.d, #-7.75000000
+// CHECK-ENCODING: [0xe0,0xd3,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 d3 f9 25 <unknown>
+
+fdup z0.d, #-8.00000000
+// CHECK-INST: fmov z0.d, #-8.00000000
+// CHECK-ENCODING: [0x00,0xd4,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 d4 f9 25 <unknown>
+
+fdup z0.d, #-8.50000000
+// CHECK-INST: fmov z0.d, #-8.50000000
+// CHECK-ENCODING: [0x20,0xd4,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 d4 f9 25 <unknown>
+
+fdup z0.d, #-9.00000000
+// CHECK-INST: fmov z0.d, #-9.00000000
+// CHECK-ENCODING: [0x40,0xd4,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 d4 f9 25 <unknown>
+
+fdup z0.d, #-9.50000000
+// CHECK-INST: fmov z0.d, #-9.50000000
+// CHECK-ENCODING: [0x60,0xd4,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 d4 f9 25 <unknown>
+
+fdup z0.d, #-10.00000000
+// CHECK-INST: fmov z0.d, #-10.00000000
+// CHECK-ENCODING: [0x80,0xd4,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 d4 f9 25 <unknown>
+
+fdup z0.d, #-10.50000000
+// CHECK-INST: fmov z0.d, #-10.50000000
+// CHECK-ENCODING: [0xa0,0xd4,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 d4 f9 25 <unknown>
+
+fdup z0.d, #-11.00000000
+// CHECK-INST: fmov z0.d, #-11.00000000
+// CHECK-ENCODING: [0xc0,0xd4,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 d4 f9 25 <unknown>
+
+fdup z0.d, #-11.50000000
+// CHECK-INST: fmov z0.d, #-11.50000000
+// CHECK-ENCODING: [0xe0,0xd4,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 d4 f9 25 <unknown>
+
+fdup z0.d, #-12.00000000
+// CHECK-INST: fmov z0.d, #-12.00000000
+// CHECK-ENCODING: [0x00,0xd5,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 d5 f9 25 <unknown>
+
+fdup z0.d, #-12.50000000
+// CHECK-INST: fmov z0.d, #-12.50000000
+// CHECK-ENCODING: [0x20,0xd5,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 d5 f9 25 <unknown>
+
+fdup z0.d, #-13.00000000
+// CHECK-INST: fmov z0.d, #-13.00000000
+// CHECK-ENCODING: [0x40,0xd5,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 d5 f9 25 <unknown>
+
+fdup z0.d, #-13.50000000
+// CHECK-INST: fmov z0.d, #-13.50000000
+// CHECK-ENCODING: [0x60,0xd5,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 d5 f9 25 <unknown>
+
+fdup z0.d, #-14.00000000
+// CHECK-INST: fmov z0.d, #-14.00000000
+// CHECK-ENCODING: [0x80,0xd5,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 d5 f9 25 <unknown>
+
+fdup z0.d, #-14.50000000
+// CHECK-INST: fmov z0.d, #-14.50000000
+// CHECK-ENCODING: [0xa0,0xd5,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 d5 f9 25 <unknown>
+
+fdup z0.d, #-15.00000000
+// CHECK-INST: fmov z0.d, #-15.00000000
+// CHECK-ENCODING: [0xc0,0xd5,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 d5 f9 25 <unknown>
+
+fdup z0.d, #-15.50000000
+// CHECK-INST: fmov z0.d, #-15.50000000
+// CHECK-ENCODING: [0xe0,0xd5,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 d5 f9 25 <unknown>
+
+fdup z0.d, #-16.00000000
+// CHECK-INST: fmov z0.d, #-16.00000000
+// CHECK-ENCODING: [0x00,0xd6,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 d6 f9 25 <unknown>
+
+fdup z0.d, #-17.00000000
+// CHECK-INST: fmov z0.d, #-17.00000000
+// CHECK-ENCODING: [0x20,0xd6,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 d6 f9 25 <unknown>
+
+fdup z0.d, #-18.00000000
+// CHECK-INST: fmov z0.d, #-18.00000000
+// CHECK-ENCODING: [0x40,0xd6,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 d6 f9 25 <unknown>
+
+fdup z0.d, #-19.00000000
+// CHECK-INST: fmov z0.d, #-19.00000000
+// CHECK-ENCODING: [0x60,0xd6,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 d6 f9 25 <unknown>
+
+fdup z0.d, #-20.00000000
+// CHECK-INST: fmov z0.d, #-20.00000000
+// CHECK-ENCODING: [0x80,0xd6,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 d6 f9 25 <unknown>
+
+fdup z0.d, #-21.00000000
+// CHECK-INST: fmov z0.d, #-21.00000000
+// CHECK-ENCODING: [0xa0,0xd6,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 d6 f9 25 <unknown>
+
+fdup z0.d, #-22.00000000
+// CHECK-INST: fmov z0.d, #-22.00000000
+// CHECK-ENCODING: [0xc0,0xd6,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 d6 f9 25 <unknown>
+
+fdup z0.d, #-23.00000000
+// CHECK-INST: fmov z0.d, #-23.00000000
+// CHECK-ENCODING: [0xe0,0xd6,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 d6 f9 25 <unknown>
+
+fdup z0.d, #-24.00000000
+// CHECK-INST: fmov z0.d, #-24.00000000
+// CHECK-ENCODING: [0x00,0xd7,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 d7 f9 25 <unknown>
+
+fdup z0.d, #-25.00000000
+// CHECK-INST: fmov z0.d, #-25.00000000
+// CHECK-ENCODING: [0x20,0xd7,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 d7 f9 25 <unknown>
+
+fdup z0.d, #-26.00000000
+// CHECK-INST: fmov z0.d, #-26.00000000
+// CHECK-ENCODING: [0x40,0xd7,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 d7 f9 25 <unknown>
+
+fdup z0.d, #-27.00000000
+// CHECK-INST: fmov z0.d, #-27.00000000
+// CHECK-ENCODING: [0x60,0xd7,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 d7 f9 25 <unknown>
+
+fdup z0.d, #-28.00000000
+// CHECK-INST: fmov z0.d, #-28.00000000
+// CHECK-ENCODING: [0x80,0xd7,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 d7 f9 25 <unknown>
+
+fdup z0.d, #-29.00000000
+// CHECK-INST: fmov z0.d, #-29.00000000
+// CHECK-ENCODING: [0xa0,0xd7,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 d7 f9 25 <unknown>
+
+fdup z0.d, #-30.00000000
+// CHECK-INST: fmov z0.d, #-30.00000000
+// CHECK-ENCODING: [0xc0,0xd7,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 d7 f9 25 <unknown>
+
+fdup z0.d, #-31.00000000
+// CHECK-INST: fmov z0.d, #-31.00000000
+// CHECK-ENCODING: [0xe0,0xd7,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 d7 f9 25 <unknown>
+
+fdup z0.d, #0.12500000
+// CHECK-INST: fmov z0.d, #0.12500000
+// CHECK-ENCODING: [0x00,0xc8,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 c8 f9 25 <unknown>
+
+fdup z0.d, #0.13281250
+// CHECK-INST: fmov z0.d, #0.13281250
+// CHECK-ENCODING: [0x20,0xc8,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 c8 f9 25 <unknown>
+
+fdup z0.d, #0.14062500
+// CHECK-INST: fmov z0.d, #0.14062500
+// CHECK-ENCODING: [0x40,0xc8,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 c8 f9 25 <unknown>
+
+fdup z0.d, #0.14843750
+// CHECK-INST: fmov z0.d, #0.14843750
+// CHECK-ENCODING: [0x60,0xc8,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 c8 f9 25 <unknown>
+
+fdup z0.d, #0.15625000
+// CHECK-INST: fmov z0.d, #0.15625000
+// CHECK-ENCODING: [0x80,0xc8,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 c8 f9 25 <unknown>
+
+fdup z0.d, #0.16406250
+// CHECK-INST: fmov z0.d, #0.16406250
+// CHECK-ENCODING: [0xa0,0xc8,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 c8 f9 25 <unknown>
+
+fdup z0.d, #0.17187500
+// CHECK-INST: fmov z0.d, #0.17187500
+// CHECK-ENCODING: [0xc0,0xc8,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 c8 f9 25 <unknown>
+
+fdup z0.d, #0.17968750
+// CHECK-INST: fmov z0.d, #0.17968750
+// CHECK-ENCODING: [0xe0,0xc8,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 c8 f9 25 <unknown>
+
+fdup z0.d, #0.18750000
+// CHECK-INST: fmov z0.d, #0.18750000
+// CHECK-ENCODING: [0x00,0xc9,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 c9 f9 25 <unknown>
+
+fdup z0.d, #0.19531250
+// CHECK-INST: fmov z0.d, #0.19531250
+// CHECK-ENCODING: [0x20,0xc9,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 c9 f9 25 <unknown>
+
+fdup z0.d, #0.20312500
+// CHECK-INST: fmov z0.d, #0.20312500
+// CHECK-ENCODING: [0x40,0xc9,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 c9 f9 25 <unknown>
+
+fdup z0.d, #0.21093750
+// CHECK-INST: fmov z0.d, #0.21093750
+// CHECK-ENCODING: [0x60,0xc9,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 c9 f9 25 <unknown>
+
+fdup z0.d, #0.21875000
+// CHECK-INST: fmov z0.d, #0.21875000
+// CHECK-ENCODING: [0x80,0xc9,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 c9 f9 25 <unknown>
+
+fdup z0.d, #0.22656250
+// CHECK-INST: fmov z0.d, #0.22656250
+// CHECK-ENCODING: [0xa0,0xc9,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 c9 f9 25 <unknown>
+
+fdup z0.d, #0.23437500
+// CHECK-INST: fmov z0.d, #0.23437500
+// CHECK-ENCODING: [0xc0,0xc9,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 c9 f9 25 <unknown>
+
+fdup z0.d, #0.24218750
+// CHECK-INST: fmov z0.d, #0.24218750
+// CHECK-ENCODING: [0xe0,0xc9,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 c9 f9 25 <unknown>
+
+fdup z0.d, #0.25000000
+// CHECK-INST: fmov z0.d, #0.25000000
+// CHECK-ENCODING: [0x00,0xca,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 ca f9 25 <unknown>
+
+fdup z0.d, #0.26562500
+// CHECK-INST: fmov z0.d, #0.26562500
+// CHECK-ENCODING: [0x20,0xca,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 ca f9 25 <unknown>
+
+fdup z0.d, #0.28125000
+// CHECK-INST: fmov z0.d, #0.28125000
+// CHECK-ENCODING: [0x40,0xca,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 ca f9 25 <unknown>
+
+fdup z0.d, #0.29687500
+// CHECK-INST: fmov z0.d, #0.29687500
+// CHECK-ENCODING: [0x60,0xca,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 ca f9 25 <unknown>
+
+fdup z0.d, #0.31250000
+// CHECK-INST: fmov z0.d, #0.31250000
+// CHECK-ENCODING: [0x80,0xca,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 ca f9 25 <unknown>
+
+fdup z0.d, #0.32812500
+// CHECK-INST: fmov z0.d, #0.32812500
+// CHECK-ENCODING: [0xa0,0xca,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 ca f9 25 <unknown>
+
+fdup z0.d, #0.34375000
+// CHECK-INST: fmov z0.d, #0.34375000
+// CHECK-ENCODING: [0xc0,0xca,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 ca f9 25 <unknown>
+
+fdup z0.d, #0.35937500
+// CHECK-INST: fmov z0.d, #0.35937500
+// CHECK-ENCODING: [0xe0,0xca,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 ca f9 25 <unknown>
+
+fdup z0.d, #0.37500000
+// CHECK-INST: fmov z0.d, #0.37500000
+// CHECK-ENCODING: [0x00,0xcb,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 cb f9 25 <unknown>
+
+fdup z0.d, #0.39062500
+// CHECK-INST: fmov z0.d, #0.39062500
+// CHECK-ENCODING: [0x20,0xcb,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 cb f9 25 <unknown>
+
+fdup z0.d, #0.40625000
+// CHECK-INST: fmov z0.d, #0.40625000
+// CHECK-ENCODING: [0x40,0xcb,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 cb f9 25 <unknown>
+
+fdup z0.d, #0.42187500
+// CHECK-INST: fmov z0.d, #0.42187500
+// CHECK-ENCODING: [0x60,0xcb,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 cb f9 25 <unknown>
+
+fdup z0.d, #0.43750000
+// CHECK-INST: fmov z0.d, #0.43750000
+// CHECK-ENCODING: [0x80,0xcb,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 cb f9 25 <unknown>
+
+fdup z0.d, #0.45312500
+// CHECK-INST: fmov z0.d, #0.45312500
+// CHECK-ENCODING: [0xa0,0xcb,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 cb f9 25 <unknown>
+
+fdup z0.d, #0.46875000
+// CHECK-INST: fmov z0.d, #0.46875000
+// CHECK-ENCODING: [0xc0,0xcb,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 cb f9 25 <unknown>
+
+fdup z0.d, #0.48437500
+// CHECK-INST: fmov z0.d, #0.48437500
+// CHECK-ENCODING: [0xe0,0xcb,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 cb f9 25 <unknown>
+
+fdup z0.d, #0.50000000
+// CHECK-INST: fmov z0.d, #0.50000000
+// CHECK-ENCODING: [0x00,0xcc,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 cc f9 25 <unknown>
+
+fdup z0.d, #0.53125000
+// CHECK-INST: fmov z0.d, #0.53125000
+// CHECK-ENCODING: [0x20,0xcc,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 cc f9 25 <unknown>
+
+fdup z0.d, #0.56250000
+// CHECK-INST: fmov z0.d, #0.56250000
+// CHECK-ENCODING: [0x40,0xcc,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 cc f9 25 <unknown>
+
+fdup z0.d, #0.59375000
+// CHECK-INST: fmov z0.d, #0.59375000
+// CHECK-ENCODING: [0x60,0xcc,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 cc f9 25 <unknown>
+
+fdup z0.d, #0.62500000
+// CHECK-INST: fmov z0.d, #0.62500000
+// CHECK-ENCODING: [0x80,0xcc,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 cc f9 25 <unknown>
+
+fdup z0.d, #0.65625000
+// CHECK-INST: fmov z0.d, #0.65625000
+// CHECK-ENCODING: [0xa0,0xcc,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 cc f9 25 <unknown>
+
+fdup z0.d, #0.68750000
+// CHECK-INST: fmov z0.d, #0.68750000
+// CHECK-ENCODING: [0xc0,0xcc,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 cc f9 25 <unknown>
+
+fdup z0.d, #0.71875000
+// CHECK-INST: fmov z0.d, #0.71875000
+// CHECK-ENCODING: [0xe0,0xcc,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 cc f9 25 <unknown>
+
+fdup z0.d, #0.75000000
+// CHECK-INST: fmov z0.d, #0.75000000
+// CHECK-ENCODING: [0x00,0xcd,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 cd f9 25 <unknown>
+
+fdup z0.d, #0.78125000
+// CHECK-INST: fmov z0.d, #0.78125000
+// CHECK-ENCODING: [0x20,0xcd,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 cd f9 25 <unknown>
+
+fdup z0.d, #0.81250000
+// CHECK-INST: fmov z0.d, #0.81250000
+// CHECK-ENCODING: [0x40,0xcd,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 cd f9 25 <unknown>
+
+fdup z0.d, #0.84375000
+// CHECK-INST: fmov z0.d, #0.84375000
+// CHECK-ENCODING: [0x60,0xcd,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 cd f9 25 <unknown>
+
+fdup z0.d, #0.87500000
+// CHECK-INST: fmov z0.d, #0.87500000
+// CHECK-ENCODING: [0x80,0xcd,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 cd f9 25 <unknown>
+
+fdup z0.d, #0.90625000
+// CHECK-INST: fmov z0.d, #0.90625000
+// CHECK-ENCODING: [0xa0,0xcd,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 cd f9 25 <unknown>
+
+fdup z0.d, #0.93750000
+// CHECK-INST: fmov z0.d, #0.93750000
+// CHECK-ENCODING: [0xc0,0xcd,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 cd f9 25 <unknown>
+
+fdup z0.d, #0.96875000
+// CHECK-INST: fmov z0.d, #0.96875000
+// CHECK-ENCODING: [0xe0,0xcd,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 cd f9 25 <unknown>
+
+fdup z0.d, #1.00000000
+// CHECK-INST: fmov z0.d, #1.00000000
+// CHECK-ENCODING: [0x00,0xce,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 ce f9 25 <unknown>
+
+fdup z0.d, #1.06250000
+// CHECK-INST: fmov z0.d, #1.06250000
+// CHECK-ENCODING: [0x20,0xce,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 ce f9 25 <unknown>
+
+fdup z0.d, #1.12500000
+// CHECK-INST: fmov z0.d, #1.12500000
+// CHECK-ENCODING: [0x40,0xce,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 ce f9 25 <unknown>
+
+fdup z0.d, #1.18750000
+// CHECK-INST: fmov z0.d, #1.18750000
+// CHECK-ENCODING: [0x60,0xce,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 ce f9 25 <unknown>
+
+fdup z0.d, #1.25000000
+// CHECK-INST: fmov z0.d, #1.25000000
+// CHECK-ENCODING: [0x80,0xce,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 ce f9 25 <unknown>
+
+fdup z0.d, #1.31250000
+// CHECK-INST: fmov z0.d, #1.31250000
+// CHECK-ENCODING: [0xa0,0xce,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 ce f9 25 <unknown>
+
+fdup z0.d, #1.37500000
+// CHECK-INST: fmov z0.d, #1.37500000
+// CHECK-ENCODING: [0xc0,0xce,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 ce f9 25 <unknown>
+
+fdup z0.d, #1.43750000
+// CHECK-INST: fmov z0.d, #1.43750000
+// CHECK-ENCODING: [0xe0,0xce,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 ce f9 25 <unknown>
+
+fdup z0.d, #1.50000000
+// CHECK-INST: fmov z0.d, #1.50000000
+// CHECK-ENCODING: [0x00,0xcf,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 cf f9 25 <unknown>
+
+fdup z0.d, #1.56250000
+// CHECK-INST: fmov z0.d, #1.56250000
+// CHECK-ENCODING: [0x20,0xcf,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 cf f9 25 <unknown>
+
+fdup z0.d, #1.62500000
+// CHECK-INST: fmov z0.d, #1.62500000
+// CHECK-ENCODING: [0x40,0xcf,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 cf f9 25 <unknown>
+
+fdup z0.d, #1.68750000
+// CHECK-INST: fmov z0.d, #1.68750000
+// CHECK-ENCODING: [0x60,0xcf,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 cf f9 25 <unknown>
+
+fdup z0.d, #1.75000000
+// CHECK-INST: fmov z0.d, #1.75000000
+// CHECK-ENCODING: [0x80,0xcf,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 cf f9 25 <unknown>
+
+fdup z0.d, #1.81250000
+// CHECK-INST: fmov z0.d, #1.81250000
+// CHECK-ENCODING: [0xa0,0xcf,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 cf f9 25 <unknown>
+
+fdup z0.d, #1.87500000
+// CHECK-INST: fmov z0.d, #1.87500000
+// CHECK-ENCODING: [0xc0,0xcf,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 cf f9 25 <unknown>
+
+fdup z0.d, #1.93750000
+// CHECK-INST: fmov z0.d, #1.93750000
+// CHECK-ENCODING: [0xe0,0xcf,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 cf f9 25 <unknown>
+
+fdup z0.d, #2.00000000
+// CHECK-INST: fmov z0.d, #2.00000000
+// CHECK-ENCODING: [0x00,0xc0,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 c0 f9 25 <unknown>
+
+fdup z0.d, #2.12500000
+// CHECK-INST: fmov z0.d, #2.12500000
+// CHECK-ENCODING: [0x20,0xc0,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 c0 f9 25 <unknown>
+
+fdup z0.d, #2.25000000
+// CHECK-INST: fmov z0.d, #2.25000000
+// CHECK-ENCODING: [0x40,0xc0,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 c0 f9 25 <unknown>
+
+fdup z0.d, #2.37500000
+// CHECK-INST: fmov z0.d, #2.37500000
+// CHECK-ENCODING: [0x60,0xc0,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 c0 f9 25 <unknown>
+
+fdup z0.d, #2.50000000
+// CHECK-INST: fmov z0.d, #2.50000000
+// CHECK-ENCODING: [0x80,0xc0,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 c0 f9 25 <unknown>
+
+fdup z0.d, #2.62500000
+// CHECK-INST: fmov z0.d, #2.62500000
+// CHECK-ENCODING: [0xa0,0xc0,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 c0 f9 25 <unknown>
+
+fdup z0.d, #2.75000000
+// CHECK-INST: fmov z0.d, #2.75000000
+// CHECK-ENCODING: [0xc0,0xc0,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 c0 f9 25 <unknown>
+
+fdup z0.d, #2.87500000
+// CHECK-INST: fmov z0.d, #2.87500000
+// CHECK-ENCODING: [0xe0,0xc0,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 c0 f9 25 <unknown>
+
+fdup z0.d, #3.00000000
+// CHECK-INST: fmov z0.d, #3.00000000
+// CHECK-ENCODING: [0x00,0xc1,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 c1 f9 25 <unknown>
+
+fdup z0.d, #3.12500000
+// CHECK-INST: fmov z0.d, #3.12500000
+// CHECK-ENCODING: [0x20,0xc1,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 c1 f9 25 <unknown>
+
+fdup z0.d, #3.25000000
+// CHECK-INST: fmov z0.d, #3.25000000
+// CHECK-ENCODING: [0x40,0xc1,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 c1 f9 25 <unknown>
+
+fdup z0.d, #3.37500000
+// CHECK-INST: fmov z0.d, #3.37500000
+// CHECK-ENCODING: [0x60,0xc1,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 c1 f9 25 <unknown>
+
+fdup z0.d, #3.50000000
+// CHECK-INST: fmov z0.d, #3.50000000
+// CHECK-ENCODING: [0x80,0xc1,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 c1 f9 25 <unknown>
+
+fdup z0.d, #3.62500000
+// CHECK-INST: fmov z0.d, #3.62500000
+// CHECK-ENCODING: [0xa0,0xc1,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 c1 f9 25 <unknown>
+
+fdup z0.d, #3.75000000
+// CHECK-INST: fmov z0.d, #3.75000000
+// CHECK-ENCODING: [0xc0,0xc1,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 c1 f9 25 <unknown>
+
+fdup z0.d, #3.87500000
+// CHECK-INST: fmov z0.d, #3.87500000
+// CHECK-ENCODING: [0xe0,0xc1,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 c1 f9 25 <unknown>
+
+fdup z0.d, #4.00000000
+// CHECK-INST: fmov z0.d, #4.00000000
+// CHECK-ENCODING: [0x00,0xc2,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 c2 f9 25 <unknown>
+
+fdup z0.d, #4.25000000
+// CHECK-INST: fmov z0.d, #4.25000000
+// CHECK-ENCODING: [0x20,0xc2,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 c2 f9 25 <unknown>
+
+fdup z0.d, #4.50000000
+// CHECK-INST: fmov z0.d, #4.50000000
+// CHECK-ENCODING: [0x40,0xc2,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 c2 f9 25 <unknown>
+
+fdup z0.d, #4.75000000
+// CHECK-INST: fmov z0.d, #4.75000000
+// CHECK-ENCODING: [0x60,0xc2,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 c2 f9 25 <unknown>
+
+fdup z0.d, #5.00000000
+// CHECK-INST: fmov z0.d, #5.00000000
+// CHECK-ENCODING: [0x80,0xc2,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 c2 f9 25 <unknown>
+
+fdup z0.d, #5.25000000
+// CHECK-INST: fmov z0.d, #5.25000000
+// CHECK-ENCODING: [0xa0,0xc2,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 c2 f9 25 <unknown>
+
+fdup z0.d, #5.50000000
+// CHECK-INST: fmov z0.d, #5.50000000
+// CHECK-ENCODING: [0xc0,0xc2,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 c2 f9 25 <unknown>
+
+fdup z0.d, #5.75000000
+// CHECK-INST: fmov z0.d, #5.75000000
+// CHECK-ENCODING: [0xe0,0xc2,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 c2 f9 25 <unknown>
+
+fdup z0.d, #6.00000000
+// CHECK-INST: fmov z0.d, #6.00000000
+// CHECK-ENCODING: [0x00,0xc3,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 c3 f9 25 <unknown>
+
+fdup z0.d, #6.25000000
+// CHECK-INST: fmov z0.d, #6.25000000
+// CHECK-ENCODING: [0x20,0xc3,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 c3 f9 25 <unknown>
+
+fdup z0.d, #6.50000000
+// CHECK-INST: fmov z0.d, #6.50000000
+// CHECK-ENCODING: [0x40,0xc3,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 c3 f9 25 <unknown>
+
+fdup z0.d, #6.75000000
+// CHECK-INST: fmov z0.d, #6.75000000
+// CHECK-ENCODING: [0x60,0xc3,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 c3 f9 25 <unknown>
+
+fdup z0.d, #7.00000000
+// CHECK-INST: fmov z0.d, #7.00000000
+// CHECK-ENCODING: [0x80,0xc3,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 c3 f9 25 <unknown>
+
+fdup z0.d, #7.25000000
+// CHECK-INST: fmov z0.d, #7.25000000
+// CHECK-ENCODING: [0xa0,0xc3,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 c3 f9 25 <unknown>
+
+fdup z0.d, #7.50000000
+// CHECK-INST: fmov z0.d, #7.50000000
+// CHECK-ENCODING: [0xc0,0xc3,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 c3 f9 25 <unknown>
+
+fdup z0.d, #7.75000000
+// CHECK-INST: fmov z0.d, #7.75000000
+// CHECK-ENCODING: [0xe0,0xc3,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 c3 f9 25 <unknown>
+
+fdup z0.d, #8.00000000
+// CHECK-INST: fmov z0.d, #8.00000000
+// CHECK-ENCODING: [0x00,0xc4,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 c4 f9 25 <unknown>
+
+fdup z0.d, #8.50000000
+// CHECK-INST: fmov z0.d, #8.50000000
+// CHECK-ENCODING: [0x20,0xc4,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 c4 f9 25 <unknown>
+
+fdup z0.d, #9.00000000
+// CHECK-INST: fmov z0.d, #9.00000000
+// CHECK-ENCODING: [0x40,0xc4,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 c4 f9 25 <unknown>
+
+fdup z0.d, #9.50000000
+// CHECK-INST: fmov z0.d, #9.50000000
+// CHECK-ENCODING: [0x60,0xc4,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 c4 f9 25 <unknown>
+
+fdup z0.d, #10.00000000
+// CHECK-INST: fmov z0.d, #10.00000000
+// CHECK-ENCODING: [0x80,0xc4,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 c4 f9 25 <unknown>
+
+fdup z0.d, #10.50000000
+// CHECK-INST: fmov z0.d, #10.50000000
+// CHECK-ENCODING: [0xa0,0xc4,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 c4 f9 25 <unknown>
+
+fdup z0.d, #11.00000000
+// CHECK-INST: fmov z0.d, #11.00000000
+// CHECK-ENCODING: [0xc0,0xc4,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 c4 f9 25 <unknown>
+
+fdup z0.d, #11.50000000
+// CHECK-INST: fmov z0.d, #11.50000000
+// CHECK-ENCODING: [0xe0,0xc4,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 c4 f9 25 <unknown>
+
+fdup z0.d, #12.00000000
+// CHECK-INST: fmov z0.d, #12.00000000
+// CHECK-ENCODING: [0x00,0xc5,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 c5 f9 25 <unknown>
+
+fdup z0.d, #12.50000000
+// CHECK-INST: fmov z0.d, #12.50000000
+// CHECK-ENCODING: [0x20,0xc5,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 c5 f9 25 <unknown>
+
+fdup z0.d, #13.00000000
+// CHECK-INST: fmov z0.d, #13.00000000
+// CHECK-ENCODING: [0x40,0xc5,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 c5 f9 25 <unknown>
+
+fdup z0.d, #13.50000000
+// CHECK-INST: fmov z0.d, #13.50000000
+// CHECK-ENCODING: [0x60,0xc5,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 c5 f9 25 <unknown>
+
+fdup z0.d, #14.00000000
+// CHECK-INST: fmov z0.d, #14.00000000
+// CHECK-ENCODING: [0x80,0xc5,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 c5 f9 25 <unknown>
+
+fdup z0.d, #14.50000000
+// CHECK-INST: fmov z0.d, #14.50000000
+// CHECK-ENCODING: [0xa0,0xc5,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 c5 f9 25 <unknown>
+
+fdup z0.d, #15.00000000
+// CHECK-INST: fmov z0.d, #15.00000000
+// CHECK-ENCODING: [0xc0,0xc5,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 c5 f9 25 <unknown>
+
+fdup z0.d, #15.50000000
+// CHECK-INST: fmov z0.d, #15.50000000
+// CHECK-ENCODING: [0xe0,0xc5,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 c5 f9 25 <unknown>
+
+fdup z0.d, #16.00000000
+// CHECK-INST: fmov z0.d, #16.00000000
+// CHECK-ENCODING: [0x00,0xc6,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 c6 f9 25 <unknown>
+
+fdup z0.d, #17.00000000
+// CHECK-INST: fmov z0.d, #17.00000000
+// CHECK-ENCODING: [0x20,0xc6,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 c6 f9 25 <unknown>
+
+fdup z0.d, #18.00000000
+// CHECK-INST: fmov z0.d, #18.00000000
+// CHECK-ENCODING: [0x40,0xc6,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 c6 f9 25 <unknown>
+
+fdup z0.d, #19.00000000
+// CHECK-INST: fmov z0.d, #19.00000000
+// CHECK-ENCODING: [0x60,0xc6,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 c6 f9 25 <unknown>
+
+fdup z0.d, #20.00000000
+// CHECK-INST: fmov z0.d, #20.00000000
+// CHECK-ENCODING: [0x80,0xc6,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 c6 f9 25 <unknown>
+
+fdup z0.d, #21.00000000
+// CHECK-INST: fmov z0.d, #21.00000000
+// CHECK-ENCODING: [0xa0,0xc6,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 c6 f9 25 <unknown>
+
+fdup z0.d, #22.00000000
+// CHECK-INST: fmov z0.d, #22.00000000
+// CHECK-ENCODING: [0xc0,0xc6,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 c6 f9 25 <unknown>
+
+fdup z0.d, #23.00000000
+// CHECK-INST: fmov z0.d, #23.00000000
+// CHECK-ENCODING: [0xe0,0xc6,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 c6 f9 25 <unknown>
+
+fdup z0.d, #24.00000000
+// CHECK-INST: fmov z0.d, #24.00000000
+// CHECK-ENCODING: [0x00,0xc7,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 c7 f9 25 <unknown>
+
+fdup z0.d, #25.00000000
+// CHECK-INST: fmov z0.d, #25.00000000
+// CHECK-ENCODING: [0x20,0xc7,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 20 c7 f9 25 <unknown>
+
+fdup z0.d, #26.00000000
+// CHECK-INST: fmov z0.d, #26.00000000
+// CHECK-ENCODING: [0x40,0xc7,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 40 c7 f9 25 <unknown>
+
+fdup z0.d, #27.00000000
+// CHECK-INST: fmov z0.d, #27.00000000
+// CHECK-ENCODING: [0x60,0xc7,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 60 c7 f9 25 <unknown>
+
+fdup z0.d, #28.00000000
+// CHECK-INST: fmov z0.d, #28.00000000
+// CHECK-ENCODING: [0x80,0xc7,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 80 c7 f9 25 <unknown>
+
+fdup z0.d, #29.00000000
+// CHECK-INST: fmov z0.d, #29.00000000
+// CHECK-ENCODING: [0xa0,0xc7,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: a0 c7 f9 25 <unknown>
+
+fdup z0.d, #30.00000000
+// CHECK-INST: fmov z0.d, #30.00000000
+// CHECK-ENCODING: [0xc0,0xc7,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: c0 c7 f9 25 <unknown>
+
+fdup z0.d, #31.00000000
+// CHECK-INST: fmov z0.d, #31.00000000
+// CHECK-ENCODING: [0xe0,0xc7,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 c7 f9 25 <unknown>

Added: llvm/trunk/test/MC/AArch64/SVE/fmov-diagnostics.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AArch64/SVE/fmov-diagnostics.s?rev=333744&view=auto
==============================================================================
--- llvm/trunk/test/MC/AArch64/SVE/fmov-diagnostics.s (added)
+++ llvm/trunk/test/MC/AArch64/SVE/fmov-diagnostics.s Fri Jun  1 05:54:46 2018
@@ -0,0 +1,64 @@
+// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve  2>&1 < %s| FileCheck %s
+
+// --------------------------------------------------------------------------//
+// Invalid immediates
+
+fmov z0.h, #-0.05859375   // r = -4, n = 15
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fmov z0.h, #-0.05859375   // r = -4, n = 15
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+fmov z0.s, #-0.05859375   // r = -4, n = 15
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fmov z0.s, #-0.05859375   // r = -4, n = 15
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+fmov z0.d, #-0.05859375   // r = -4, n = 15
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fmov z0.d, #-0.05859375   // r = -4, n = 15
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+fmov z0.h, #-64.00000000   // r = 5, n = 32
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fmov z0.h, #-64.00000000   // r = 5, n = 32
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+fmov z0.s, #-64.00000000   // r = 5, n = 32
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fmov z0.s, #-64.00000000   // r = 5, n = 32
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+fmov z0.d, #-64.00000000   // r = 5, n = 32
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fmov z0.d, #-64.00000000   // r = 5, n = 32
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+fmov z0.h, #0.05859375   // r = -4, n = 15
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fmov z0.h, #0.05859375   // r = -4, n = 15
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+fmov z0.s, #0.05859375   // r = -4, n = 15
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fmov z0.s, #0.05859375   // r = -4, n = 15
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+fmov z0.d, #0.05859375   // r = -4, n = 15
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fmov z0.d, #0.05859375   // r = -4, n = 15
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+fmov z0.h, #64.00000000   // r = 5, n = 32
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fmov z0.h, #64.00000000   // r = 5, n = 32
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+fmov z0.s, #64.00000000   // r = 5, n = 32
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fmov z0.s, #64.00000000   // r = 5, n = 32
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+fmov z0.d, #64.00000000   // r = 5, n = 32
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
+// CHECK-NEXT: fmov z0.d, #64.00000000   // r = 5, n = 32
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

Added: llvm/trunk/test/MC/AArch64/SVE/fmov.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AArch64/SVE/fmov.s?rev=333744&view=auto
==============================================================================
--- llvm/trunk/test/MC/AArch64/SVE/fmov.s (added)
+++ llvm/trunk/test/MC/AArch64/SVE/fmov.s Fri Jun  1 05:54:46 2018
@@ -0,0 +1,50 @@
+// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve < %s \
+// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
+// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \
+// RUN:        | FileCheck %s --check-prefix=CHECK-ERROR
+// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve < %s \
+// RUN:        | llvm-objdump -d -mattr=+sve - | FileCheck %s --check-prefix=CHECK-INST
+// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve < %s \
+// RUN:        | llvm-objdump -d - | FileCheck %s --check-prefix=CHECK-UNKNOWN
+
+fmov z0.h, #0.0
+// CHECK-INST: mov     z0.h, #0
+// CHECK-ENCODING: [0x00,0xc0,0x78,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 c0 78 25
+
+fmov z0.s, #0.0
+// CHECK-INST: mov     z0.s, #0
+// CHECK-ENCODING: [0x00,0xc0,0xb8,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 c0 b8 25
+
+fmov z0.d, #0.0
+// CHECK-INST: mov     z0.d, #0
+// CHECK-ENCODING: [0x00,0xc0,0xf8,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 c0 f8 25
+
+fmov z0.h, #-0.12500000
+// CHECK-INST: fmov z0.h, #-0.12500000
+// CHECK-ENCODING: [0x00,0xd8,0x79,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 d8 79 25 <unknown>
+
+fmov z0.s, #-0.12500000
+// CHECK-INST: fmov z0.s, #-0.12500000
+// CHECK-ENCODING: [0x00,0xd8,0xb9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 d8 b9 25 <unknown>
+
+fmov z0.d, #-0.12500000
+// CHECK-INST: fmov z0.d, #-0.12500000
+// CHECK-ENCODING: [0x00,0xd8,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: 00 d8 f9 25 <unknown>
+
+fmov z0.d, #31.00000000
+// CHECK-INST: fmov z0.d, #31.00000000
+// CHECK-ENCODING: [0xe0,0xc7,0xf9,0x25]
+// CHECK-ERROR: instruction requires: sve
+// CHECK-UNKNOWN: e0 c7 f9 25 <unknown>




More information about the llvm-commits mailing list