Index: llvm/trunk/test/tools/llvm-readobj/ARM/attribute-4.s
===================================================================
--- llvm/trunk/test/tools/llvm-readobj/ARM/attribute-4.s
+++ llvm/trunk/test/tools/llvm-readobj/ARM/attribute-4.s
@@ -15,6 +15,13 @@
 @CHECK-OBJ-NEXT: TagName: FP_arch
 @CHECK-OBJ-NEXT: Description: VFPv3-D16
 
+.eabi_attribute  Tag_Advanced_SIMD_arch, 4
+@CHECK:   .eabi_attribute 12, 4
+@CHECK-OBJ: Tag: 12
+@CHECK-OBJ-NEXT: Value: 4
+@CHECK-OBJ-NEXT: TagName: Advanced_SIMD_arch
+@CHECK-OBJ-NEXT: Description: ARMv8.1-a NEON
+
 .eabi_attribute  Tag_PCS_config, 4
 @CHECK:   .eabi_attribute 13, 4
 @CHECK-OBJ: Tag: 13
Index: llvm/trunk/tools/llvm-readobj/ARMAttributeParser.cpp
===================================================================
--- llvm/trunk/tools/llvm-readobj/ARMAttributeParser.cpp
+++ llvm/trunk/tools/llvm-readobj/ARMAttributeParser.cpp
@@ -193,7 +193,7 @@
 void ARMAttributeParser::Advanced_SIMD_arch(AttrType Tag, const uint8_t *Data,
                                             uint32_t &Offset) {
   static const char *Strings[] = {
-    "Not Permitted", "NEONv1", "NEONv2+FMA", "ARMv8-a NEON"
+    "Not Permitted", "NEONv1", "NEONv2+FMA", "ARMv8-a NEON", "ARMv8.1-a NEON"
   };
 
   uint64_t Value = ParseInteger(Data, Offset);