[PATCH] D146059: [SystemZ] Allow fp/int casting into inline assembly operands

Ulrich Weigand via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 21 07:11:50 PDT 2023


uweigand added a comment.

The 128-bit logic doesn't look quite right to me.   I think what should be used there is:

- "r" constraint - GPR register pair
- "f" constraint - FPR register pair if hard-float, error if soft-float
- "v" constraint - single VR if vector support enabled, error otherwise

In particular, for "f" I believe this should *not* depend on the -march level, that would be very confusing.  (I'm actually not sure GCC is getting this right in all cases either.)   In any case, we definitely need tests verifying this for pre-z13, z13, and z14/later.



================
Comment at: llvm/lib/Target/SystemZ/SystemZISelLowering.cpp:1111
+    else
+      weight = CW_Default;
     break;
----------------
All this `CW_Default` stuff is confusing - isn't this, well, the default?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D146059/new/

https://reviews.llvm.org/D146059



More information about the llvm-commits mailing list