[PATCH] [ARM] Correct fpu attributes used for v8 in ARMAsmPrinter
Bradley Smith
bradley.smith at arm.com
Fri Sep 13 04:30:30 PDT 2013
Added testcase.
http://llvm-reviews.chandlerc.com/D1674
CHANGE SINCE LAST DIFF
http://llvm-reviews.chandlerc.com/D1674?vs=4278&id=4281#toc
Files:
lib/Target/ARM/ARMAsmPrinter.cpp
test/CodeGen/ARM/2010-09-29-mc-asm-header-test.ll
Index: lib/Target/ARM/ARMAsmPrinter.cpp
===================================================================
--- lib/Target/ARM/ARMAsmPrinter.cpp
+++ lib/Target/ARM/ARMAsmPrinter.cpp
@@ -807,8 +807,11 @@
if (Subtarget->hasNEON() && emitFPU) {
/* NEON is not exactly a VFP architecture, but GAS emit one of
- * neon/neon-vfpv4/vfpv3/vfpv2 for .fpu parameters */
- if (Subtarget->hasVFP4())
+ * neon/neon-fp-armv8/neon-vfpv4/vfpv3/vfpv2 for .fpu parameters */
+ if (Subtarget->hasV8FP())
+ AttrEmitter->EmitTextAttribute(ARMBuildAttrs::Advanced_SIMD_arch,
+ "neon-fp-armv8");
+ else if (Subtarget->hasVFP4())
AttrEmitter->EmitTextAttribute(ARMBuildAttrs::Advanced_SIMD_arch,
"neon-vfpv4");
else
@@ -823,7 +826,7 @@
AttrEmitter->EmitAttribute(ARMBuildAttrs::VFP_arch,
ARMBuildAttrs::AllowV8FPA);
if (emitFPU)
- AttrEmitter->EmitTextAttribute(ARMBuildAttrs::VFP_arch, "v8fp");
+ AttrEmitter->EmitTextAttribute(ARMBuildAttrs::VFP_arch, "fp-armv8");
/* VFPv4 + .fpu */
} else if (Subtarget->hasVFP4()) {
AttrEmitter->EmitAttribute(ARMBuildAttrs::VFP_arch,
Index: test/CodeGen/ARM/2010-09-29-mc-asm-header-test.ll
===================================================================
--- test/CodeGen/ARM/2010-09-29-mc-asm-header-test.ll
+++ test/CodeGen/ARM/2010-09-29-mc-asm-header-test.ll
@@ -3,6 +3,7 @@
; RUN: llc < %s -mtriple=thumbv8-linux-gnueabi | FileCheck %s --check-prefix=Vt8
; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mattr=+v8fp | FileCheck %s --check-prefix=V8-V8FP
; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mattr=+neon | FileCheck %s --check-prefix=V8-NEON
+; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mattr=+v8fp -mattr=+neon | FileCheck %s --check-prefix=V8-V8FP-NEON
; This tests that MC/asm header conversion is smooth
;
; V7: .syntax unified
@@ -22,11 +23,17 @@
; V8-V8FP: .syntax unified
; V8-V8FP: .eabi_attribute 6, 14
; V8-V8FP: .eabi_attribute 10, 7
+; V8-V8FP: .fpu fp-armv8
; V8-NEON: .syntax unified
; V8-NEON: .eabi_attribute 6, 14
; V8-NEON: .eabi_attribute 12, 3
+; V8-V8FP-NEON: .syntax unified
+; V8-V8FP-NEON: .eabi_attribute 6, 14
+; V8-V8FP-NEON: .fpu neon-fp-armv8
+; V8-V8FP-NEON: .eabi_attribute 10, 7
+
define i32 @f(i64 %z) {
ret i32 0
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D1674.2.patch
Type: text/x-patch
Size: 2403 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130913/8389f76d/attachment.bin>
More information about the llvm-commits
mailing list