llvm.org GIT mirror llvm / fe7581c
ARM: Do not use llc -march in tests. `llc -march` is problematic because it only switches the target architecture, but leaves the operating system unchanged. This occasionally leads to indeterministic tests because the OS from LLVM_DEFAULT_TARGET_TRIPLE is used. However we can simply always use `llc -mtriple` instead. This changes all the tests to do this to avoid people using -march when they copy and paste parts of tests. See also the discussion in https://reviews.llvm.org/D35287 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309755 91177308-0d34-0410-b5e6-96231b3b80d8 Matthias Braun 2 years ago
61 changed file(s) with 98 addition(s) and 100 deletion(s). Raw diff Collapse all Expand all
None ; RUN: llc < %s -march=arm -mtriple=arm-linux-gnueabi
0 ; RUN: llc < %s -mtriple=arm-linux-gnueabi
11 ; PR1279
22
33 %struct.rtx_def = type { i16, i8, i8, %struct.u }
None ; RUN: llc < %s -march=arm -mtriple=arm-linux-gnueabi
0 ; RUN: llc < %s -mtriple=arm-linux-gnueabi
11 ; PR1279
22
33 %struct.CUMULATIVE_ARGS = type { i32, i32, i32, i32, i32, i32 }
None ; RUN: llc < %s -march=arm -mtriple=arm-apple-darwin
0 ; RUN: llc < %s -mtriple=arm-apple-darwin
11
22 %struct.H_TBL = type { [17 x i8], [256 x i8], i32 }
33 %struct.Q_TBL = type { [64 x i16], i32 }
None ; RUN: llc < %s -march=arm | FileCheck %s
0 ; RUN: llc < %s | FileCheck %s
11
22 ; Check that calls to baz and quux are tail-merged.
33 ; CHECK: bl _baz
99
1010 ; ModuleID = 'tail.c'
1111 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
12 target triple = "i686-apple-darwin8"
12 target triple = "arm-apple-darwin8"
1313
1414 define i32 @f(i32 %i, i32 %q) {
1515 entry:
None ; RUN: llc < %s -march=arm -mtriple=arm-linux-gnueabi
0 ; RUN: llc < %s -mtriple=arm-linux-gnueabi
11 ; PR1406
22
33 %struct.AVClass = type { i8*, i8* (i8*)*, %struct.AVOption* }
None ; RUN: llc < %s -march=arm | FileCheck %s
1 ; RUN: llc < %s -march=arm -enable-tail-merge=0 | \
2 ; RUN: FileCheck --check-prefix=NOMERGE %s
0 ; RUN: llc < %s | FileCheck %s
1 ; RUN: llc < %s -enable-tail-merge=0 | FileCheck --check-prefix=NOMERGE %s
32
43 ; Check that tail merging is the default on ARM, and that -enable-tail-merge=0
54 ; works.
1918
2019 ; ModuleID = 'tail.c'
2120 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
22 target triple = "i686-apple-darwin8"
21 target triple = "arm-apple-darwin8"
2322
2423 define i32 @f(i32 %i, i32 %q) {
2524 entry:
None ; RUN: llc < %s -march=arm -mattr=+v6,+vfp2
0 ; RUN: llc < %s -mattr=+v6,+vfp2
11
22 target triple = "arm-apple-darwin9"
33 %struct.FILE_POS = type { i8, i8, i16, i32 }
None ; RUN: llc < %s -march=arm -mattr=+v6,+vfp2
0 ; RUN: llc < %s -mattr=+v6,+vfp2
11
22 target triple = "arm-apple-darwin9"
33 @a = external global double ; [#uses=1]
None ; RUN: llc < %s -march=arm -mtriple=armv6-apple-darwin9
0 ; RUN: llc < %s -mtriple=armv6-apple-darwin9
11
22 @nn = external global i32 ; [#uses=1]
33 @al_len = external global i32 ; [#uses=2]
None ; RUN: llc < %s -march=arm -mtriple=armv6-apple-darwin9
0 ; RUN: llc < %s -mtriple=armv6-apple-darwin9
11
22 @no_mat = external global i32 ; [#uses=1]
33 @no_mis = external global i32 ; [#uses=2]
None ; RUN: llc < %s -march=arm -mtriple=armv6-apple-darwin9
0 ; RUN: llc < %s -mtriple=armv6-apple-darwin9
11
22 @JJ = external global i32* ; [#uses=1]
33
None ; RUN: llc < %s -march=arm -mtriple=armv6-apple-darwin9
0 ; RUN: llc < %s -mtriple=armv6-apple-darwin9
11
22 @r = external global i32 ; [#uses=1]
33 @qr = external global i32 ; [#uses=1]
None ; RUN: llc < %s -march=arm -mtriple=armv6-apple-darwin9
0 ; RUN: llc < %s -mtriple=armv6-apple-darwin9
11
22 @XX = external global i32* ; [#uses=1]
33
None ; RUN: llc < %s -march=arm -mtriple=armv6-apple-darwin9
0 ; RUN: llc < %s -mtriple=armv6-apple-darwin9
11
22 @qr = external global i32 ; [#uses=1]
33 @II = external global i32* ; [#uses=1]
None ; RUN: llc < %s -march=arm -mattr=+neon
0 ; RUN: llc < %s -mattr=+neon
11 ; PR4657
22
33 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:64:64-v128:128:128-a0:0:64"
None ; RUN: llc < %s -march=arm -mattr=+vfp2 -post-RA-scheduler -mcpu=cortex-a8
0 ; RUN: llc < %s -mattr=+vfp2 -post-RA-scheduler -mcpu=cortex-a8
11
22 ; ModuleID = ''
33 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:64:64-v128:128:128-a0:0:64"
None ; RUN: llc < %s -mtriple=arm-apple-darwin9 -march=arm | FileCheck %s
0 ; RUN: llc < %s -mtriple=arm-apple-darwin9 | FileCheck %s
11
22 ; CHECK: ldr r0, [[CPI_PERSONALITY:[A-Za-z0-9_]+]]
33 ; CHECK: ldr r0, [[CPI_LSDA:[A-Za-z0-9_]+]]
None ; RUN: llc -O1 -march=arm -mattr=+vfp2 -mtriple=arm-linux-gnueabi < %s | FileCheck %s
0 ; RUN: llc -O1 -mattr=+vfp2 -mtriple=arm-linux-gnueabi < %s | FileCheck %s
11 ; pr4939
22
33 define void @test(double* %x, double* %y) nounwind {
None ; RUN: llc -march=thumb -mcpu=cortex-a8 -mtriple=thumbv7-eabi -float-abi=hard < %s | FileCheck %s
0 ; RUN: llc -mcpu=cortex-a8 -mtriple=thumbv7-eabi -float-abi=hard < %s | FileCheck %s
11
22 target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:64:64-v128:128:128-a0:0:32-n32"
33 target triple = "thumbv7-apple-darwin10"
None ; RUN: llc < %s -march=arm -mtriple=armv4t-unknown-linux-gnueabi | FileCheck %s
0 ; RUN: llc < %s -mtriple=armv4t-unknown-linux-gnueabi | FileCheck %s
11 ; PR 7433
22 ; XFAIL: *
33
None ; RUN: llc -march=thumb -mcpu=cortex-a8 < %s
0 ; RUN: llc -mcpu=cortex-a8 < %s
11 ; rdar://problem/10137436: sqlite3 miscompile
22 ;
33 ; CHECK: subs
None ; RUN: llc < %s -march=arm -mcpu=cortex-a9 -mattr=+neon,+neonfp -relocation-model=pic
0 ; RUN: llc < %s -mcpu=cortex-a9 -mattr=+neon,+neonfp -relocation-model=pic
11
22 target triple = "armv6-none-linux-gnueabi"
33
0 ; Make sure short memsets on ARM lower to stores, even when optimizing for size.
1 ; RUN: llc -march=arm -mattr=+strict-align < %s | FileCheck %s -check-prefix=CHECK-GENERIC
2 ; RUN: llc -march=arm -mcpu=cortex-a8 < %s | FileCheck %s -check-prefix=CHECK-UNALIGNED
1 ; RUN: llc -mattr=+strict-align < %s | FileCheck %s -check-prefix=CHECK-GENERIC
2 ; RUN: llc -mcpu=cortex-a8 < %s | FileCheck %s -check-prefix=CHECK-UNALIGNED
33
44 target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32-S32"
55 target triple = "thumbv7-apple-ios5.0.0"
None ; RUN: llc -march=arm -mcpu=cortex-a8 -verify-machineinstrs < %s
0 ; RUN: llc -mcpu=cortex-a8 -verify-machineinstrs < %s
11 ; PR12165
22 target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
33 target triple = "arm-none-linux"
None ; RUN: llc -march=thumb -mcpu=cortex-a8 < %s | FileCheck %s
0 ; RUN: llc -mcpu=cortex-a8 < %s | FileCheck %s
11
22 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
3 target triple = "x86_64-apple-macosx10.8.0"
3 target triple = "thumb-apple-macosx10.8.0"
44
55 ; CHECK: foo
66 ; CHECK-NOT: bfi
None ; RUN: llc < %s -mcpu=cortex-a8 -march=thumb
0 ; RUN: llc < %s -mcpu=cortex-a8
11 ; Test that this doesn't crash.
22 ;
33
None ; RUN: llc < %s -march=arm -mtriple=arm-linux-gnu | FileCheck %s
0 ; RUN: llc < %s -mtriple=arm-linux-gnu | FileCheck %s
11
22 define void @f(i32 %a) {
33 entry:
22 ; RUN: llc -mtriple=thumb-eabi -arm-atomic-cfg-tidy=0 -mcpu=arm1156t2-s -mattr=+thumb2 %s -o - | FileCheck -check-prefix=T2 %s
33 ; RUN: llc -mtriple=thumbv8-eabi -arm-atomic-cfg-tidy=0 %s -o - | FileCheck -check-prefix=V8 %s
44
5 ; FIXME: The -march=thumb test doesn't change if -disable-peephole is specified.
5 ; FIXME: The -mtriple=thumb test doesn't change if -disable-peephole is specified.
66
77 %struct.Foo = type { i8* }
88
None ; RUN: llc < %s -march armeb -mtriple arm-eabi -mattr v7,neon -float-abi soft -o - | FileCheck %s
1 ; RUN: llc < %s -march armeb -mtriple arm-eabi -mattr v7,neon -float-abi hard -o - | FileCheck %s -check-prefix CHECK-HARD
0 ; RUN: llc < %s -mtriple armeb-eabi -mattr v7,neon -float-abi soft -o - | FileCheck %s
1 ; RUN: llc < %s -mtriple armeb-eabi -mattr v7,neon -float-abi hard -o - | FileCheck %s -check-prefix CHECK-HARD
22
33 @v2i64 = global <2 x i64> zeroinitializer
44 @v2i32 = global <2 x i32> zeroinitializer
None ; RUN: llc < %s -march=arm -mtriple=arm-linux-gnueabi | FileCheck %s
0 ; RUN: llc < %s -mtriple=arm-linux-gnueabi | FileCheck %s
11
22 %struct.anon = type { i32 (i32, i32, i32)*, i32, i32, [3 x i32], i8*, i8*, i8* }
33 @r = external global [14 x i32] ; <[14 x i32]*> [#uses=4]
0 ; RUN: not llc < %s -mtriple=armv7-eabi -mcpu=cortex-a8 2>&1 | FileCheck %s
1 ; RUN: not llc < %s -march=thumb -mtriple=thumbv7-eabi -mcpu=cortex-a8 2>&1 | FileCheck %s
1 ; RUN: not llc < %s -mtriple=thumbv7-eabi -mcpu=cortex-a8 2>&1 | FileCheck %s
22
33 ; CHECK: LLVM ERROR: Cannot select: intrinsic %llvm.arm.cdp
44 define void @cdp(i32 %a) #0 {
0 ; RUN: not llc < %s -mtriple=armv7-eabi -mcpu=cortex-a8 2>&1 | FileCheck %s
1 ; RUN: not llc < %s -march=thumb -mtriple=thumbv7-eabi -mcpu=cortex-a8 2>&1 | FileCheck %s
1 ; RUN: not llc < %s -mtriple=thumbv7-eabi -mcpu=cortex-a8 2>&1 | FileCheck %s
22
33 ; CHECK: LLVM ERROR: Cannot select: intrinsic %llvm.arm.cdp2
44 define void @cdp2(i32 %a) #0 {
None ; RUN: llc < %s -march=arm | FileCheck %s
0 ; RUN: llc < %s | FileCheck %s
11
22 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
3 target triple = "i386-apple-darwin8"
3 target triple = "arm-apple-darwin8"
44
55 ; Without CSE of libcalls, there are two calls in the output instead of one.
66
None ; RUN: llc < %s -march=arm -mcpu=cortex-a9 -mattr=+neon,+neonfp -float-abi=hard -mtriple armv7-linux-gnueabi | FileCheck %s
0 ; RUN: llc < %s -mcpu=cortex-a9 -mattr=+neon,+neonfp -float-abi=hard -mtriple armv7-linux-gnueabi | FileCheck %s
11
22 ;; This test checks that the ExecutionDepsFix pass performs the domain changes
33 ;; even when some dependencies are propagated through implicit definitions.
None ; RUN: llc < %s -emulated-tls -march=arm -mtriple=arm-linux-androideabi \
0 ; RUN: llc < %s -emulated-tls -mtriple=arm-linux-androideabi \
11 ; RUN: | FileCheck %s
2 ; RUN: llc < %s -emulated-tls -march=arm -mtriple=arm-linux-androideabi \
2 ; RUN: llc < %s -emulated-tls -mtriple=arm-linux-androideabi \
33 ; RUN: -relocation-model=pic | FileCheck %s --check-prefix=PIC
44
55 ; Compared with tls1.ll, emulated mode should not use __aeabi_read_tp or __tls_get_addr.
0 ; RUN: llc < %s -mtriple=thumb-apple-darwin -arm-global-merge -global-merge-group-by-use=false -global-merge-on-const=true | FileCheck %s
1 ; Test the ARMGlobalMerge pass. Use -march=thumb because it has a small
1 ; Test the ARMGlobalMerge pass. Use -mtriple=thumb because it has a small
22 ; value for the maximum offset (127).
33
44 ; A local array that exceeds the maximum offset should not be merged.
None ; RUN: llc -march thumb %s -o - | FileCheck %s
0 ; RUN: llc -mtriple=thumb-- %s -o - | FileCheck %s
11
22 ; This test checks that if-conversion pass is unconditionally added to the pass
33 ; pipeline and is conditionally executed based on the per-function targert-cpu
None ; RUN: llc < %s -march=arm -no-integrated-as
0 ; RUN: llc < %s -no-integrated-as
11 ; ModuleID = 'mult-alt-generic.c'
22 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-n32"
3 target triple = "arm"
3 target triple = "arm--"
44
55 @mout0 = common global i32 0, align 4
66 @min1 = common global i32 0, align 4
None ; RUN: llc < %s -march=arm -mcpu=cortex-a8 | FileCheck %s
0 ; RUN: llc < %s -mtriple=arm-- -mcpu=cortex-a8 | FileCheck %s
11 ; XFAIL: *
22 ; PR11364
33
None ; RUN: llc < %s -march=arm -mtriple=thumbv7-apple-ios7.0.0 -float-abi=hard -mcpu=cortex-a9 -misched-postra -enable-misched -pre-RA-sched=source -scheditins=false | FileCheck %s
0 ; RUN: llc < %s -mtriple=thumbv7-apple-ios7.0.0 -float-abi=hard -mcpu=cortex-a9 -misched-postra -enable-misched -pre-RA-sched=source -scheditins=false | FileCheck %s
11 ;
22 ; Test MI-Sched suppory latency based stalls on in in-order pipeline
33 ; using the new machine model.
None ; RUN: llc < %s -disable-fp-elim -march=arm -mcpu=cortex-a8 -mtriple arm-linux-gnu -target-abi=apcs -o - | FileCheck %s
0 ; RUN: llc < %s -disable-fp-elim -mcpu=cortex-a8 -mtriple arm-linux-gnu -target-abi=apcs -o - | FileCheck %s
11 ; This test is fairly fragile. The goal is to ensure that "large" stack
22 ; objects are allocated closest to the stack protector (i.e., farthest away
33 ; from the Stack Pointer.) In standard SSP mode this means that large (>=
None ; RUN: llc -march thumb -mcpu=cortex-a8 -relocation-model=static %s -o - | FileCheck -check-prefix=NO-OPTION %s
1 ; RUN: llc -march thumb -mcpu=cortex-a8 -relocation-model=static %s -o - -mattr=+long-calls | FileCheck -check-prefix=LONGCALL %s
2 ; RUN: llc -march thumb -mcpu=cortex-a8 -relocation-model=static %s -o - -mattr=-long-calls | FileCheck -check-prefix=NO-LONGCALL %s
3 ; RUN: llc -march thumb -mcpu=cortex-a8 -relocation-model=static %s -o - -O0 | FileCheck -check-prefix=NO-OPTION %s
4 ; RUN: llc -march thumb -mcpu=cortex-a8 -relocation-model=static %s -o - -O0 -mattr=+long-calls | FileCheck -check-prefix=LONGCALL %s
5 ; RUN: llc -march thumb -mcpu=cortex-a8 -relocation-model=static %s -o - -O0 -mattr=-long-calls | FileCheck -check-prefix=NO-LONGCALL %s
0 ; RUN: llc -mtriple=thumb-- -mcpu=cortex-a8 -relocation-model=static %s -o - | FileCheck -check-prefix=NO-OPTION %s
1 ; RUN: llc -mtriple=thumb-- -mcpu=cortex-a8 -relocation-model=static %s -o - -mattr=+long-calls | FileCheck -check-prefix=LONGCALL %s
2 ; RUN: llc -mtriple=thumb-- -mcpu=cortex-a8 -relocation-model=static %s -o - -mattr=-long-calls | FileCheck -check-prefix=NO-LONGCALL %s
3 ; RUN: llc -mtriple=thumb-- -mcpu=cortex-a8 -relocation-model=static %s -o - -O0 | FileCheck -check-prefix=NO-OPTION %s
4 ; RUN: llc -mtriple=thumb-- -mcpu=cortex-a8 -relocation-model=static %s -o - -O0 -mattr=+long-calls | FileCheck -check-prefix=LONGCALL %s
5 ; RUN: llc -mtriple=thumb-- -mcpu=cortex-a8 -relocation-model=static %s -o - -O0 -mattr=-long-calls | FileCheck -check-prefix=NO-LONGCALL %s
66
77 ; NO-OPTION-LABEL: {{_?}}caller0
88 ; NO-OPTION: ldr [[R0:r[0-9]+]], [[L0:.*]]
None ; RUN: llc -march thumb -mcpu=cortex-a8 -relocation-model=static %s -o - | FileCheck -check-prefix=NO-OPTION %s
1 ; RUN: llc -march thumb -mcpu=cortex-a8 -relocation-model=static %s -o - -mattr=-no-movt | FileCheck -check-prefix=USE-MOVT %s
2 ; RUN: llc -march thumb -mcpu=cortex-a8 -relocation-model=static %s -o - -mattr=+no-movt | FileCheck -check-prefix=NO-USE-MOVT %s
3 ; RUN: llc -march thumb -mcpu=cortex-a8 -relocation-model=static %s -o - -O0 | FileCheck -check-prefix=NO-OPTION-O0 %s
4 ; RUN: llc -march thumb -mcpu=cortex-a8 -relocation-model=static %s -o - -O0 -mattr=-no-movt | FileCheck -check-prefix=USE-MOVT-O0 %s
5 ; RUN: llc -march thumb -mcpu=cortex-a8 -relocation-model=static %s -o - -O0 -mattr=+no-movt | FileCheck -check-prefix=NO-USE-MOVT-O0 %s
0 ; RUN: llc -mcpu=cortex-a8 -relocation-model=static %s -o - | FileCheck -check-prefix=NO-OPTION %s
1 ; RUN: llc -mcpu=cortex-a8 -relocation-model=static %s -o - -mattr=-no-movt | FileCheck -check-prefix=USE-MOVT %s
2 ; RUN: llc -mcpu=cortex-a8 -relocation-model=static %s -o - -mattr=+no-movt | FileCheck -check-prefix=NO-USE-MOVT %s
3 ; RUN: llc -mcpu=cortex-a8 -relocation-model=static %s -o - -O0 | FileCheck -check-prefix=NO-OPTION-O0 %s
4 ; RUN: llc -mcpu=cortex-a8 -relocation-model=static %s -o - -O0 -mattr=-no-movt | FileCheck -check-prefix=USE-MOVT-O0 %s
5 ; RUN: llc -mcpu=cortex-a8 -relocation-model=static %s -o - -O0 -mattr=+no-movt | FileCheck -check-prefix=NO-USE-MOVT-O0 %s
66
77 target triple = "thumb-apple-darwin"
88
None ; RUN: llc < %s -mtriple=arm-none-eabi -mcpu=cortex-m23 -march=thumb | \
0 ; RUN: llc < %s -mtriple=thumb-none-eabi -mcpu=cortex-m23 | \
11 ; RUN: FileCheck %s -check-prefix=CHECK
22
33 define i32 @f1(i32 %a, i32 %b) {
None ; RUN: llc -march=arm -mtriple=arm-linux-gnueabi < %s \
0 ; RUN: llc -mtriple=arm-linux-gnueabi < %s \
11 ; RUN: | FileCheck -check-prefix=CHECK-NONPIC -check-prefix=COMMON %s
2 ; RUN: llc -march=arm -mtriple=arm-linux-gnueabi -relocation-model=pic < %s \
2 ; RUN: llc -mtriple=arm-linux-gnueabi -relocation-model=pic < %s \
33 ; RUN: | FileCheck -check-prefix=CHECK-PIC -check-prefix=COMMON %s
4 ; RUN: llc -emulated-tls -march=arm -mtriple=arm-linux-gnueabi < %s \
4 ; RUN: llc -emulated-tls -mtriple=arm-linux-gnueabi < %s \
55 ; RUN: | FileCheck -check-prefix=EMUNONPIC -check-prefix=EMU -check-prefix=COMMON %s
6 ; RUN: llc -emulated-tls -march=arm -mtriple=arm-linux-gnueabi -relocation-model=pic < %s \
6 ; RUN: llc -emulated-tls -mtriple=arm-linux-gnueabi -relocation-model=pic < %s \
77 ; RUN: | FileCheck -check-prefix=EMUPIC -check-prefix=EMU -check-prefix=COMMON %s
88
99
None ; RUN: llc < %s -march=arm -mtriple=arm-linux-gnueabi | FileCheck %s
1 ; RUN: llc < %s -march=arm -mtriple=arm-linux-gnueabi -relocation-model=pic | \
0 ; RUN: llc < %s -mtriple=arm-linux-gnueabi | FileCheck %s
1 ; RUN: llc < %s -mtriple=arm-linux-gnueabi -relocation-model=pic | \
22 ; RUN: FileCheck %s --check-prefix=PIC
33
44
None ; RUN: llc < %s -march=arm -mtriple=arm-linux-gnueabi \
0 ; RUN: llc < %s -mtriple=arm-linux-gnueabi \
11 ; RUN: | FileCheck %s -check-prefix=CHECK-NONPIC
2 ; RUN: llc < %s -march=arm -mtriple=arm-linux-gnueabi \
3 ; RUN: -relocation-model=pic | FileCheck %s -check-prefix=CHECK-PIC
2 ; RUN: llc < %s -mtriple=arm-linux-gnueabi -relocation-model=pic \
3 ; RUN: | FileCheck %s -check-prefix=CHECK-PIC
44
55 @i = external thread_local global i32 ; [#uses=2]
66
None ; RUN: llc -march=arm -mcpu=cortex-a9 < %s | FileCheck -check-prefix=SAFE %s
1 ; RUN: llc -march=arm -mcpu=cortex-a9 -enable-unsafe-fp-math < %s | FileCheck -check-prefix=FAST %s
0 ; RUN: llc -mcpu=cortex-a9 < %s | FileCheck -check-prefix=SAFE %s
1 ; RUN: llc -mcpu=cortex-a9 -enable-unsafe-fp-math < %s | FileCheck -check-prefix=FAST %s
22
33 target triple = "armv7-apple-ios"
44
0 ; RUN: llc < %s -mtriple=armv7-linux-gnueabihf | FileCheck %s -check-prefix=EABI
1 ; RUN: llc < %s -march=arm -mtriple=arm-linux-gnu | FileCheck %s -check-prefix=OABI
1 ; RUN: llc < %s -mtriple=arm-linux-gnu | FileCheck %s -check-prefix=OABI
22
33 define i32 @f(i32 %a, ...) {
44 entry:
0 ; We currently estimate the cost of sext/zext/trunc v8(v16)i32 <-> v8(v16)i8
11 ; instructions as expensive. If lowering is improved the cost model needs to
22 ; change.
3 ; RUN: opt < %s -cost-model -analyze -mtriple=thumbv7-apple-ios6.0.0 -march=arm -mcpu=cortex-a8 | FileCheck %s --check-prefix=COST
3 ; RUN: opt < %s -cost-model -analyze -mtriple=arm-apple-ios6.0.0 -mcpu=cortex-a8 | FileCheck %s --check-prefix=COST
44 %T0_5 = type <8 x i8>
55 %T1_5 = type <8 x i32>
66 ; CHECK-LABEL: func_cvt5:
None ; RUN: llc < %s -march=arm -mtriple=armv7-linux-gnueabihf -arm-atomic-cfg-tidy=0 -float-abi=hard -mcpu=cortex-a9 -O3 | FileCheck %s
0 ; RUN: llc < %s -mtriple=armv7-linux-gnueabihf -arm-atomic-cfg-tidy=0 -float-abi=hard -mcpu=cortex-a9 -O3 | FileCheck %s
11
22 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-n32-S64"
33
None ; RUN: llc -mcpu=swift -march=arm < %s | FileCheck %s
0 ; RUN: llc -mcpu=swift < %s | FileCheck %s
11 target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32-S32"
2 target triple = "thumbv7-apple-ios6.1.0"
2 target triple = "arm-apple-ios6.1.0"
33
44 ;;; Float vectors
55
None ; RUN: llc < %s -march=arm -mtriple=armv7-linux-gnueabihf -arm-atomic-cfg-tidy=0 -float-abi=hard -mcpu=cortex-a9 -O3 | FileCheck %s
0 ; RUN: llc < %s -mtriple=armv7-linux-gnueabihf -arm-atomic-cfg-tidy=0 -float-abi=hard -mcpu=cortex-a9 -O3 | FileCheck %s
11
22 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-n32-S64"
33
None ; RUN: opt < %s -cost-model -analyze -mtriple=thumbv7-apple-ios6.0.0 -march=arm -mcpu=cortex-a8 | FileCheck %s --check-prefix=COST
0 ; RUN: opt < %s -cost-model -analyze -mtriple=arm-apple-ios6.0.0 -mcpu=cortex-a8 | FileCheck %s --check-prefix=COST
11 ; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - | FileCheck %s
22 ; Make sure that ARM backend with NEON handles vselect.
33
None ; RUN: llc < %s -march=arm -mtriple="thumbv7-apple-ios3.0.0" | FileCheck %s
0 ; RUN: llc < %s -mtriple="arm-apple-ios3.0.0" | FileCheck %s
11
22 target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32-S32"
33
None ; RUN: llc < %s -march=arm -mcpu=cortex-a8 -O0 -filetype=obj -o %t.o
1 ; RUN: llc < %s -march=thumb -mcpu=cortex-a8 -O0 -filetype=obj -o %t.o
2 ; RUN: llc < %s -march=arm -mcpu=cortex-a8 -O2 -filetype=obj -verify-machineinstrs -o %t.o
3 ; RUN: llc < %s -march=thumb -mcpu=cortex-a8 -O2 -filetype=obj -verify-machineinstrs -o %t.o
0 ; RUN: llc < %s -mtriple=arm-apple-ios -mcpu=cortex-a8 -O0 -filetype=obj -o %t.o
1 ; RUN: llc < %s -mtriple=thumb-apple-ios -mcpu=cortex-a8 -O0 -filetype=obj -o %t.o
2 ; RUN: llc < %s -mtriple=arm-apple-ios -mcpu=cortex-a8 -O2 -filetype=obj -verify-machineinstrs -o %t.o
3 ; RUN: llc < %s -mtriple=thumb-apple-ios -mcpu=cortex-a8 -O2 -filetype=obj -verify-machineinstrs -o %t.o
44 target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32-S32"
5 target triple = "thumbv7-apple-ios"
65
76 ; This function comes from the Bullet test. It is quite big, and exercises the
87 ; constant island pass a bit. It has caused failures, including
None ; RUN: llc < %s -mtriple=thumbv7-apple-darwin10 -march=thumb -mcpu=cortex-m3 | FileCheck %s -check-prefix=CHECK -check-prefix=CORTEXM3
1 ; RUN: llc < %s -mtriple=thumbv7-apple-darwin10 -march=thumb -mcpu=cortex-m4 | FileCheck %s -check-prefix=CHECK -check-prefix=CORTEXM4
2 ; RUN: llc < %s -mtriple=thumbv7-apple-darwin10 -march=thumb -mcpu=cortex-m7 | FileCheck %s -check-prefix=CHECK -check-prefix=CORTEXM7
3 ; RUN: llc < %s -mtriple=thumbv7-apple-darwin10 -march=thumb -mcpu=cortex-a8 | FileCheck %s -check-prefix=CHECK -check-prefix=CORTEXA8
0 ; RUN: llc < %s -mtriple=thumbv7-apple-darwin10 -mcpu=cortex-m3 | FileCheck %s -check-prefix=CHECK -check-prefix=CORTEXM3
1 ; RUN: llc < %s -mtriple=thumbv7-apple-darwin10 -mcpu=cortex-m4 | FileCheck %s -check-prefix=CHECK -check-prefix=CORTEXM4
2 ; RUN: llc < %s -mtriple=thumbv7-apple-darwin10 -mcpu=cortex-m7 | FileCheck %s -check-prefix=CHECK -check-prefix=CORTEXM7
3 ; RUN: llc < %s -mtriple=thumbv7-apple-darwin10 -mcpu=cortex-a8 | FileCheck %s -check-prefix=CHECK -check-prefix=CORTEXA8
44
55
66 define float @foo(float %a, float %b) {
None ; RUN: llc < %s -march=thumb -mtriple=thumbv7-eabi -mcpu=cortex-a8 -show-mc-encoding | FileCheck %s
0 ; RUN: llc < %s -mtriple=thumbv7-eabi -mcpu=cortex-a8 -show-mc-encoding | FileCheck %s
11 define void @coproc(i8* %i) nounwind {
22 entry:
33 ; CHECK: mrc p7, #1, r{{[0-9]+}}, c1, c1, #4
None ; RUN: llc < %s -march=thumb -mcpu=arm1156t2-s -mattr=+thumb2 \
1 ; RUN: -mtriple=arm-apple-darwin | FileCheck %s -check-prefix=DARWIN
2 ; RUN: llc < %s -march=thumb -mcpu=arm1156t2-s -mattr=+thumb2 \
3 ; RUN: -mtriple=arm-linux-gnueabi | FileCheck %s -check-prefix=LINUX
0 ; RUN: llc < %s -mcpu=arm1156t2-s -mattr=+thumb2 -mtriple=thumb-apple-darwin \
1 ; RUN: | FileCheck %s -check-prefix=DARWIN
2 ; RUN: llc < %s -mcpu=arm1156t2-s -mattr=+thumb2 -mtriple=thumb-linux-gnueabi \
3 ; RUN: | FileCheck %s -check-prefix=LINUX
44
55 define void @test1() {
66 ; DARWIN-LABEL: test1:
None ; RUN: llc < %s -mtriple=thumb-linux-androideabi -march=thumb -mcpu=arm1156t2-s -mattr=+thumb2 -verify-machineinstrs | FileCheck %s -check-prefix=Thumb-android
1 ; RUN: llc < %s -mtriple=thumb-linux-androideabi -march=thumb -mcpu=arm1156t2-s -mattr=+thumb2 -filetype=obj
0 ; RUN: llc < %s -mtriple=thumb-linux-androideabi -mcpu=arm1156t2-s -mattr=+thumb2 -verify-machineinstrs | FileCheck %s -check-prefix=Thumb-android
1 ; RUN: llc < %s -mtriple=thumb-linux-androideabi -mcpu=arm1156t2-s -mattr=+thumb2 -filetype=obj
22
33
44 ; Just to prevent the alloca from being optimized away
0 ; XFAIL: *
11 ; fixme rev16 pattern is not matching
22
3 ; RUN: llc < %s -march=thumb -mcpu=arm1156t2-s -mattr=+thumb2 | grep "rev16\W*r[0-9]*,\W*r[0-9]*" | count 1
3 ; RUN: llc < %s -mtriple=thumb-- -mcpu=arm1156t2-s -mattr=+thumb2 | grep "rev16\W*r[0-9]*,\W*r[0-9]*" | count 1
44
55 ; 0xff00ff00 = 4278255360
66 ; 0x00ff00ff = 16711935