summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorLogan Chien <tzuhsiang.chien@gmail.com>2013-12-11 17:16:25 +0000
committerLogan Chien <tzuhsiang.chien@gmail.com>2013-12-11 17:16:25 +0000
commit61f848360f4c165ca21d34fc765bb68b25203553 (patch)
tree1595c13484874918b8d7a9c4c418cfe741c9d34b /test
parent7a4d29e569c5e6aee5054bc1069328c8086b0eb6 (diff)
downloadllvm-61f848360f4c165ca21d34fc765bb68b25203553.tar.gz
llvm-61f848360f4c165ca21d34fc765bb68b25203553.tar.bz2
llvm-61f848360f4c165ca21d34fc765bb68b25203553.tar.xz
[arm] Implement ARM .arch directive.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197052 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/MC/ARM/directive-arch-armv2.s30
-rw-r--r--test/MC/ARM/directive-arch-armv2a.s30
-rw-r--r--test/MC/ARM/directive-arch-armv3.s30
-rw-r--r--test/MC/ARM/directive-arch-armv3m.s30
-rw-r--r--test/MC/ARM/directive-arch-armv4.s30
-rw-r--r--test/MC/ARM/directive-arch-armv4t.s30
-rw-r--r--test/MC/ARM/directive-arch-armv5.s30
-rw-r--r--test/MC/ARM/directive-arch-armv5t.s30
-rw-r--r--test/MC/ARM/directive-arch-armv5te.s30
-rw-r--r--test/MC/ARM/directive-arch-armv6-m.s30
-rw-r--r--test/MC/ARM/directive-arch-armv6.s30
-rw-r--r--test/MC/ARM/directive-arch-armv6j.s30
-rw-r--r--test/MC/ARM/directive-arch-armv6t2.s30
-rw-r--r--test/MC/ARM/directive-arch-armv6z.s30
-rw-r--r--test/MC/ARM/directive-arch-armv6zk.s30
-rw-r--r--test/MC/ARM/directive-arch-armv7-a.s30
-rw-r--r--test/MC/ARM/directive-arch-armv7-m.s30
-rw-r--r--test/MC/ARM/directive-arch-armv7-r.s30
-rw-r--r--test/MC/ARM/directive-arch-armv7.s30
-rw-r--r--test/MC/ARM/directive-arch-armv8-a.s31
-rw-r--r--test/MC/ARM/directive-arch-iwmmxt.s30
-rw-r--r--test/MC/ARM/directive-arch-iwmmxt2.s31
22 files changed, 662 insertions, 0 deletions
diff --git a/test/MC/ARM/directive-arch-armv2.s b/test/MC/ARM/directive-arch-armv2.s
new file mode 100644
index 0000000000..a3699226ab
--- /dev/null
+++ b/test/MC/ARM/directive-arch-armv2.s
@@ -0,0 +1,30 @@
+@ Test the .arch directive for armv2
+
+@ This test case will check the default .ARM.attributes value for the
+@ armv2 architecture.
+
+@ RUN: llvm-mc < %s -arch=arm -filetype=asm \
+@ RUN: | FileCheck %s --check-prefix=CHECK-ASM
+@ RUN: llvm-mc < %s -arch=arm -filetype=obj \
+@ RUN: | llvm-readobj -s -sd | FileCheck %s --check-prefix=CHECK-OBJ
+
+ .syntax unified
+ .arch armv2
+
+@ CHECK-ASM: .arch armv2
+
+@ CHECK-OBJ: Name: .ARM.attributes
+@ CHECK-OBJ: Type: SHT_ARM_ATTRIBUTES (0x70000003)
+@ CHECK-OBJ: Flags [ (0x0)
+@ CHECK-OBJ: ]
+@ CHECK-OBJ: Address: 0x0
+@ CHECK-OBJ: Offset: 0x34
+@ CHECK-OBJ: Size: 23
+@ CHECK-OBJ: Link: 0
+@ CHECK-OBJ: Info: 0
+@ CHECK-OBJ: AddressAlignment: 1
+@ CHECK-OBJ: EntrySize: 0
+@ CHECK-OBJ: SectionData (
+@ CHECK-OBJ: 0000: 41160000 00616561 62690001 0C000000 |A....aeabi......|
+@ CHECK-OBJ: 0010: 05320006 010801 |.2.....|
+@ CHECK-OBJ: )
diff --git a/test/MC/ARM/directive-arch-armv2a.s b/test/MC/ARM/directive-arch-armv2a.s
new file mode 100644
index 0000000000..f118a05999
--- /dev/null
+++ b/test/MC/ARM/directive-arch-armv2a.s
@@ -0,0 +1,30 @@
+@ Test the .arch directive for armv2a
+
+@ This test case will check the default .ARM.attributes value for the
+@ armv2a architecture.
+
+@ RUN: llvm-mc < %s -arch=arm -filetype=asm \
+@ RUN: | FileCheck %s --check-prefix=CHECK-ASM
+@ RUN: llvm-mc < %s -arch=arm -filetype=obj \
+@ RUN: | llvm-readobj -s -sd | FileCheck %s --check-prefix=CHECK-OBJ
+
+ .syntax unified
+ .arch armv2a
+
+@ CHECK-ASM: .arch armv2a
+
+@ CHECK-OBJ: Name: .ARM.attributes
+@ CHECK-OBJ: Type: SHT_ARM_ATTRIBUTES (0x70000003)
+@ CHECK-OBJ: Flags [ (0x0)
+@ CHECK-OBJ: ]
+@ CHECK-OBJ: Address: 0x0
+@ CHECK-OBJ: Offset: 0x34
+@ CHECK-OBJ: Size: 24
+@ CHECK-OBJ: Link: 0
+@ CHECK-OBJ: Info: 0
+@ CHECK-OBJ: AddressAlignment: 1
+@ CHECK-OBJ: EntrySize: 0
+@ CHECK-OBJ: SectionData (
+@ CHECK-OBJ: 0000: 41170000 00616561 62690001 0D000000 |A....aeabi......|
+@ CHECK-OBJ: 0010: 05324100 06010801 |.2A.....|
+@ CHECK-OBJ: )
diff --git a/test/MC/ARM/directive-arch-armv3.s b/test/MC/ARM/directive-arch-armv3.s
new file mode 100644
index 0000000000..7b17faaedb
--- /dev/null
+++ b/test/MC/ARM/directive-arch-armv3.s
@@ -0,0 +1,30 @@
+@ Test the .arch directive for armv3
+
+@ This test case will check the default .ARM.attributes value for the
+@ armv3 architecture.
+
+@ RUN: llvm-mc < %s -arch=arm -filetype=asm \
+@ RUN: | FileCheck %s --check-prefix=CHECK-ASM
+@ RUN: llvm-mc < %s -arch=arm -filetype=obj \
+@ RUN: | llvm-readobj -s -sd | FileCheck %s --check-prefix=CHECK-OBJ
+
+ .syntax unified
+ .arch armv3
+
+@ CHECK-ASM: .arch armv3
+
+@ CHECK-OBJ: Name: .ARM.attributes
+@ CHECK-OBJ: Type: SHT_ARM_ATTRIBUTES (0x70000003)
+@ CHECK-OBJ: Flags [ (0x0)
+@ CHECK-OBJ: ]
+@ CHECK-OBJ: Address: 0x0
+@ CHECK-OBJ: Offset: 0x34
+@ CHECK-OBJ: Size: 23
+@ CHECK-OBJ: Link: 0
+@ CHECK-OBJ: Info: 0
+@ CHECK-OBJ: AddressAlignment: 1
+@ CHECK-OBJ: EntrySize: 0
+@ CHECK-OBJ: SectionData (
+@ CHECK-OBJ: 0000: 41160000 00616561 62690001 0C000000 |A....aeabi......|
+@ CHECK-OBJ: 0010: 05330006 010801 |.3.....|
+@ CHECK-OBJ: )
diff --git a/test/MC/ARM/directive-arch-armv3m.s b/test/MC/ARM/directive-arch-armv3m.s
new file mode 100644
index 0000000000..befecc8bde
--- /dev/null
+++ b/test/MC/ARM/directive-arch-armv3m.s
@@ -0,0 +1,30 @@
+@ Test the .arch directive for armv3m
+
+@ This test case will check the default .ARM.attributes value for the
+@ armv3m architecture.
+
+@ RUN: llvm-mc < %s -arch=arm -filetype=asm \
+@ RUN: | FileCheck %s --check-prefix=CHECK-ASM
+@ RUN: llvm-mc < %s -arch=arm -filetype=obj \
+@ RUN: | llvm-readobj -s -sd | FileCheck %s --check-prefix=CHECK-OBJ
+
+ .syntax unified
+ .arch armv3m
+
+@ CHECK-ASM: .arch armv3m
+
+@ CHECK-OBJ: Name: .ARM.attributes
+@ CHECK-OBJ: Type: SHT_ARM_ATTRIBUTES (0x70000003)
+@ CHECK-OBJ: Flags [ (0x0)
+@ CHECK-OBJ: ]
+@ CHECK-OBJ: Address: 0x0
+@ CHECK-OBJ: Offset: 0x34
+@ CHECK-OBJ: Size: 24
+@ CHECK-OBJ: Link: 0
+@ CHECK-OBJ: Info: 0
+@ CHECK-OBJ: AddressAlignment: 1
+@ CHECK-OBJ: EntrySize: 0
+@ CHECK-OBJ: SectionData (
+@ CHECK-OBJ: 0000: 41170000 00616561 62690001 0D000000 |A....aeabi......|
+@ CHECK-OBJ: 0010: 05334D00 06010801 |.3M.....|
+@ CHECK-OBJ: )
diff --git a/test/MC/ARM/directive-arch-armv4.s b/test/MC/ARM/directive-arch-armv4.s
new file mode 100644
index 0000000000..2e0e49f6fd
--- /dev/null
+++ b/test/MC/ARM/directive-arch-armv4.s
@@ -0,0 +1,30 @@
+@ Test the .arch directive for armv4
+
+@ This test case will check the default .ARM.attributes value for the
+@ armv4 architecture.
+
+@ RUN: llvm-mc < %s -arch=arm -filetype=asm \
+@ RUN: | FileCheck %s --check-prefix=CHECK-ASM
+@ RUN: llvm-mc < %s -arch=arm -filetype=obj \
+@ RUN: | llvm-readobj -s -sd | FileCheck %s --check-prefix=CHECK-OBJ
+
+ .syntax unified
+ .arch armv4
+
+@ CHECK-ASM: .arch armv4
+
+@ CHECK-OBJ: Name: .ARM.attributes
+@ CHECK-OBJ: Type: SHT_ARM_ATTRIBUTES (0x70000003)
+@ CHECK-OBJ: Flags [ (0x0)
+@ CHECK-OBJ: ]
+@ CHECK-OBJ: Address: 0x0
+@ CHECK-OBJ: Offset: 0x34
+@ CHECK-OBJ: Size: 23
+@ CHECK-OBJ: Link: 0
+@ CHECK-OBJ: Info: 0
+@ CHECK-OBJ: AddressAlignment: 1
+@ CHECK-OBJ: EntrySize: 0
+@ CHECK-OBJ: SectionData (
+@ CHECK-OBJ: 0000: 41160000 00616561 62690001 0C000000 |A....aeabi......|
+@ CHECK-OBJ: 0010: 05340006 010801 |.4.....|
+@ CHECK-OBJ: )
diff --git a/test/MC/ARM/directive-arch-armv4t.s b/test/MC/ARM/directive-arch-armv4t.s
new file mode 100644
index 0000000000..6a61a38555
--- /dev/null
+++ b/test/MC/ARM/directive-arch-armv4t.s
@@ -0,0 +1,30 @@
+@ Test the .arch directive for armv4t
+
+@ This test case will check the default .ARM.attributes value for the
+@ armv4t architecture.
+
+@ RUN: llvm-mc < %s -arch=arm -filetype=asm \
+@ RUN: | FileCheck %s --check-prefix=CHECK-ASM
+@ RUN: llvm-mc < %s -arch=arm -filetype=obj \
+@ RUN: | llvm-readobj -s -sd | FileCheck %s --check-prefix=CHECK-OBJ
+
+ .syntax unified
+ .arch armv4t
+
+@ CHECK-ASM: .arch armv4t
+
+@ CHECK-OBJ: Name: .ARM.attributes
+@ CHECK-OBJ: Type: SHT_ARM_ATTRIBUTES (0x70000003)
+@ CHECK-OBJ: Flags [ (0x0)
+@ CHECK-OBJ: ]
+@ CHECK-OBJ: Address: 0x0
+@ CHECK-OBJ: Offset: 0x34
+@ CHECK-OBJ: Size: 26
+@ CHECK-OBJ: Link: 0
+@ CHECK-OBJ: Info: 0
+@ CHECK-OBJ: AddressAlignment: 1
+@ CHECK-OBJ: EntrySize: 0
+@ CHECK-OBJ: SectionData (
+@ CHECK-OBJ: 0000: 41190000 00616561 62690001 0F000000 |A....aeabi......|
+@ CHECK-OBJ: 0010: 05345400 06020801 0901 |.4T.......|
+@ CHECK-OBJ: )
diff --git a/test/MC/ARM/directive-arch-armv5.s b/test/MC/ARM/directive-arch-armv5.s
new file mode 100644
index 0000000000..4ef4b29b71
--- /dev/null
+++ b/test/MC/ARM/directive-arch-armv5.s
@@ -0,0 +1,30 @@
+@ Test the .arch directive for armv5
+
+@ This test case will check the default .ARM.attributes value for the
+@ armv5 architecture.
+
+@ RUN: llvm-mc < %s -arch=arm -filetype=asm \
+@ RUN: | FileCheck %s --check-prefix=CHECK-ASM
+@ RUN: llvm-mc < %s -arch=arm -filetype=obj \
+@ RUN: | llvm-readobj -s -sd | FileCheck %s --check-prefix=CHECK-OBJ
+
+ .syntax unified
+ .arch armv5
+
+@ CHECK-ASM: .arch armv5
+
+@ CHECK-OBJ: Name: .ARM.attributes
+@ CHECK-OBJ: Type: SHT_ARM_ATTRIBUTES (0x70000003)
+@ CHECK-OBJ: Flags [ (0x0)
+@ CHECK-OBJ: ]
+@ CHECK-OBJ: Address: 0x0
+@ CHECK-OBJ: Offset: 0x34
+@ CHECK-OBJ: Size: 23
+@ CHECK-OBJ: Link: 0
+@ CHECK-OBJ: Info: 0
+@ CHECK-OBJ: AddressAlignment: 1
+@ CHECK-OBJ: EntrySize: 0
+@ CHECK-OBJ: SectionData (
+@ CHECK-OBJ: 0000: 41160000 00616561 62690001 0C000000 |A....aeabi......|
+@ CHECK-OBJ: 0010: 05350006 030801 |.5.....|
+@ CHECK-OBJ: )
diff --git a/test/MC/ARM/directive-arch-armv5t.s b/test/MC/ARM/directive-arch-armv5t.s
new file mode 100644
index 0000000000..e5950bebca
--- /dev/null
+++ b/test/MC/ARM/directive-arch-armv5t.s
@@ -0,0 +1,30 @@
+@ Test the .arch directive for armv5t
+
+@ This test case will check the default .ARM.attributes value for the
+@ armv5t architecture.
+
+@ RUN: llvm-mc < %s -arch=arm -filetype=asm \
+@ RUN: | FileCheck %s --check-prefix=CHECK-ASM
+@ RUN: llvm-mc < %s -arch=arm -filetype=obj \
+@ RUN: | llvm-readobj -s -sd | FileCheck %s --check-prefix=CHECK-OBJ
+
+ .syntax unified
+ .arch armv5t
+
+@ CHECK-ASM: .arch armv5t
+
+@ CHECK-OBJ: Name: .ARM.attributes
+@ CHECK-OBJ: Type: SHT_ARM_ATTRIBUTES (0x70000003)
+@ CHECK-OBJ: Flags [ (0x0)
+@ CHECK-OBJ: ]
+@ CHECK-OBJ: Address: 0x0
+@ CHECK-OBJ: Offset: 0x34
+@ CHECK-OBJ: Size: 26
+@ CHECK-OBJ: Link: 0
+@ CHECK-OBJ: Info: 0
+@ CHECK-OBJ: AddressAlignment: 1
+@ CHECK-OBJ: EntrySize: 0
+@ CHECK-OBJ: SectionData (
+@ CHECK-OBJ: 0000: 41190000 00616561 62690001 0F000000 |A....aeabi......|
+@ CHECK-OBJ: 0010: 05355400 06030801 0901 |.5T.......|
+@ CHECK-OBJ: )
diff --git a/test/MC/ARM/directive-arch-armv5te.s b/test/MC/ARM/directive-arch-armv5te.s
new file mode 100644
index 0000000000..9e69e37725
--- /dev/null
+++ b/test/MC/ARM/directive-arch-armv5te.s
@@ -0,0 +1,30 @@
+@ Test the .arch directive for armv5te
+
+@ This test case will check the default .ARM.attributes value for the
+@ armv5te architecture.
+
+@ RUN: llvm-mc < %s -arch=arm -filetype=asm \
+@ RUN: | FileCheck %s --check-prefix=CHECK-ASM
+@ RUN: llvm-mc < %s -arch=arm -filetype=obj \
+@ RUN: | llvm-readobj -s -sd | FileCheck %s --check-prefix=CHECK-OBJ
+
+ .syntax unified
+ .arch armv5te
+
+@ CHECK-ASM: .arch armv5te
+
+@ CHECK-OBJ: Name: .ARM.attributes
+@ CHECK-OBJ: Type: SHT_ARM_ATTRIBUTES (0x70000003)
+@ CHECK-OBJ: Flags [ (0x0)
+@ CHECK-OBJ: ]
+@ CHECK-OBJ: Address: 0x0
+@ CHECK-OBJ: Offset: 0x34
+@ CHECK-OBJ: Size: 27
+@ CHECK-OBJ: Link: 0
+@ CHECK-OBJ: Info: 0
+@ CHECK-OBJ: AddressAlignment: 1
+@ CHECK-OBJ: EntrySize: 0
+@ CHECK-OBJ: SectionData (
+@ CHECK-OBJ: 0000: 411A0000 00616561 62690001 10000000 |A....aeabi......|
+@ CHECK-OBJ: 0010: 05355445 00060408 010901 |.5TE.......|
+@ CHECK-OBJ: )
diff --git a/test/MC/ARM/directive-arch-armv6-m.s b/test/MC/ARM/directive-arch-armv6-m.s
new file mode 100644
index 0000000000..81acd73e1a
--- /dev/null
+++ b/test/MC/ARM/directive-arch-armv6-m.s
@@ -0,0 +1,30 @@
+@ Test the .arch directive for armv6-m
+
+@ This test case will check the default .ARM.attributes value for the
+@ armv6-m architecture.
+
+@ RUN: llvm-mc < %s -arch=arm -filetype=asm \
+@ RUN: | FileCheck %s --check-prefix=CHECK-ASM
+@ RUN: llvm-mc < %s -arch=arm -filetype=obj \
+@ RUN: | llvm-readobj -s -sd | FileCheck %s --check-prefix=CHECK-OBJ
+
+ .syntax unified
+ .arch armv6-m
+
+@ CHECK-ASM: .arch armv6-m
+
+@ CHECK-OBJ: Name: .ARM.attributes
+@ CHECK-OBJ: Type: SHT_ARM_ATTRIBUTES (0x70000003)
+@ CHECK-OBJ: Flags [ (0x0)
+@ CHECK-OBJ: ]
+@ CHECK-OBJ: Address: 0x0
+@ CHECK-OBJ: Offset: 0x34
+@ CHECK-OBJ: Size: 27
+@ CHECK-OBJ: Link: 0
+@ CHECK-OBJ: Info: 0
+@ CHECK-OBJ: AddressAlignment: 1
+@ CHECK-OBJ: EntrySize: 0
+@ CHECK-OBJ: SectionData (
+@ CHECK-OBJ: 0000: 411A0000 00616561 62690001 10000000 |A....aeabi......|
+@ CHECK-OBJ: 0010: 05362D4D 00060B07 4D0901 |.6-M....M..|
+@ CHECK-OBJ: )
diff --git a/test/MC/ARM/directive-arch-armv6.s b/test/MC/ARM/directive-arch-armv6.s
new file mode 100644
index 0000000000..f8076ceb8f
--- /dev/null
+++ b/test/MC/ARM/directive-arch-armv6.s
@@ -0,0 +1,30 @@
+@ Test the .arch directive for armv6
+
+@ This test case will check the default .ARM.attributes value for the
+@ armv6 architecture.
+
+@ RUN: llvm-mc < %s -arch=arm -filetype=asm \
+@ RUN: | FileCheck %s --check-prefix=CHECK-ASM
+@ RUN: llvm-mc < %s -arch=arm -filetype=obj \
+@ RUN: | llvm-readobj -s -sd | FileCheck %s --check-prefix=CHECK-OBJ
+
+ .syntax unified
+ .arch armv6
+
+@ CHECK-ASM: .arch armv6
+
+@ CHECK-OBJ: Name: .ARM.attributes
+@ CHECK-OBJ: Type: SHT_ARM_ATTRIBUTES (0x70000003)
+@ CHECK-OBJ: Flags [ (0x0)
+@ CHECK-OBJ: ]
+@ CHECK-OBJ: Address: 0x0
+@ CHECK-OBJ: Offset: 0x34
+@ CHECK-OBJ: Size: 25
+@ CHECK-OBJ: Link: 0
+@ CHECK-OBJ: Info: 0
+@ CHECK-OBJ: AddressAlignment: 1
+@ CHECK-OBJ: EntrySize: 0
+@ CHECK-OBJ: SectionData (
+@ CHECK-OBJ: 0000: 41180000 00616561 62690001 0E000000 |A....aeabi......|
+@ CHECK-OBJ: 0010: 05360006 06080109 01 |.6.......|
+@ CHECK-OBJ: )
diff --git a/test/MC/ARM/directive-arch-armv6j.s b/test/MC/ARM/directive-arch-armv6j.s
new file mode 100644
index 0000000000..e3369464ea
--- /dev/null
+++ b/test/MC/ARM/directive-arch-armv6j.s
@@ -0,0 +1,30 @@
+@ Test the .arch directive for armv6j
+
+@ This test case will check the default .ARM.attributes value for the
+@ armv6j architecture.
+
+@ RUN: llvm-mc < %s -arch=arm -filetype=asm \
+@ RUN: | FileCheck %s --check-prefix=CHECK-ASM
+@ RUN: llvm-mc < %s -arch=arm -filetype=obj \
+@ RUN: | llvm-readobj -s -sd | FileCheck %s --check-prefix=CHECK-OBJ
+
+ .syntax unified
+ .arch armv6j
+
+@ CHECK-ASM: .arch armv6j
+
+@ CHECK-OBJ: Name: .ARM.attributes
+@ CHECK-OBJ: Type: SHT_ARM_ATTRIBUTES (0x70000003)
+@ CHECK-OBJ: Flags [ (0x0)
+@ CHECK-OBJ: ]
+@ CHECK-OBJ: Address: 0x0
+@ CHECK-OBJ: Offset: 0x34
+@ CHECK-OBJ: Size: 26
+@ CHECK-OBJ: Link: 0
+@ CHECK-OBJ: Info: 0
+@ CHECK-OBJ: AddressAlignment: 1
+@ CHECK-OBJ: EntrySize: 0
+@ CHECK-OBJ: SectionData (
+@ CHECK-OBJ: 0000: 41190000 00616561 62690001 0F000000 |A....aeabi......|
+@ CHECK-OBJ: 0010: 05364A00 06060801 0901 |.6J.......|
+@ CHECK-OBJ: )
diff --git a/test/MC/ARM/directive-arch-armv6t2.s b/test/MC/ARM/directive-arch-armv6t2.s
new file mode 100644
index 0000000000..dfaa6d2c63
--- /dev/null
+++ b/test/MC/ARM/directive-arch-armv6t2.s
@@ -0,0 +1,30 @@
+@ Test the .arch directive for armv6t2
+
+@ This test case will check the default .ARM.attributes value for the
+@ armv6t2 architecture.
+
+@ RUN: llvm-mc < %s -arch=arm -filetype=asm \
+@ RUN: | FileCheck %s --check-prefix=CHECK-ASM
+@ RUN: llvm-mc < %s -arch=arm -filetype=obj \
+@ RUN: | llvm-readobj -s -sd | FileCheck %s --check-prefix=CHECK-OBJ
+
+ .syntax unified
+ .arch armv6t2
+
+@ CHECK-ASM: .arch armv6t2
+
+@ CHECK-OBJ: Name: .ARM.attributes
+@ CHECK-OBJ: Type: SHT_ARM_ATTRIBUTES (0x70000003)
+@ CHECK-OBJ: Flags [ (0x0)
+@ CHECK-OBJ: ]
+@ CHECK-OBJ: Address: 0x0
+@ CHECK-OBJ: Offset: 0x34
+@ CHECK-OBJ: Size: 27
+@ CHECK-OBJ: Link: 0
+@ CHECK-OBJ: Info: 0
+@ CHECK-OBJ: AddressAlignment: 1
+@ CHECK-OBJ: EntrySize: 0
+@ CHECK-OBJ: SectionData (
+@ CHECK-OBJ: 0000: 411A0000 00616561 62690001 10000000 |A....aeabi......|
+@ CHECK-OBJ: 0010: 05365432 00060808 010902 |.6T2.......|
+@ CHECK-OBJ: )
diff --git a/test/MC/ARM/directive-arch-armv6z.s b/test/MC/ARM/directive-arch-armv6z.s
new file mode 100644
index 0000000000..077153752f
--- /dev/null
+++ b/test/MC/ARM/directive-arch-armv6z.s
@@ -0,0 +1,30 @@
+@ Test the .arch directive for armv6z
+
+@ This test case will check the default .ARM.attributes value for the
+@ armv6z architecture.
+
+@ RUN: llvm-mc < %s -arch=arm -filetype=asm \
+@ RUN: | FileCheck %s --check-prefix=CHECK-ASM
+@ RUN: llvm-mc < %s -arch=arm -filetype=obj \
+@ RUN: | llvm-readobj -s -sd | FileCheck %s --check-prefix=CHECK-OBJ
+
+ .syntax unified
+ .arch armv6z
+
+@ CHECK-ASM: .arch armv6z
+
+@ CHECK-OBJ: Name: .ARM.attributes
+@ CHECK-OBJ: Type: SHT_ARM_ATTRIBUTES (0x70000003)
+@ CHECK-OBJ: Flags [ (0x0)
+@ CHECK-OBJ: ]
+@ CHECK-OBJ: Address: 0x0
+@ CHECK-OBJ: Offset: 0x34
+@ CHECK-OBJ: Size: 28
+@ CHECK-OBJ: Link: 0
+@ CHECK-OBJ: Info: 0
+@ CHECK-OBJ: AddressAlignment: 1
+@ CHECK-OBJ: EntrySize: 0
+@ CHECK-OBJ: SectionData (
+@ CHECK-OBJ: 0000: 411B0000 00616561 62690001 11000000 |A....aeabi......|
+@ CHECK-OBJ: 0010: 05365A00 06070801 09014401 |.6Z.......D.|
+@ CHECK-OBJ: )
diff --git a/test/MC/ARM/directive-arch-armv6zk.s b/test/MC/ARM/directive-arch-armv6zk.s
new file mode 100644
index 0000000000..f6eca4e1e5
--- /dev/null
+++ b/test/MC/ARM/directive-arch-armv6zk.s
@@ -0,0 +1,30 @@
+@ Test the .arch directive for armv6zk
+
+@ This test case will check the default .ARM.attributes value for the
+@ armv6zk architecture.
+
+@ RUN: llvm-mc < %s -arch=arm -filetype=asm \
+@ RUN: | FileCheck %s --check-prefix=CHECK-ASM
+@ RUN: llvm-mc < %s -arch=arm -filetype=obj \
+@ RUN: | llvm-readobj -s -sd | FileCheck %s --check-prefix=CHECK-OBJ
+
+ .syntax unified
+ .arch armv6zk
+
+@ CHECK-ASM: .arch armv6zk
+
+@ CHECK-OBJ: Name: .ARM.attributes
+@ CHECK-OBJ: Type: SHT_ARM_ATTRIBUTES (0x70000003)
+@ CHECK-OBJ: Flags [ (0x0)
+@ CHECK-OBJ: ]
+@ CHECK-OBJ: Address: 0x0
+@ CHECK-OBJ: Offset: 0x34
+@ CHECK-OBJ: Size: 29
+@ CHECK-OBJ: Link: 0
+@ CHECK-OBJ: Info: 0
+@ CHECK-OBJ: AddressAlignment: 1
+@ CHECK-OBJ: EntrySize: 0
+@ CHECK-OBJ: SectionData (
+@ CHECK-OBJ: 0000: 411C0000 00616561 62690001 12000000 |A....aeabi......|
+@ CHECK-OBJ: 0010: 05365A4B 00060708 01090144 01 |.6ZK.......D.|
+@ CHECK-OBJ: )
diff --git a/test/MC/ARM/directive-arch-armv7-a.s b/test/MC/ARM/directive-arch-armv7-a.s
new file mode 100644
index 0000000000..f36dbc0b5f
--- /dev/null
+++ b/test/MC/ARM/directive-arch-armv7-a.s
@@ -0,0 +1,30 @@
+@ Test the .arch directive for armv7-a
+
+@ This test case will check the default .ARM.attributes value for the
+@ armv7-a architecture.
+
+@ RUN: llvm-mc < %s -arch=arm -filetype=asm \
+@ RUN: | FileCheck %s --check-prefix=CHECK-ASM
+@ RUN: llvm-mc < %s -arch=arm -filetype=obj \
+@ RUN: | llvm-readobj -s -sd | FileCheck %s --check-prefix=CHECK-OBJ
+
+ .syntax unified
+ .arch armv7-a
+
+@ CHECK-ASM: .arch armv7-a
+
+@ CHECK-OBJ: Name: .ARM.attributes
+@ CHECK-OBJ: Type: SHT_ARM_ATTRIBUTES (0x70000003)
+@ CHECK-OBJ: Flags [ (0x0)
+@ CHECK-OBJ: ]
+@ CHECK-OBJ: Address: 0x0
+@ CHECK-OBJ: Offset: 0x34
+@ CHECK-OBJ: Size: 29
+@ CHECK-OBJ: Link: 0
+@ CHECK-OBJ: Info: 0
+@ CHECK-OBJ: AddressAlignment: 1
+@ CHECK-OBJ: EntrySize: 0
+@ CHECK-OBJ: SectionData (
+@ CHECK-OBJ: 0000: 411C0000 00616561 62690001 12000000 |A....aeabi......|
+@ CHECK-OBJ: 0010: 05372D41 00060A07 41080109 02 |.7-A....A....|
+@ CHECK-OBJ: )
diff --git a/test/MC/ARM/directive-arch-armv7-m.s b/test/MC/ARM/directive-arch-armv7-m.s
new file mode 100644
index 0000000000..e3c99b2cc8
--- /dev/null
+++ b/test/MC/ARM/directive-arch-armv7-m.s
@@ -0,0 +1,30 @@
+@ Test the .arch directive for armv7-m
+
+@ This test case will check the default .ARM.attributes value for the
+@ armv7-m architecture.
+
+@ RUN: llvm-mc < %s -arch=arm -filetype=asm \
+@ RUN: | FileCheck %s --check-prefix=CHECK-ASM
+@ RUN: llvm-mc < %s -arch=arm -filetype=obj \
+@ RUN: | llvm-readobj -s -sd | FileCheck %s --check-prefix=CHECK-OBJ
+
+ .syntax unified
+ .arch armv7-m
+
+@ CHECK-ASM: .arch armv7-m
+
+@ CHECK-OBJ: Name: .ARM.attributes
+@ CHECK-OBJ: Type: SHT_ARM_ATTRIBUTES (0x70000003)
+@ CHECK-OBJ: Flags [ (0x0)
+@ CHECK-OBJ: ]
+@ CHECK-OBJ: Address: 0x0
+@ CHECK-OBJ: Offset: 0x34
+@ CHECK-OBJ: Size: 27
+@ CHECK-OBJ: Link: 0
+@ CHECK-OBJ: Info: 0
+@ CHECK-OBJ: AddressAlignment: 1
+@ CHECK-OBJ: EntrySize: 0
+@ CHECK-OBJ: SectionData (
+@ CHECK-OBJ: 0000: 411A0000 00616561 62690001 10000000 |A....aeabi......|
+@ CHECK-OBJ: 0010: 05372D4D 00060A07 4D0902 |.7-M....M..|
+@ CHECK-OBJ: )
diff --git a/test/MC/ARM/directive-arch-armv7-r.s b/test/MC/ARM/directive-arch-armv7-r.s
new file mode 100644
index 0000000000..9d1316c150
--- /dev/null
+++ b/test/MC/ARM/directive-arch-armv7-r.s
@@ -0,0 +1,30 @@
+@ Test the .arch directive for armv7-r
+
+@ This test case will check the default .ARM.attributes value for the
+@ armv7-r architecture.
+
+@ RUN: llvm-mc < %s -arch=arm -filetype=asm \
+@ RUN: | FileCheck %s --check-prefix=CHECK-ASM
+@ RUN: llvm-mc < %s -arch=arm -filetype=obj \
+@ RUN: | llvm-readobj -s -sd | FileCheck %s --check-prefix=CHECK-OBJ
+
+ .syntax unified
+ .arch armv7-r
+
+@ CHECK-ASM: .arch armv7-r
+
+@ CHECK-OBJ: Name: .ARM.attributes
+@ CHECK-OBJ: Type: SHT_ARM_ATTRIBUTES (0x70000003)
+@ CHECK-OBJ: Flags [ (0x0)
+@ CHECK-OBJ: ]
+@ CHECK-OBJ: Address: 0x0
+@ CHECK-OBJ: Offset: 0x34
+@ CHECK-OBJ: Size: 29
+@ CHECK-OBJ: Link: 0
+@ CHECK-OBJ: Info: 0
+@ CHECK-OBJ: AddressAlignment: 1
+@ CHECK-OBJ: EntrySize: 0
+@ CHECK-OBJ: SectionData (
+@ CHECK-OBJ: 0000: 411C0000 00616561 62690001 12000000 |A....aeabi......|
+@ CHECK-OBJ: 0010: 05372D52 00060A07 52080109 02 |.7-R....R....|
+@ CHECK-OBJ: )
diff --git a/test/MC/ARM/directive-arch-armv7.s b/test/MC/ARM/directive-arch-armv7.s
new file mode 100644
index 0000000000..035bcbd9e2
--- /dev/null
+++ b/test/MC/ARM/directive-arch-armv7.s
@@ -0,0 +1,30 @@
+@ Test the .arch directive for armv7
+
+@ This test case will check the default .ARM.attributes value for the
+@ armv7 architecture.
+
+@ RUN: llvm-mc < %s -arch=arm -filetype=asm \
+@ RUN: | FileCheck %s --check-prefix=CHECK-ASM
+@ RUN: llvm-mc < %s -arch=arm -filetype=obj \
+@ RUN: | llvm-readobj -s -sd | FileCheck %s --check-prefix=CHECK-OBJ
+
+ .syntax unified
+ .arch armv7
+
+@ CHECK-ASM: .arch armv7
+
+@ CHECK-OBJ: Name: .ARM.attributes
+@ CHECK-OBJ: Type: SHT_ARM_ATTRIBUTES (0x70000003)
+@ CHECK-OBJ: Flags [ (0x0)
+@ CHECK-OBJ: ]
+@ CHECK-OBJ: Address: 0x0
+@ CHECK-OBJ: Offset: 0x34
+@ CHECK-OBJ: Size: 23
+@ CHECK-OBJ: Link: 0
+@ CHECK-OBJ: Info: 0
+@ CHECK-OBJ: AddressAlignment: 1
+@ CHECK-OBJ: EntrySize: 0
+@ CHECK-OBJ: SectionData (
+@ CHECK-OBJ: 0000: 41160000 00616561 62690001 0C000000 |A....aeabi......|
+@ CHECK-OBJ: 0010: 05370006 0A0902 |.7.....|
+@ CHECK-OBJ: )
diff --git a/test/MC/ARM/directive-arch-armv8-a.s b/test/MC/ARM/directive-arch-armv8-a.s
new file mode 100644
index 0000000000..b7cd9b1329
--- /dev/null
+++ b/test/MC/ARM/directive-arch-armv8-a.s
@@ -0,0 +1,31 @@
+@ Test the .arch directive for armv8-a
+
+@ This test case will check the default .ARM.attributes value for the
+@ armv8-a architecture.
+
+@ RUN: llvm-mc < %s -arch=arm -filetype=asm \
+@ RUN: | FileCheck %s --check-prefix=CHECK-ASM
+@ RUN: llvm-mc < %s -arch=arm -filetype=obj \
+@ RUN: | llvm-readobj -s -sd | FileCheck %s --check-prefix=CHECK-OBJ
+
+ .syntax unified
+ .arch armv8-a
+
+@ CHECK-ASM: .arch armv8-a
+
+@ CHECK-OBJ: Name: .ARM.attributes
+@ CHECK-OBJ: Type: SHT_ARM_ATTRIBUTES (0x70000003)
+@ CHECK-OBJ: Flags [ (0x0)
+@ CHECK-OBJ: ]
+@ CHECK-OBJ: Address: 0x0
+@ CHECK-OBJ: Offset: 0x34
+@ CHECK-OBJ: Size: 33
+@ CHECK-OBJ: Link: 0
+@ CHECK-OBJ: Info: 0
+@ CHECK-OBJ: AddressAlignment: 1
+@ CHECK-OBJ: EntrySize: 0
+@ CHECK-OBJ: SectionData (
+@ CHECK-OBJ: 0000: 41200000 00616561 62690001 16000000 |A ...aeabi......|
+@ CHECK-OBJ: 0010: 05382D41 00060E07 41080109 022A0144 |.8-A....A....*.D|
+@ CHECK-OBJ: 0020: 03 |.|
+@ CHECK-OBJ: )
diff --git a/test/MC/ARM/directive-arch-iwmmxt.s b/test/MC/ARM/directive-arch-iwmmxt.s
new file mode 100644
index 0000000000..1a325e1365
--- /dev/null
+++ b/test/MC/ARM/directive-arch-iwmmxt.s
@@ -0,0 +1,30 @@
+@ Test the .arch directive for iwmmxt
+
+@ This test case will check the default .ARM.attributes value for the
+@ iwmmxt architecture.
+
+@ RUN: llvm-mc < %s -arch=arm -filetype=asm \
+@ RUN: | FileCheck %s --check-prefix=CHECK-ASM
+@ RUN: llvm-mc < %s -arch=arm -filetype=obj \
+@ RUN: | llvm-readobj -s -sd | FileCheck %s --check-prefix=CHECK-OBJ
+
+ .syntax unified
+ .arch iwmmxt
+
+@ CHECK-ASM: .arch iwmmxt
+
+@ CHECK-OBJ: Name: .ARM.attributes
+@ CHECK-OBJ: Type: SHT_ARM_ATTRIBUTES (0x70000003)
+@ CHECK-OBJ: Flags [ (0x0)
+@ CHECK-OBJ: ]
+@ CHECK-OBJ: Address: 0x0
+@ CHECK-OBJ: Offset: 0x34
+@ CHECK-OBJ: Size: 32
+@ CHECK-OBJ: Link: 0
+@ CHECK-OBJ: Info: 0
+@ CHECK-OBJ: AddressAlignment: 1
+@ CHECK-OBJ: EntrySize: 0
+@ CHECK-OBJ: SectionData (
+@ CHECK-OBJ: 0000: 411F0000 00616561 62690001 15000000 |A....aeabi......|
+@ CHECK-OBJ: 0010: 0549574D 4D585400 06040801 09010B01 |.IWMMXT.........|
+@ CHECK-OBJ: )
diff --git a/test/MC/ARM/directive-arch-iwmmxt2.s b/test/MC/ARM/directive-arch-iwmmxt2.s
new file mode 100644
index 0000000000..42f0789d40
--- /dev/null
+++ b/test/MC/ARM/directive-arch-iwmmxt2.s
@@ -0,0 +1,31 @@
+@ Test the .arch directive for iwmmxt2
+
+@ This test case will check the default .ARM.attributes value for the
+@ iwmmxt2 architecture.
+
+@ RUN: llvm-mc < %s -arch=arm -filetype=asm \
+@ RUN: | FileCheck %s --check-prefix=CHECK-ASM
+@ RUN: llvm-mc < %s -arch=arm -filetype=obj \
+@ RUN: | llvm-readobj -s -sd | FileCheck %s --check-prefix=CHECK-OBJ
+
+ .syntax unified
+ .arch iwmmxt2
+
+@ CHECK-ASM: .arch iwmmxt2
+
+@ CHECK-OBJ: Name: .ARM.attributes
+@ CHECK-OBJ: Type: SHT_ARM_ATTRIBUTES (0x70000003)
+@ CHECK-OBJ: Flags [ (0x0)
+@ CHECK-OBJ: ]
+@ CHECK-OBJ: Address: 0x0
+@ CHECK-OBJ: Offset: 0x34
+@ CHECK-OBJ: Size: 33
+@ CHECK-OBJ: Link: 0
+@ CHECK-OBJ: Info: 0
+@ CHECK-OBJ: AddressAlignment: 1
+@ CHECK-OBJ: EntrySize: 0
+@ CHECK-OBJ: SectionData (
+@ CHECK-OBJ: 0000: 41200000 00616561 62690001 16000000 |A ...aeabi......|
+@ CHECK-OBJ: 0010: 0549574D 4D585432 00060408 0109010B |.IWMMXT2........|
+@ CHECK-OBJ: 0020: 02 |.|
+@ CHECK-OBJ: )