================
@@ -0,0 +1,34 @@
+# RUN: not llvm-mc -triple=riscv32 --mattr=+experimental-zilx %s 2>&1 \
+# RUN:        | FileCheck %s --check-prefixes=CHECK-ERROR,CHECK-RV32-ERROR
+# RUN: not llvm-mc -triple=riscv64 --mattr=+experimental-zilx %s 2>&1 \
+# RUN:        | FileCheck %s --check-prefix=CHECK-ERROR
+
+# Zilx loads take three registers; the memory-operand syntax is not accepted.
----------------
arichardson wrote:

> Ok, I'm actually dropping my aversion to `<reg>(<reg>)`, for the unscaled 
> version because we need to be clear about which is the base (a pointer) and 
> which is the offset (an integer) for RVY.
> 
> I still think it's weird for the scaled version, because the integer gets 
> multiplied by something.

One other option could be to just have something like `lw a0, a1(a2)` expand to 
the zilx load and for scaled maybe it would need to be something like 
`4*<reg>(<reg>)` (although that could be awkward to parse).

I guess it's probably best to defer that until pre/post-increment has been 
defined, and just use the `(reg), reg` syntax.

https://github.com/llvm/llvm-project/pull/209419
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to