[llvm] [AArch64] Add asssembly/disassembly for FMOP4{A, S} (widening, 2-way, FP16 to FP32) instructions (PR #113346)

Momchil Velikov via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 29 07:21:25 PDT 2024


================
@@ -0,0 +1,243 @@
+// RUN: not llvm-mc -triple=aarch64 -mattr=+sme2p2 < %s 2>&1 | FileCheck %s
+
+// FMOP4A
+
+// Single vectors
+
+fmop4a za0.d, z0.h, z16.h
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid matrix operand
+
+fmop4a za4.s, z0.h, z16.h
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+
+fmop4a za0.s, z0.d, z16.h
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register
+
+fmop4a za0.s, z15.h, z16.h
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register
----------------
momchil-velikov wrote:

If my memory serves me well, I deliberately omitted the part that mentions the specific register range as that depends on the compiler making a guess which would be the correct instruction and that guess depends on which instructions are implemented at the moment. Adding a new instruction can change the guess and thus the error message in effect breaking the test.

https://github.com/llvm/llvm-project/pull/113346


More information about the llvm-commits mailing list