New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
inline asm issue #1036
Comments
Below is a simpler repro. The original fails because lane is a variable instead of a constant (presumably it was a constant once inlined).
Fix under review: https://reviews.llvm.org/D65550 |
From the LLVM review linked above, another option is to use the 'c' modifier for the lane specifier, which is supported by gcc as well. So if we change the above repro to
it works. |
Summary: The A64 assembly language does not require the '#' character to introduce constant immediate operands. Avoid the '#' since the AArch64 asm parser does not accept '#' before the lane specifier and rejects the following: __asm__ ("fmla v2.4s, v0.4s, v1.s[%0]" :: "I"(0x1)) Fix a test to not expect the '#' and add a new test case with the above asm. Fixes: android/ndk#1036 Reviewers: peter.smith, kristof.beyls Subscribers: javed.absar, hiraditya, llvm-commits, srhines Tags: #llvm Differential Revision: https://reviews.llvm.org/D65550 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@368320 91177308-0d34-0410-b5e6-96231b3b80d8
Summary: The A64 assembly language does not require the '#' character to introduce constant immediate operands. Avoid the '#' since the AArch64 asm parser does not accept '#' before the lane specifier and rejects the following: __asm__ ("fmla v2.4s, v0.4s, v1.s[%0]" :: "I"(0x1)) Fix a test to not expect the '#' and add a new test case with the above asm. Fixes: android/ndk#1036 Reviewers: peter.smith, kristof.beyls Subscribers: javed.absar, hiraditya, llvm-commits, srhines Tags: #llvm Differential Revision: https://reviews.llvm.org/D65550 llvm-svn: 368320
The upstream change was merged and will be part of r21. |
Summary: The A64 assembly language does not require the '#' character to introduce constant immediate operands. Avoid the '#' since the AArch64 asm parser does not accept '#' before the lane specifier and rejects the following: __asm__ ("fmla v2.4s, v0.4s, v1.s[%0]" :: "I"(0x1)) Fix a test to not expect the '#' and add a new test case with the above asm. Fixes: android/ndk#1036 Reviewers: peter.smith, kristof.beyls Subscribers: javed.absar, hiraditya, llvm-commits, srhines Tags: #llvm Differential Revision: https://reviews.llvm.org/D65550 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@368320 91177308-0d34-0410-b5e6-96231b3b80d8
Summary: The A64 assembly language does not require the '#' character to introduce constant immediate operands. Avoid the '#' since the AArch64 asm parser does not accept '#' before the lane specifier and rejects the following: __asm__ ("fmla v2.4s, v0.4s, v1.s[%0]" :: "I"(0x1)) Fix a test to not expect the '#' and add a new test case with the above asm. Fixes: android/ndk#1036 Reviewers: peter.smith, kristof.beyls Subscribers: javed.absar, hiraditya, llvm-commits, srhines Tags: #llvm Differential Revision: https://reviews.llvm.org/D65550 Change-Id: I329d38e0e38f1c06aac6ff84c5fd3b48e6ccf080 llvm-svn: 368320
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: mydongistiny <jaysonedson@gmail.com>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: mydongistiny <jaysonedson@gmail.com> Signed-off-by: DennySPB <dennyspb@gmail.com>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: mydongistiny <jaysonedson@gmail.com> Signed-off-by: DennySPB <dennyspb@gmail.com>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: mydongistiny <jaysonedson@gmail.com> Signed-off-by: DennySPB <dennyspb@gmail.com>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: mydongistiny <jaysonedson@gmail.com> Signed-off-by: DennySPB <dennyspb@gmail.com>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: mydongistiny <jaysonedson@gmail.com> Signed-off-by: DennySPB <dennyspb@gmail.com>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com> Signed-off-by: DennySPb <dennyspb@gmail.com>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com> Signed-off-by: spezi77 <spezi7713@gmx.net>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com> Signed-off-by: โฆสสิโล <ghosasilo@pm.me>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Bug: http://b/117842681 Bug: android/ndk#1036 After change https://reviews.llvm.org/D65550, Clang stopped emitting '#' before constants in inline assembly. To accommodate this change, mark the $/# before constants as optional in make_header.py Test: Build with old and new compilers Change-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60 Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com> Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
using the toolchain:
generates
fmla q21.4s, q19.4s, q27.s[#1]
instead offmla q21.4s, q19.4s, q27.s[1]
as it should.Then compilation fails with error: unexpected token in argument list
The text was updated successfully, but these errors were encountered: