[PATCH] D19061: [ARM] Add support for the X asm constraint
Renato Golin via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 13 08:59:14 PDT 2016
rengolin added a comment.
Hi Silviu,
The documentation on the X constraint is... lacking. All it says is "Any operand whatsoever is allowed.". Sigh...
So, before we get support for it, I'd like to see a few examples from user code on how people expect it to work (probably the best we can do for now).
Also, you don't seem to be testing much. I think you need to have better instructions (adds, movs, loads) to make sure we're testing the whole range of the X constraint. I'm guessing *any* operand is a bit vague, but does it support immediates, as well as registers, expressions?
Maybe it'd be easier to create a bug, block PR27197 with it, and explain the expected behaviour, with reproducible C files and command lines.
cheers,
--renato
================
Comment at: lib/Target/ARM/ARMISelLowering.cpp:11450
@@ +11449,3 @@
+const char *ARMTargetLowering::LowerXConstraint(EVT ConstraintVT) const {
+ if (!Subtarget->hasNEON())
+ return "r";
----------------
What about VFP?
================
Comment at: lib/Target/ARM/ARMISelLowering.cpp:11457
@@ +11456,3 @@
+ ConstraintVT.getSizeInBits() == 128))
+ return "w";
+
----------------
No "t" for 32-bit FP registers?
================
Comment at: test/CodeGen/ARM/inlineasm-X-constraint.ll:1
@@ +1,2 @@
+; RUN: llc -mtriple=armv7-none-eabi -mattr=+neon -no-integrated-as %s -o - | FileCheck %s
+
----------------
why do you need -no-integrated-as?
http://reviews.llvm.org/D19061
More information about the llvm-commits
mailing list