[AArch64][Inline-Asm] Return the 32-bit floating point register class
authorAkira Hatanaka <ahatanaka@apple.com>
Thu, 21 Jul 2016 21:39:05 +0000 (21:39 +0000)
committerAkira Hatanaka <ahatanaka@apple.com>
Thu, 21 Jul 2016 21:39:05 +0000 (21:39 +0000)
commitb8d2873d93c1e40d99fae9c25505246f3815c0d7
treefefb2953bcbde7c22e174dfa1f9e3468b14a4c0e
parent395386f91035d2cbc47f490683227b6ccdc816ed
[AArch64][Inline-Asm] Return the 32-bit floating point register class
when constraint "w" is used on a 32-bit operand.

This enables compiling the following code, which used to error out in
the backend:

void foo1(int a) {
  asm volatile ("sqxtn h0, %s0\n" : : "w"(a):);
}

Fixes PR28633.

llvm-svn: 276344
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/test/CodeGen/AArch64/arm64-inline-asm.ll