mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-25 05:22:04 +00:00
ARM: fixup more tests to specify the target more explicitly
This changes the tests that were targeting ARM EABI to explicitly specify the environment rather than relying on the default. This breaks with the new Windows on ARM support when running the tests on Windows where the default environment is no longer EABI. Take the opportunity to avoid a pointless redirect (helps when trying to debug with providing a command line invocation which can be copy and pasted) and removing a few greps in favour of FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205541 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+neon -mcpu=cortex-a9
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon -mcpu=cortex-a9 %s -o /dev/null
|
||||
|
||||
define arm_aapcs_vfpcc <4 x float> @foo(i8* nocapture %pBuffer, i32 %numItems) nounwind {
|
||||
%1 = ptrtoint i8* %pBuffer to i32
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+neon | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - | FileCheck %s
|
||||
; pr4926
|
||||
|
||||
define void @test_vget_lanep16() nounwind {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm
|
||||
; RUN: llc -mtriple=arm-eabi %s -o /dev/null
|
||||
|
||||
define void @"java.lang.String::getChars"([84 x i8]* %method, i32 %base_pc, [788 x i8]* %thread) {
|
||||
%1 = sub i32 undef, 48 ; <i32> [#uses=1]
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
; RUN: llc -march=arm -mattr=+neon < %s
|
||||
; Radar 7770501: Don't crash on SELECT and SELECT_CC with NEON vector values.
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o /dev/null
|
||||
; rdar://7770501 : Don't crash on SELECT and SELECT_CC with NEON vector values.
|
||||
|
||||
define void @vDSP_FFT16_copv(float* nocapture %O, float* nocapture %I, i32 %Direction) nounwind {
|
||||
entry:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mcpu=arm1136jf-s
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=arm1136jf-s %s -o /dev/null
|
||||
; Radar 7854640
|
||||
|
||||
define void @test() nounwind {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+neon -O0 -optimize-regalloc -regalloc=basic
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon -O0 -optimize-regalloc -regalloc=basic %s -o /dev/null
|
||||
|
||||
; This test would crash the rewriter when trying to handle a spill after one of
|
||||
; the @llvm.arm.neon.vld3.v8i8 defined three parts of a register.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mcpu=cortex-a8 | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 %s -o - | FileCheck %s
|
||||
; Radar 7872877
|
||||
|
||||
define void @test(float* %fltp, i32 %packedValue, float* %table) nounwind {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+neon
|
||||
; Radar 8084742
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o /dev/null
|
||||
; rdar://8084742
|
||||
|
||||
%struct.__int8x8x2_t = type { [2 x <8 x i8>] }
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+neon
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o /dev/null
|
||||
|
||||
@.str271 = external constant [21 x i8], align 4 ; <[21 x i8]*> [#uses=1]
|
||||
@llvm.used = appending global [1 x i8*] [i8* bitcast (i32 (i32, i8**)* @main to i8*)], section "llvm.metadata" ; <[1 x i8*]*> [#uses=0]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc -march=arm -mcpu=cortex-a8 < %s | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 %s -o - | FileCheck %s
|
||||
|
||||
; Trigger multiple NEON stores.
|
||||
; CHECK: vst1.64
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+neon | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - | FileCheck %s
|
||||
; PR11319
|
||||
|
||||
@i8_res = global <2 x i8> <i8 0, i8 0>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+neon | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - | FileCheck %s
|
||||
; PR11319
|
||||
|
||||
@src1_v2i16 = global <2 x i16> <i16 0, i16 1>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+neon | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - | FileCheck %s
|
||||
|
||||
define <2 x i32> @test1(<2 x double>* %A) {
|
||||
; CHECK: test1
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -float-abi=soft -mcpu=cortex-a9 | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -float-abi=soft -mcpu=cortex-a9 %s -o - | FileCheck %s
|
||||
|
||||
@A = global <4 x float> <float 0., float 1., float 2., float 3.>
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mcpu=cortex-a9 -enable-unsafe-fp-math
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a9 -enable-unsafe-fp-math %s -o /dev/null
|
||||
;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:64:128-a0:0:64-n32-S64"
|
||||
;target triple = "armv7-none-linux-gnueabi"
|
||||
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
; RUN: llc -O1 -march=arm -mcpu=cortex-a9 < %s | FileCheck -check-prefix=A9-CHECK %s
|
||||
; RUN: llc -O1 -march=arm -mcpu=swift < %s | FileCheck -check-prefix=SWIFT-CHECK %s
|
||||
; RUN: llc -O1 -mtriple=arm-eabi -mcpu=cortex-a9 %s -o - \
|
||||
; RUN: | FileCheck -check-prefix=A9-CHECK %s
|
||||
|
||||
; RUN: llc -O1 -mtriple=arm-eabi -mcpu=swift %s -o - \
|
||||
; RUN: | FileCheck -check-prefix=SWIFT-CHECK %s
|
||||
|
||||
; Check that swift doesn't use vmov.32. <rdar://problem/10453003>.
|
||||
|
||||
define <2 x i32> @testuvec(<2 x i32> %A, <2 x i32> %B) nounwind {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc -march=arm -mcpu=swift < %s | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=swift %s -o - | FileCheck %s
|
||||
; <rdar://problem/10451892>
|
||||
|
||||
define void @f(i32 %x, i32* %p) nounwind ssp {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+neon | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - | FileCheck %s
|
||||
|
||||
; PR12281
|
||||
; Test generataion of code for vmull instruction when multiplying 128-bit
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mcpu=arm7tdmi | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=arm7tdmi %s -o - | FileCheck %s
|
||||
|
||||
; movw is only legal for V6T2 and later.
|
||||
; rdar://12300648
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: not llc < %s -march=arm -mcpu=cortex-a8 2>&1 | FileCheck %s
|
||||
; RUN: not llc -mtriple=arm-eabi -mcpu=cortex-a8 %s -o - 2>&1 | FileCheck %s
|
||||
|
||||
; Check for error message:
|
||||
; CHECK: non-trivial scalar-to-vector conversion, possible invalid constraint for vector type
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: not llc < %s -march=arm -mcpu=cortex-a8 2>&1 | FileCheck %s
|
||||
; RUN: not llc -mtriple=arm-eabi -mcpu=cortex-a8 %s -o - 2>&1 | FileCheck %s
|
||||
|
||||
; Check for error message:
|
||||
; CHECK: scalar-to-vector conversion failed, possible invalid constraint for vector type
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+neon -print-before=post-RA-sched > %t 2>&1 && FileCheck < %t %s
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon -print-before=post-RA-sched %s -o - 2>&1 \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
define void @vst(i8* %m, [4 x i64] %v) {
|
||||
entry:
|
||||
|
||||
@@ -1 +1 @@
|
||||
RUN: llc -O0 -march=arm -asm-verbose < %S/../Inputs/DbgValueOtherTargets.ll | FileCheck %S/../Inputs/DbgValueOtherTargets.ll
|
||||
RUN: llc -O0 -mtriple=arm-eabi -asm-verbose %S/../Inputs/DbgValueOtherTargets.ll -o - | FileCheck %S/../Inputs/DbgValueOtherTargets.ll
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
; RUN: llc < %s -march=arm -float-abi=hard -mcpu=cortex-a15 -mattr=+neon,+neonfp | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -float-abi=hard -mcpu=cortex-a15 -mattr=+neon,+neonfp %s -o - \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
; This test checks that the VMLxForwarting feature is disabled for A15.
|
||||
; CHECK: fun_a:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mcpu=cortex-a15 | FileCheck %s
|
||||
; RUN: llc -mtriple=arm -mcpu=cortex-a15 %s -o - | FileCheck %s
|
||||
|
||||
; CHECK: a
|
||||
define i32 @a(i32 %x) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
; REQUIRES: asserts
|
||||
; RUN: llc < %s -march=arm -stats 2>&1 | grep asm-printer | grep 4
|
||||
; RUN: llc -mtriple=arm-eabi -stats %s -o - 2>&1 | FileCheck %s
|
||||
|
||||
define i32 @t1(i32 %a) {
|
||||
%b = mul i32 %a, 9
|
||||
@@ -14,3 +14,6 @@ define i32 @t2(i32 %a) {
|
||||
%d = load i32* %c
|
||||
ret i32 %d
|
||||
}
|
||||
|
||||
; CHECK: 4 asm-printer
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm
|
||||
; RUN: llc -mtriple=arm-eabi %s -o /dev/null
|
||||
|
||||
; Check that codegen for an addrspace cast succeeds without error.
|
||||
define <4 x i32 addrspace(1)*> @f (<4 x i32*> %x) {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
; RUN: llc < %s -march=arm | FileCheck -check-prefix=ARM %s
|
||||
; RUN: llc < %s -march=thumb | FileCheck -check-prefix=THUMB %s
|
||||
; RUN: llc < %s -march=thumb -mcpu=arm1156t2-s -mattr=+thumb2 \
|
||||
; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck -check-prefix=ARM %s
|
||||
; RUN: llc -mtriple=thumb-eabi %s -o - | FileCheck -check-prefix=THUMB %s
|
||||
; RUN: llc -mtriple=thumb-eabi -mcpu=arm1156t2-s -mattr=+thumb2 %s -o - \
|
||||
; RUN: | FileCheck -check-prefix=T2 %s
|
||||
; RUN: llc < %s -mtriple=thumbv8 | FileCheck -check-prefix=V8 %s
|
||||
; RUN: llc -mtriple=thumbv8-eabi %s -o - | FileCheck -check-prefix=V8 %s
|
||||
|
||||
; FIXME: The -march=thumb test doesn't change if -disable-peephole is specified.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm
|
||||
; RUN: llc -mtriple=arm-eabi %s -o /dev/null
|
||||
|
||||
define void @frame_dummy() {
|
||||
entry:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+vfp2 -no-integrated-as | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+vfp2 -no-integrated-as %s -o - | FileCheck %s
|
||||
|
||||
define i32 @foo(float %scale, float %scale2) nounwind {
|
||||
entry:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s
|
||||
|
||||
; This loop is rewritten with an indvar which counts down, which
|
||||
; frees up a register from holding the trip count.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc -march=arm -mcpu=cortex-a9 < %s | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a9 %s -o - | FileCheck %s
|
||||
|
||||
; CHECK-LABEL: max:
|
||||
define i32 @max(i8 %ctx, i32* %ptr, i32 %val)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+v6t2 | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+v6t2 %s -o - | FileCheck %s
|
||||
|
||||
; 4278190095 = 0xff00000f
|
||||
define i32 @f1(i32 %a) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc -march=arm -mattr=+v6t2 < %s | FileCheck %s
|
||||
; RUN: llc -mtriple=arm -mattr=+v6t2 %s -o - | FileCheck %s
|
||||
|
||||
%struct.F = type { [3 x i8], i8 }
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+v7 | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+v7 %s -o - | FileCheck %s
|
||||
|
||||
define i32 @sbfx1(i32 %a) {
|
||||
; CHECK: sbfx1
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s
|
||||
|
||||
define i32 @f1(i32 %a, i32 %b) {
|
||||
%tmp = xor i32 %b, 4294967295
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s
|
||||
|
||||
define i32 @f1(i32 %a, i32 %b) {
|
||||
entry:
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+v4t | FileCheck %s -check-prefix=CHECKV4
|
||||
; RUN: llc < %s -march=arm -mattr=+v5t | FileCheck %s -check-prefix=CHECKV5
|
||||
; RUN: llc < %s -mtriple=armv6-linux-gnueabi\
|
||||
; RUN: -relocation-model=pic | FileCheck %s -check-prefix=CHECKELF
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+v4t %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=CHECKV4
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+v5t %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=CHECKV5
|
||||
|
||||
; RUN: llc -mtriple=armv6-linux-gnueabi -relocation-model=pic %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=CHECKELF
|
||||
|
||||
@t = weak global i32 ()* null ; <i32 ()**> [#uses=1]
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s
|
||||
|
||||
define i64 @f1(i64 %a, i64 %b) {
|
||||
; CHECK-LABEL: f1:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+v5t | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+v5t %s -o - | FileCheck %s
|
||||
|
||||
declare i32 @llvm.ctlz.i32(i32, i1)
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+v6,+vfp2 | \
|
||||
; RUN: grep vcmpe.f32
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+v6,+vfp2 %s -o - | FileCheck %s
|
||||
|
||||
define void @test3(float* %glob, i32 %X) {
|
||||
entry:
|
||||
@@ -18,3 +17,6 @@ UnifiedReturnBlock: ; preds = %entry
|
||||
}
|
||||
|
||||
declare i32 @bar(...)
|
||||
|
||||
; CHECK: vcmpe.f32
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+v6t2 | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+v6t2 %s -o - | FileCheck %s
|
||||
|
||||
declare i32 @llvm.cttz.i32(i32, i1)
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm
|
||||
; RUN: llc -mtriple=arm-eabi %s -o /dev/null
|
||||
|
||||
%struct.comment = type { i8**, i32*, i32, i8* }
|
||||
%struct.info = type { i32, i32, i32, i32, i32, i32, i32, i8* }
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mcpu=cortex-a8 | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 %s -o - | FileCheck %s
|
||||
; rdar://12771555
|
||||
|
||||
define void @foo(i16* %ptr, i32 %a) nounwind {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
; RUN: llc < %s -march=arm
|
||||
; RUN: llc -mtriple=arm-eabi %s -o /dev/null
|
||||
|
||||
@handler_installed.6144.b = external global i1 ; <i1*> [#uses=1]
|
||||
|
||||
define void @__mf_sigusr1_respond() {
|
||||
|
||||
@@ -1,9 +1,20 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s -check-prefix=VFP2
|
||||
; RUN: llc < %s -march=arm -mattr=+neon | FileCheck %s -check-prefix=NFP0
|
||||
; RUN: llc < %s -mtriple=arm-eabi -mcpu=cortex-a8 | FileCheck %s -check-prefix=CORTEXA8
|
||||
; RUN: llc < %s -mtriple=arm-eabi -mcpu=cortex-a8 --enable-unsafe-fp-math | FileCheck %s -check-prefix=CORTEXA8U
|
||||
; RUN: llc < %s -mtriple=arm-darwin -mcpu=cortex-a8 | FileCheck %s -check-prefix=CORTEXA8U
|
||||
; RUN: llc < %s -march=arm -mcpu=cortex-a9 | FileCheck %s -check-prefix=CORTEXA9
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+vfp2 %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=VFP2
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=NFP0
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=CORTEXA8
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 --enable-unsafe-fp-math %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=CORTEXA8U
|
||||
|
||||
; RUN: llc -mtriple=arm-darwin -mcpu=cortex-a8 %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=CORTEXA8U
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a9 %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=CORTEXA9
|
||||
|
||||
define float @test(float %a, float %b) {
|
||||
entry:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s -check-prefix=VFP2
|
||||
; RUN: llc < %s -march=arm -mattr=+neon | FileCheck %s -check-prefix=NFP0
|
||||
; RUN: llc < %s -march=arm -mcpu=cortex-a8 | FileCheck %s -check-prefix=CORTEXA8
|
||||
; RUN: llc < %s -march=arm -mcpu=cortex-a9 | FileCheck %s -check-prefix=CORTEXA9
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+vfp2 %s -o - | FileCheck %s -check-prefix=VFP2
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - | FileCheck %s -check-prefix=NFP0
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 %s -o - | FileCheck %s -check-prefix=CORTEXA8
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a9 %s -o - | FileCheck %s -check-prefix=CORTEXA9
|
||||
|
||||
define float @test(float %a, float %b) {
|
||||
entry:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+vfp2
|
||||
; RUN: llc < %s -march=arm -mattr=vfp2 | not grep vstr.64
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+vfp2 %s -o /dev/null
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=vfp2 %s -o - | FileCheck %s
|
||||
|
||||
define hidden i64 @__fixunsdfdi(double %x) nounwind readnone {
|
||||
entry:
|
||||
@@ -27,3 +27,6 @@ bb7: ; preds = %bb3
|
||||
bb10: ; preds = %entry
|
||||
ret i64 0
|
||||
}
|
||||
|
||||
; CHECK-NOT: vstr.64
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s -check-prefix=VFP2
|
||||
; RUN: llc < %s -march=arm -mattr=+neon | FileCheck %s -check-prefix=NEON
|
||||
; RUN: llc < %s -march=arm -mcpu=cortex-a8 | FileCheck %s -check-prefix=A8
|
||||
; RUN: llc < %s -march=arm -mcpu=cortex-a9 | FileCheck %s -check-prefix=A9
|
||||
; RUN: llc < %s -mtriple=arm-linux-gnueabi -mcpu=cortex-a9 -float-abi=hard | FileCheck %s -check-prefix=HARD
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+vfp2 %s -o - | FileCheck %s -check-prefix=VFP2
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - | FileCheck %s -check-prefix=NEON
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 %s -o - | FileCheck %s -check-prefix=A8
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a9 %s -o - | FileCheck %s -check-prefix=A9
|
||||
; RUN: llc -mtriple=arm-linux-gnueabi -mcpu=cortex-a9 -float-abi=hard %s -o - | FileCheck %s -check-prefix=HARD
|
||||
|
||||
define float @t1(float %acc, float %a, float %b) {
|
||||
entry:
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=vfp2 | not grep fmdrr
|
||||
; RUN: llc < %s -march=arm -mattr=vfp2 | not grep fmrrd
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=vfp2 %s -o - | FileCheck %s
|
||||
|
||||
; naive codegen for this is:
|
||||
; _i:
|
||||
@@ -11,3 +10,8 @@ define i64 @test(double %X) {
|
||||
%Y = bitcast double %X to i64
|
||||
ret i64 %Y
|
||||
}
|
||||
|
||||
; CHECK-LABEL: test:
|
||||
; CHECK-NOT: fmdrr
|
||||
; CHECK-NOT: fmrrd
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s -check-prefix=VFP2
|
||||
; RUN: llc < %s -march=arm -mattr=+neon | FileCheck %s -check-prefix=NEON
|
||||
; RUN: llc < %s -march=arm -mcpu=cortex-a8 | FileCheck %s -check-prefix=A8
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+vfp2 %s -o - | FileCheck %s -check-prefix=VFP2
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - | FileCheck %s -check-prefix=NEON
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 %s -o - | FileCheck %s -check-prefix=A8
|
||||
|
||||
define float @t1(float %acc, float %a, float %b) {
|
||||
entry:
|
||||
|
||||
@@ -1,9 +1,20 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s -check-prefix=VFP2
|
||||
; RUN: llc < %s -march=arm -mattr=+neon | FileCheck %s -check-prefix=NFP0
|
||||
; RUN: llc < %s -mtriple=arm-eabi -mcpu=cortex-a8 | FileCheck %s -check-prefix=CORTEXA8
|
||||
; RUN: llc < %s -mtriple=arm-eabi -mcpu=cortex-a8 --enable-unsafe-fp-math | FileCheck %s -check-prefix=CORTEXA8U
|
||||
; RUN: llc < %s -mtriple=arm-darwin -mcpu=cortex-a8 | FileCheck %s -check-prefix=CORTEXA8U
|
||||
; RUN: llc < %s -march=arm -mcpu=cortex-a9 | FileCheck %s -check-prefix=CORTEXA9
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+vfp2 %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=VFP2
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=NFP0
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=CORTEXA8
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 --enable-unsafe-fp-math %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=CORTEXA8U
|
||||
|
||||
; RUN: llc -mtriple=arm-darwin -mcpu=cortex-a8 %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=CORTEXA8U
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a9 %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=CORTEXA9
|
||||
|
||||
define float @test(float %a, float %b) {
|
||||
entry:
|
||||
|
||||
@@ -1,9 +1,20 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s -check-prefix=VFP2
|
||||
; RUN: llc < %s -march=arm -mattr=+neon | FileCheck %s -check-prefix=NFP0
|
||||
; RUN: llc < %s -mtriple=arm-eabi -mcpu=cortex-a8 | FileCheck %s -check-prefix=CORTEXA8
|
||||
; RUN: llc < %s -mtriple=arm-eabi -mcpu=cortex-a8 --enable-unsafe-fp-math | FileCheck %s -check-prefix=CORTEXA8U
|
||||
; RUN: llc < %s -mtriple=arm-darwin -mcpu=cortex-a8 | FileCheck %s -check-prefix=CORTEXA8U
|
||||
; RUN: llc < %s -march=arm -mcpu=cortex-a9 | FileCheck %s -check-prefix=CORTEXA9
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+vfp2 %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=VFP2
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=NFP0
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=CORTEXA8
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 --enable-unsafe-fp-math %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=CORTEXA8U
|
||||
|
||||
; RUN: llc -mtriple=arm-darwin -mcpu=cortex-a8 %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=CORTEXA8U
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a9 %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=CORTEXA9
|
||||
|
||||
define float @test1(float* %a) {
|
||||
entry:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s -check-prefix=VFP2
|
||||
; RUN: llc < %s -march=arm -mattr=+neon | FileCheck %s -check-prefix=NEON
|
||||
; RUN: llc < %s -march=arm -mcpu=cortex-a8 | FileCheck %s -check-prefix=A8
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+vfp2 %s -o - | FileCheck %s -check-prefix=VFP2
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - | FileCheck %s -check-prefix=NEON
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 %s -o - | FileCheck %s -check-prefix=A8
|
||||
|
||||
define float @t1(float %acc, float %a, float %b) {
|
||||
entry:
|
||||
|
||||
@@ -1,9 +1,20 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s -check-prefix=VFP2
|
||||
; RUN: llc < %s -march=arm -mattr=+neon | FileCheck %s -check-prefix=NEON
|
||||
; RUN: llc < %s -mtriple=arm-eabi -mcpu=cortex-a8 | FileCheck %s -check-prefix=A8
|
||||
; RUN: llc < %s -mtriple=arm-eabi -mcpu=cortex-a8 -regalloc=basic | FileCheck %s -check-prefix=A8
|
||||
; RUN: llc < %s -mtriple=arm-eabi -mcpu=cortex-a8 --enable-unsafe-fp-math | FileCheck %s -check-prefix=A8U
|
||||
; RUN: llc < %s -mtriple=arm-darwin -mcpu=cortex-a8 | FileCheck %s -check-prefix=A8U
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+vfp2 %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=VFP2
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=NEON
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=A8
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 -regalloc=basic %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=A8
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 --enable-unsafe-fp-math %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=A8U
|
||||
|
||||
; RUN: llc -mtriple=arm-darwin -mcpu=cortex-a8 %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=A8U
|
||||
|
||||
define float @t1(float %acc, float %a, float %b) nounwind {
|
||||
entry:
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+v6,+vfp2 | grep vnmul.f64
|
||||
; RUN: llc < %s -march=arm -mattr=+v6,+vfp2 -enable-sign-dependent-rounding-fp-math | grep vmul.f64
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+v6,+vfp2 %s -o - | FileCheck %s
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+v6,+vfp2 -enable-sign-dependent-rounding-fp-math %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix CHECK-ROUNDING
|
||||
|
||||
|
||||
|
||||
define double @t1(double %a, double %b) {
|
||||
@@ -9,3 +12,6 @@ entry:
|
||||
ret double %tmp4
|
||||
}
|
||||
|
||||
; CHECK: vnmul.f64
|
||||
; CHECK-ROUNDING: vmul.f64
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s
|
||||
; RUN: llc < %s -march=arm -mattr=+neon | FileCheck %s
|
||||
; RUN: llc < %s -march=arm -mcpu=cortex-a8 | FileCheck %s
|
||||
; RUN: llc < %s -march=arm -mcpu=cortex-a9 | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+vfp2 %s -o - | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 %s -o - | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a9 %s -o - | FileCheck %s
|
||||
|
||||
define arm_aapcs_vfpcc float @test1(float %a, float %b) nounwind {
|
||||
; CHECK: vnmul.f32 s0, s0, s1
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+v7 | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+v7 %s -o - | FileCheck %s
|
||||
|
||||
define i32 @f(i32 %a) nounwind readnone optsize ssp {
|
||||
entry:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+vfp2
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+vfp2 %s -o /dev/null
|
||||
|
||||
declare void @bar(i64 %x, i64 %y)
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+neon -float-abi=soft | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon -float-abi=soft %s -o - | FileCheck %s
|
||||
|
||||
; CHECK: function1
|
||||
; CHECK-NOT: vmov
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
; RUN: llc -march=arm -mcpu=cortex-a9 -mattr=+vfp4 -enable-unsafe-fp-math < %s | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a9 -mattr=+vfp4 -enable-unsafe-fp-math %s -o - \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
; CHECK: test1
|
||||
define float @test1(float %x) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -float-abi=soft -mattr=+vfp2 | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -float-abi=soft -mattr=+vfp2 %s -o - | FileCheck %s
|
||||
|
||||
define float @f(i32 %a) {
|
||||
;CHECK-LABEL: f:
|
||||
|
||||
@@ -1,9 +1,20 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s -check-prefix=VFP2
|
||||
; RUN: llc < %s -march=arm -mattr=+neon | FileCheck %s -check-prefix=VFP2
|
||||
; RUN: llc < %s -mtriple=arm-eabi -mcpu=cortex-a8 | FileCheck %s -check-prefix=VFP2
|
||||
; RUN: llc < %s -mtriple=arm-eabi -mcpu=cortex-a8 --enable-unsafe-fp-math | FileCheck %s -check-prefix=NEON
|
||||
; RUN: llc < %s -mtriple=arm-darwin -mcpu=cortex-a8 | FileCheck %s -check-prefix=NEON
|
||||
; RUN: llc < %s -march=arm -mcpu=cortex-a9 | FileCheck %s -check-prefix=VFP2
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+vfp2 %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=VFP2
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=VFP2
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=VFP2
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 --enable-unsafe-fp-math %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=NEON
|
||||
|
||||
; RUN: llc -mtriple=arm-darwin -mcpu=cortex-a8 %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=NEON
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a9 %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=VFP2
|
||||
|
||||
define i32 @test1(float %a, float %b) {
|
||||
; VFP2-LABEL: test1:
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
; RUN: llc < %s -march=arm -mcpu=cortex-a8 -mattr=+vfp2 -enable-unsafe-fp-math | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 -mattr=+vfp2 -enable-unsafe-fp-math %s -o - \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
; rdar://7461510
|
||||
; rdar://10964603
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+vfp2 %s -o - | FileCheck %s
|
||||
|
||||
define i32 @f1(float %a) {
|
||||
;CHECK-LABEL: f1:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+vfp3 | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+vfp3 %s -o - | FileCheck %s
|
||||
|
||||
define float @t1(float %x) nounwind readnone optsize {
|
||||
entry:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s --check-prefix=CHECK-VFP
|
||||
; RUN: llc < %s -mtriple=arm-apple-darwin | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+vfp2 %s -o - | FileCheck %s --check-prefix=CHECK-VFP
|
||||
; RUN: llc -mtriple=arm-apple-darwin %s -o - | FileCheck %s
|
||||
|
||||
define float @f1(double %x) {
|
||||
;CHECK-VFP-LABEL: f1:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -float-abi=soft -mattr=+vfp2 | FileCheck %s
|
||||
; RUN: llc -mtriple=arm -float-abi=soft -mattr=+vfp2 %s -o - | FileCheck %s
|
||||
|
||||
define float @f1(float %a) {
|
||||
; CHECK-LABEL: f1:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm
|
||||
; RUN: llc -mtriple=arm-eabi %s -o /dev/null
|
||||
|
||||
define double @t(double %x, double %y) nounwind optsize {
|
||||
entry:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+v6,+vfp2 | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+v6,+vfp2 %s -o - | FileCheck %s
|
||||
|
||||
@i = weak global i32 0 ; <i32*> [#uses=2]
|
||||
@u = weak global i32 0 ; <i32*> [#uses=2]
|
||||
|
||||
@@ -1,8 +1,17 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s -check-prefix=VFP2
|
||||
; RUN: llc < %s -mtriple=arm-eabi -mcpu=cortex-a8 | FileCheck %s -check-prefix=NFP1
|
||||
; RUN: llc < %s -mtriple=arm-eabi -mcpu=cortex-a8 --enable-unsafe-fp-math | FileCheck %s -check-prefix=NFP1U
|
||||
; RUN: llc < %s -mtriple=arm-darwin -mcpu=cortex-a8 | FileCheck %s -check-prefix=NFP1U
|
||||
; RUN: llc < %s -march=arm -mattr=+neon | FileCheck %s -check-prefix=NFP0
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+vfp2 %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=VFP2
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=NFP1
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 --enable-unsafe-fp-math %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=NFP1U
|
||||
|
||||
; RUN: llc -mtriple=arm-darwin -mcpu=cortex-a8 %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=NFP1U
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix=NFP0
|
||||
|
||||
define float @test(float %a, float %b) {
|
||||
entry:
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
; RUN: llc < %s -march=arm
|
||||
; RUN: llc < %s -mtriple=armv6-linux-gnueabi | grep mov | count 1
|
||||
; RUN: llc < %s -mtriple=armv6-linux-gnu --disable-fp-elim | \
|
||||
; RUN: grep mov | count 2
|
||||
; RUN: llc < %s -mtriple=armv6-apple-ios | grep mov | count 2
|
||||
; RUN: llc -mtriple=arm-eabi %s -o /dev/null
|
||||
; RUN: llc -mtriple=armv6-linux-gnueabi %s -o - | FileCheck %s
|
||||
|
||||
; RUN: llc -mtriple=armv6-linux-gnu --disable-fp-elim %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix CHECK-FP-ELIM
|
||||
|
||||
; RUN: llc -mtriple=armv6-apple-ios %s -o - \
|
||||
; RUN: | FileCheck %s -check-prefix CHECK-FP-ELIM
|
||||
|
||||
@str = internal constant [12 x i8] c"Hello World\00"
|
||||
|
||||
@@ -12,3 +15,11 @@ define i32 @main() {
|
||||
}
|
||||
|
||||
declare i32 @puts(i8*)
|
||||
|
||||
; CHECK: mov
|
||||
; CHECK-NOT: mov
|
||||
|
||||
; CHECK-FP-ELIM: mov
|
||||
; CHECK-FP-ELIM: mov
|
||||
; CHECK-FP-ELIM-NOT: mov
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+v4t | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+v4t %s -o - | FileCheck %s
|
||||
|
||||
;; Integer absolute value, should produce something as good as: ARM:
|
||||
;; movs r0, r0
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march arm -mcpu swift -verify-machineinstrs
|
||||
; RUN: llc -mtriple arm-eabi -mcpu swift -verify-machineinstrs %s -o /dev/null
|
||||
|
||||
declare i32 @f(i32 %p0, i32 %p1)
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
; RUN: llc < %s -march=arm -mcpu=cortex-a8 | FileCheck %s -check-prefix=A8
|
||||
; RUN: llc < %s -march=arm -mcpu=swift | FileCheck %s -check-prefix=SWIFT
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 %s -o - | FileCheck %s -check-prefix=A8
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=swift %s -o - | FileCheck %s -check-prefix=SWIFT
|
||||
|
||||
define i32 @t1(i32 %a, i32 %b) {
|
||||
; A8-LABEL: t1:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+v4t | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+v4t %s -o - | FileCheck %s
|
||||
|
||||
define i32 @t1(i32 %a, i32 %b, i32 %c, i32 %d) {
|
||||
; CHECK-LABEL: t1:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
; RUN: llc < %s -march=arm -mcpu=cortex-a8 | FileCheck %s
|
||||
; RUN: llc < %s -march=arm -mattr=+v4t | grep cmpne | count 1
|
||||
; RUN: llc < %s -march=arm -mattr=+v4t | grep bx | count 2
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 %s -o - | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+v4t %s -o - | FileCheck %s -check-prefix CHECK-V4-CMP
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+v4t %s -o - | FileCheck %s -check-prefix CHECK-V4-BX
|
||||
|
||||
define i32 @t1(i32 %a, i32 %b, i32 %c, i32 %d) {
|
||||
; CHECK-LABEL: t1:
|
||||
@@ -22,3 +22,11 @@ cond_next:
|
||||
%tmp15 = add i32 %b, %a
|
||||
ret i32 %tmp15
|
||||
}
|
||||
|
||||
; CHECK-V4-CMP: cmpne
|
||||
; CHECK-V4-CMP-NOT: cmpne
|
||||
|
||||
; CHECK-V4-BX: bx
|
||||
; CHECK-V4-BX: bx
|
||||
; CHECK-V4-BX-NOT: bx
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s
|
||||
|
||||
; Do not if-convert when branches go to the different loops.
|
||||
; CHECK-LABEL: t:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm
|
||||
; RUN: llc -mtriple=arm-eabi %s -o /dev/null
|
||||
|
||||
define fastcc void @t() nounwind {
|
||||
entry:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
; RUN: llc < %s -march=arm
|
||||
; RUN: llc < %s -mtriple=arm-linux
|
||||
; RUN: llc -mtriple=arm-eabi %s -o /dev/null
|
||||
; RUN: llc -mtriple=arm-linux %s -o /dev/null
|
||||
|
||||
define void @foo(<8 x float>* %f, <8 x float>* %g, <4 x i64>* %y)
|
||||
{
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm | not grep CPI
|
||||
; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s
|
||||
|
||||
define i32 @test1(i32 %A) {
|
||||
%B = add i32 %A, -268435441 ; <i32> [#uses=1]
|
||||
@@ -14,3 +14,6 @@ define i32 @test3(i32 %A) {
|
||||
ret i32 %B
|
||||
}
|
||||
|
||||
; CHECK-NOT: CPI
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: not llc < %s -march=arm -mcpu=cortex-a8 2>&1 | FileCheck %s
|
||||
; RUN: not llc -mtriple=arm-eabi -mcpu=cortex-a8 %s -o - 2>&1 | FileCheck %s
|
||||
|
||||
; Check for error message:
|
||||
; CHECK: error: inline asm not supported yet: don't know how to handle tied indirect register inputs
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -no-integrated-as
|
||||
; RUN: llc -mtriple=arm-eabi -no-integrated-as %s -o /dev/null
|
||||
|
||||
; Test ARM-mode "I" constraint, for any Data Processing immediate.
|
||||
define i32 @testI(i32 %x) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+v6
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+v6 %s -o /dev/null
|
||||
|
||||
define i32 @test1(i32 %tmp54) {
|
||||
%tmp56 = tail call i32 asm "uxtb16 $0,$1", "=r,r"( i32 %tmp54 ) ; <i32> [#uses=1]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+vfp2
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+vfp2 %s -o /dev/null
|
||||
|
||||
define double @__ieee754_sqrt(double %x) {
|
||||
%tmp2 = tail call double asm "fsqrtd ${0:P}, ${1:P}", "=w,w"( double %x )
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
; RUN: llc < %s -march=arm -float-abi=soft -mattr=+neon,+v6t2 -no-integrated-as | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -float-abi=soft -mattr=+neon,+v6t2 -no-integrated-as %s -o - \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
; Radar 7449043
|
||||
%struct.int32x4_t = type { <4 x i32> }
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s
|
||||
|
||||
define double @f(double %x) {
|
||||
entry:
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+v6
|
||||
; RUN: llc < %s -mtriple=arm-apple-ios -mattr=+v6 |\
|
||||
; RUN: grep mov | count 3
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+v6 %s -o /dev/null
|
||||
; RUN: llc -mtriple=arm-apple-ios -mattr=+v6 %s -o - | FileCheck %s
|
||||
|
||||
define i32 @test(i32 %x) {
|
||||
%tmp = trunc i32 %x to i16 ; <i16> [#uses=1]
|
||||
@@ -9,3 +8,9 @@ define i32 @test(i32 %x) {
|
||||
}
|
||||
|
||||
declare i32 @f(i32, i16)
|
||||
|
||||
; CHECK: mov
|
||||
; CHECK: mov
|
||||
; CHECK: mov
|
||||
; CHECK-NOT: mov
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc %s -o - -march=arm -mattr=+neon | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - | FileCheck %s
|
||||
|
||||
; This test checks that when inserting one (integer) element into a vector,
|
||||
; the vector is not spuriously copied. "vorr dX, dY, dY" is the way of moving
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s
|
||||
|
||||
define i32 @test1(i32 %X) {
|
||||
; CHECK: lsr{{.*}}#31
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm
|
||||
; RUN: llc -mtriple=arm-eabi %s -o /dev/null
|
||||
|
||||
define void @test1() {
|
||||
%tmp = alloca [ 64 x i32 ] , align 4
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s
|
||||
|
||||
define i32 @f1(i32* %v) {
|
||||
; CHECK-LABEL: f1:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s
|
||||
|
||||
define i32 @test1(i8* %t1) nounwind {
|
||||
; CHECK: ldrb
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm -mattr=+v4t | not grep mov
|
||||
; RUN: llc -mtriple=arm-eabi -mattr=+v4t %s -o - | FileCheck %s
|
||||
|
||||
define i32 @f1() {
|
||||
%buf = alloca [32 x i32], align 4
|
||||
@@ -29,3 +29,6 @@ define i32 @f4() {
|
||||
%tmp2 = zext i8 %tmp1 to i32
|
||||
ret i32 %tmp2
|
||||
}
|
||||
|
||||
; CHECK-NOT: mov
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
; RUN: llc < %s -march=arm | FileCheck %s
|
||||
; RUN: llc < %s -march=arm -mcpu=swift | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=swift %s -o - | FileCheck %s
|
||||
|
||||
; CHECK-LABEL: test1:
|
||||
; CHECK: ldr {{.*, \[.*]}}, -r2
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
; RUN: llc < %s -march=arm | FileCheck %s
|
||||
; RUN: llc < %s -march=arm -mcpu=swift | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi -mcpu=swift %s -o - | FileCheck %s
|
||||
|
||||
; CHECK-LABEL: test1:
|
||||
; CHECK: ldr {{.*!}}
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
; RUN: llc < %s -march=arm > %t
|
||||
; RUN: grep ldrsb %t
|
||||
; RUN: grep ldrb %t
|
||||
; RUN: grep ldrsh %t
|
||||
; RUN: grep ldrh %t
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s
|
||||
|
||||
define i32 @f1(i8* %p) {
|
||||
entry:
|
||||
@@ -32,3 +27,9 @@ entry:
|
||||
%tmp4 = zext i16 %tmp to i32 ; <i32> [#uses=1]
|
||||
ret i32 %tmp4
|
||||
}
|
||||
|
||||
; CHECK: ldrsb
|
||||
; CHECK: ldrb
|
||||
; CHECK: ldrsh
|
||||
; CHECK: ldrh
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
; RUN: llc < %s -march=arm | grep cmp | count 1
|
||||
|
||||
; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s
|
||||
|
||||
define i1 @t1(i64 %x) {
|
||||
%B = icmp slt i64 %x, 0
|
||||
@@ -15,3 +14,7 @@ define i1 @t3(i32 %x) {
|
||||
%tmp = icmp ugt i32 %x, -1
|
||||
ret i1 %tmp
|
||||
}
|
||||
|
||||
; CHECK: cmp
|
||||
; CHECK-NOT: cmp
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -march=arm | FileCheck %s
|
||||
; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s
|
||||
|
||||
define i64 @f1() {
|
||||
; CHECK-LABEL: f1:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
; RUN: llc < %s -march=arm | FileCheck %s
|
||||
; RUN: llc < %s -mtriple=armv7 | FileCheck %s --check-prefix=CHECK-V7
|
||||
; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s
|
||||
; RUN: llc -mtriple=armv7-eabi %s -o - | FileCheck %s --check-prefix=CHECK-V7
|
||||
; Check generated signed and unsigned multiply accumulate long.
|
||||
|
||||
define i64 @MACLongTest1(i32 %a, i32 %b, i64 %c) {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user