summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/ARM/build-attributes-encoding.s11
-rw-r--r--llvm/test/CodeGen/ARM/build-attributes.ll12
-rw-r--r--llvm/test/MC/ARM/directive-eabi_attribute.s6
-rw-r--r--llvm/test/MC/ARM/thumbv8m.s16
-rw-r--r--llvm/test/tools/llvm-readobj/ARM/attribute-0.s7
-rw-r--r--llvm/test/tools/llvm-readobj/ARM/attribute-1.s7
6 files changed, 55 insertions, 4 deletions
diff --git a/llvm/test/CodeGen/ARM/build-attributes-encoding.s b/llvm/test/CodeGen/ARM/build-attributes-encoding.s
index 29f13f09d31..5649726c12b 100644
--- a/llvm/test/CodeGen/ARM/build-attributes-encoding.s
+++ b/llvm/test/CodeGen/ARM/build-attributes-encoding.s
@@ -54,6 +54,9 @@
// Tag_DIV_use (=44)
.eabi_attribute 44, 2
+// Tag_DSP_extension (=46)
+.eabi_attribute 46, 1
+
// Tag_Virtualization_use (=68)
.eabi_attribute 68, 3
@@ -71,15 +74,15 @@
// CHECK-NEXT: ]
// CHECK-NEXT: Address: 0x0
// CHECK-NEXT: Offset: 0x34
-// CHECK-NEXT: Size: 71
+// CHECK-NEXT: Size: 73
// CHECK-NEXT: Link: 0
// CHECK-NEXT: Info: 0
// CHECK-NEXT: AddressAlignment: 1
// CHECK-NEXT: EntrySize: 0
// CHECK-NEXT: SectionData (
-// CHECK-NEXT: 0000: 41460000 00616561 62690001 3C000000
+// CHECK-NEXT: 0000: 41480000 00616561 62690001 3E000000
// CHECK-NEXT: 0010: 05636F72 7465782D 61380006 0A074108
// CHECK-NEXT: 0020: 0109020A 030C0214 01150117 01180119
-// CHECK-NEXT: 0030: 011B001C 0124012A 012C0244 036EA001
-// CHECK-NEXT: 0040: 81013100 FA0101
+// CHECK-NEXT: 0030: 011B001C 0124012A 012C022E 0144036E
+// CHECK-NEXT: 0040: A0018101 3100FA01 01
// CHECK-NEXT: )
diff --git a/llvm/test/CodeGen/ARM/build-attributes.ll b/llvm/test/CodeGen/ARM/build-attributes.ll
index 28fbcd7edc5..561ab9e3c58 100644
--- a/llvm/test/CodeGen/ARM/build-attributes.ll
+++ b/llvm/test/CodeGen/ARM/build-attributes.ll
@@ -29,6 +29,7 @@
; RUN: llc < %s -mtriple=armv8-linux-gnueabi | FileCheck %s --check-prefix=V8-FPARMv8-NEON-CRYPTO
; RUN: llc < %s -mtriple=thumbv8m.base-linux-gnueabi | FileCheck %s --check-prefix=V8MBASELINE
; RUN: llc < %s -mtriple=thumbv8m.main-linux-gnueabi | FileCheck %s --check-prefix=V8MMAINLINE
+; RUN: llc < %s -mtriple=thumbv8m.main-linux-gnueabi -mattr=+dsp | FileCheck %s --check-prefix=V8MMAINLINE_DSP
; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a5 | FileCheck %s --check-prefix=CORTEX-A5-DEFAULT
; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a5 -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-A5-DEFAULT-FAST
; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a5 -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
@@ -391,6 +392,14 @@
; V8MMAINLINE: .eabi_attribute 7, 77
; V8MMAINLINE: .eabi_attribute 8, 0
; V8MMAINLINE: .eabi_attribute 9, 3
+; V8MMAINLINE_DSP-NOT: .eabi_attribute 46
+
+; V8MMAINLINE_DSP: .syntax unified
+; V8MBASELINE_DSP: .eabi_attribute 6, 17
+; V8MBASELINE_DSP: .eabi_attribute 7, 77
+; V8MMAINLINE_DSP: .eabi_attribute 8, 0
+; V8MMAINLINE_DSP: .eabi_attribute 9, 3
+; V8MMAINLINE_DSP: .eabi_attribute 46, 1
; Tag_CPU_unaligned_access
; NO-STRICT-ALIGN: .eabi_attribute 34, 1
@@ -481,6 +490,9 @@
; CORTEX-A7-NOFPU: .eabi_attribute 44, 2
; CORTEX-A7-FPUV4: .eabi_attribute 44, 2
+; Tag_DSP_extension
+; CORTEX-A7-CHECK-NOT: .eabi_attribute 46
+
; Tag_Virtualization_use
; CORTEX-A7-CHECK: .eabi_attribute 68, 3
; CORTEX-A7-NOFPU: .eabi_attribute 68, 3
diff --git a/llvm/test/MC/ARM/directive-eabi_attribute.s b/llvm/test/MC/ARM/directive-eabi_attribute.s
index 74a51ab7279..e848f774b34 100644
--- a/llvm/test/MC/ARM/directive-eabi_attribute.s
+++ b/llvm/test/MC/ARM/directive-eabi_attribute.s
@@ -209,6 +209,12 @@
@ CHECK-OBJ-NEXT: Value: 0
@ CHECK-OBJ-NEXT: TagName: DIV_use
@ CHECK-OBJ-NEXT: Description: If Available
+ .eabi_attribute Tag_DSP_extension, 0
+@ CHECK: .eabi_attribute 46, 0
+@ CHECK-OBJ: Tag: 46
+@ CHECK-OBJ-NEXT: Value: 0
+@ CHECK-OBJ-NEXT: TagName: DSP_extension
+@ CHECK-OBJ-NEXT: Description: Not Permitted
.eabi_attribute Tag_nodefaults, 0
@ CHECK: .eabi_attribute 64, 0
@ CHECK-OBJ: Tag: 64
diff --git a/llvm/test/MC/ARM/thumbv8m.s b/llvm/test/MC/ARM/thumbv8m.s
index 883503a4101..fe7a2df85b9 100644
--- a/llvm/test/MC/ARM/thumbv8m.s
+++ b/llvm/test/MC/ARM/thumbv8m.s
@@ -4,16 +4,30 @@
// RUN: not llvm-mc -triple=thumbv8m.main -show-encoding < %s 2>%t \
// RUN: | FileCheck --check-prefix=CHECK-MAINLINE --check-prefix=CHECK %s
// RUN: FileCheck --check-prefix=UNDEF-MAINLINE --check-prefix=UNDEF < %t %s
+// RUN: not llvm-mc -triple=thumbv8m.main -mattr=+dsp,+t2xtpk -show-encoding < %s 2>%t \
+// RUN: | FileCheck --check-prefix=CHECK-MAINLINE_DSP --check-prefix=CHECK %s
+// RUN: FileCheck --check-prefix=UNDEF-MAINLINE_DSP --check-prefix=UNDEF < %t %s
// Simple check that baseline is v6M and mainline is v7M
// UNDEF-BASELINE: error: instruction requires: thumb2
// UNDEF-MAINLINE-NOT: error: instruction requires:
+// UNDEF-MAINLINE_DSP-NOT: error: instruction requires:
mov.w r0, r0
// Check that .arm is invalid
// UNDEF: target does not support ARM mode
.arm
+// And only +dsp,+t2xtpk has DSP and t2xtpk instructions
+// UNDEF-BASELINE: error: instruction requires: arm-mode
+// UNDEF-MAINLINE: error: instruction requires: arm-mode
+// UNDEF-MAINLINE_DSP-NOT: error: instruction requires:
+qadd16 r0, r0, r0
+// UNDEF-BASELINE: error: instruction requires: arm-mode
+// UNDEF-MAINLINE: error: instruction requires: arm-mode
+// UNDEF-MAINLINE_DSP-NOT: error: instruction requires:
+uxtab16 r0, r1, r2
+
// Instruction availibility checks
// 'Barrier instructions'
@@ -157,10 +171,12 @@ ttat r0, r1
// UNDEF-BASELINE: error: instruction requires: armv8m.main
// CHECK-MAINLINE: vlldm r5 @ encoding: [0x35,0xec,0x00,0x0a]
+// CHECK-MAINLINE_DSP: vlldm r5 @ encoding: [0x35,0xec,0x00,0x0a]
vlldm r5
// UNDEF-BASELINE: error: instruction requires: armv8m.main
// CHECK-MAINLINE: vlstm r10 @ encoding: [0x2a,0xec,0x00,0x0a]
+// CHECK-MAINLINE_DSP: vlstm r10 @ encoding: [0x2a,0xec,0x00,0x0a]
vlstm r10
// New SYSm's
diff --git a/llvm/test/tools/llvm-readobj/ARM/attribute-0.s b/llvm/test/tools/llvm-readobj/ARM/attribute-0.s
index b761dd8f251..bad23957b79 100644
--- a/llvm/test/tools/llvm-readobj/ARM/attribute-0.s
+++ b/llvm/test/tools/llvm-readobj/ARM/attribute-0.s
@@ -225,6 +225,13 @@
@CHECK-OBJ-NEXT: TagName: DIV_use
@CHECK-OBJ-NEXT: Description: If Available
+.eabi_attribute Tag_DSP_extension, 0
+@CHECK: .eabi_attribute 46, 0
+@CHECK-OBJ: Tag: 46
+@CHECK-OBJ-NEXT: Value: 0
+@CHECK-OBJ-NEXT: TagName: DSP_extension
+@CHECK-OBJ-NEXT: Description: Not Permitted
+
.eabi_attribute Tag_Virtualization_use, 0
@CHECK: .eabi_attribute 68, 0
@CHECK-OBJ: Tag: 68
diff --git a/llvm/test/tools/llvm-readobj/ARM/attribute-1.s b/llvm/test/tools/llvm-readobj/ARM/attribute-1.s
index f433cbcc19b..c710bc873f1 100644
--- a/llvm/test/tools/llvm-readobj/ARM/attribute-1.s
+++ b/llvm/test/tools/llvm-readobj/ARM/attribute-1.s
@@ -211,6 +211,13 @@
@CHECK-OBJ-NEXT: TagName: DIV_use
@CHECK-OBJ-NEXT: Description: Not Permitted
+.eabi_attribute Tag_DSP_extension, 1
+@CHECK: .eabi_attribute 46, 1
+@CHECK-OBJ: Tag: 46
+@CHECK-OBJ-NEXT: Value: 1
+@CHECK-OBJ-NEXT: TagName: DSP_extension
+@CHECK-OBJ-NEXT: Description: Permitted
+
.eabi_attribute Tag_Virtualization_use, 1
@CHECK: .eabi_attribute 68, 1
@CHECK-OBJ: Tag: 68
OpenPOWER on IntegriCloud