diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/CodeGen/ARM/2011-04-11-MachineLICMBug.ll | 7 | ||||
-rw-r--r-- | test/CodeGen/ARM/2011-08-25-ldmia_ret.ll | 2 | ||||
-rw-r--r-- | test/CodeGen/ARM/2012-08-30-select.ll | 9 | ||||
-rw-r--r-- | test/CodeGen/ARM/2013-10-11-select-stalls.ll | 16 | ||||
-rw-r--r-- | test/CodeGen/Thumb2/v8_IT_1.ll | 5 | ||||
-rw-r--r-- | test/CodeGen/X86/2012-11-30-handlemove-dbg.ll | 2 | ||||
-rw-r--r-- | test/CodeGen/X86/fold-load.ll | 6 | ||||
-rw-r--r-- | test/CodeGen/X86/hoist-common.ll | 10 | ||||
-rw-r--r-- | test/CodeGen/X86/misched-balance.ll | 2 |
9 files changed, 39 insertions, 20 deletions
diff --git a/test/CodeGen/ARM/2011-04-11-MachineLICMBug.ll b/test/CodeGen/ARM/2011-04-11-MachineLICMBug.ll index 348ec9f..e30c9c6 100644 --- a/test/CodeGen/ARM/2011-04-11-MachineLICMBug.ll +++ b/test/CodeGen/ARM/2011-04-11-MachineLICMBug.ll @@ -15,15 +15,14 @@ for.cond: for.body: ; CHECK: %for. -; CHECK: movs r{{[0-9]+}}, #{{[01]}} +; CHECK: mov{{.*}} r{{[0-9]+}}, #{{[01]}} +; CHECK: mov{{.*}} r{{[0-9]+}}, #{{[01]}} +; CHECK-NOT: mov r{{[0-9]+}}, #{{[01]}} %arrayidx = getelementptr i32* %A, i32 %0 %tmp4 = load i32* %arrayidx, align 4 %cmp6 = icmp eq i32 %tmp4, %value br i1 %cmp6, label %return, label %for.inc -; CHECK: %for. -; CHECK: movs r{{[0-9]+}}, #{{[01]}} - for.inc: %inc = add i32 %0, 1 br label %for.cond diff --git a/test/CodeGen/ARM/2011-08-25-ldmia_ret.ll b/test/CodeGen/ARM/2011-08-25-ldmia_ret.ll index 91de08a..9163166 100644 --- a/test/CodeGen/ARM/2011-08-25-ldmia_ret.ll +++ b/test/CodeGen/ARM/2011-08-25-ldmia_ret.ll @@ -42,7 +42,7 @@ if.then: ; preds = %land.lhs.true ; If-convert the return ; CHECK: it ne ; Fold the CSR+return into a pop -; CHECK: pop {r4, r5, r6, r7, pc} +; CHECK: pop {r4, r5, r7, pc} sw.bb18: %call20 = tail call i32 @bar(i32 %in2) nounwind switch i32 %call20, label %sw.default56 [ diff --git a/test/CodeGen/ARM/2012-08-30-select.ll b/test/CodeGen/ARM/2012-08-30-select.ll index 2fd8df4..e78bbde 100644 --- a/test/CodeGen/ARM/2012-08-30-select.ll +++ b/test/CodeGen/ARM/2012-08-30-select.ll @@ -5,14 +5,11 @@ ;CHECK: it ne ;CHECK-NEXT: vmovne.i32 ;CHECK: bx -define <16 x i8> @select_s_v_v(i32 %avail, i8* %bar) { +define <16 x i8> @select_s_v_v(<16 x i8> %vec, i32 %avail) { entry: - %vld1 = call <16 x i8> @llvm.arm.neon.vld1.v16i8(i8* %bar, i32 1) %and = and i32 %avail, 1 %tobool = icmp eq i32 %and, 0 - %vld1. = select i1 %tobool, <16 x i8> %vld1, <16 x i8> zeroinitializer - ret <16 x i8> %vld1. + %ret = select i1 %tobool, <16 x i8> %vec, <16 x i8> zeroinitializer + ret <16 x i8> %ret } -declare <16 x i8> @llvm.arm.neon.vld1.v16i8(i8* , i32 ) - diff --git a/test/CodeGen/ARM/2013-10-11-select-stalls.ll b/test/CodeGen/ARM/2013-10-11-select-stalls.ll new file mode 100644 index 0000000..33c0587 --- /dev/null +++ b/test/CodeGen/ARM/2013-10-11-select-stalls.ll @@ -0,0 +1,16 @@ +; REQUIRES: asserts +; RUN: llc < %s -mtriple=thumbv7-apple-ios -stats 2>&1 | not grep "Number of pipeline stalls" +; Evaluate the two vld1.8 instructions in separate MBB's, +; instead of stalling on one and conditionally overwriting its result. + +define <16 x i8> @multiselect(i32 %avail, i8* %foo, i8* %bar) { +entry: + %vld1 = call <16 x i8> @llvm.arm.neon.vld1.v16i8(i8* %foo, i32 1) + %vld2 = call <16 x i8> @llvm.arm.neon.vld1.v16i8(i8* %bar, i32 1) + %and = and i32 %avail, 1 + %tobool = icmp eq i32 %and, 0 + %retv = select i1 %tobool, <16 x i8> %vld1, <16 x i8> %vld2 + ret <16 x i8> %retv +} + +declare <16 x i8> @llvm.arm.neon.vld1.v16i8(i8* , i32 ) diff --git a/test/CodeGen/Thumb2/v8_IT_1.ll b/test/CodeGen/Thumb2/v8_IT_1.ll index e33845d..9248378 100644 --- a/test/CodeGen/Thumb2/v8_IT_1.ll +++ b/test/CodeGen/Thumb2/v8_IT_1.ll @@ -1,10 +1,7 @@ ; RUN: llc < %s -mtriple=thumbv8 -mattr=+neon | FileCheck %s ;CHECK-LABEL: select_s_v_v: -;CHECK: beq .LBB0_2 -;CHECK-NEXT: @ BB#1: -;CHECK-NEXT: vmov.i32 -;CHECK-NEXT: .LBB0_2: +;CHECK-NOT: it ;CHECK: bx define <16 x i8> @select_s_v_v(i32 %avail, i8* %bar) { entry: diff --git a/test/CodeGen/X86/2012-11-30-handlemove-dbg.ll b/test/CodeGen/X86/2012-11-30-handlemove-dbg.ll index c6e4e88..2ba0f08 100644 --- a/test/CodeGen/X86/2012-11-30-handlemove-dbg.ll +++ b/test/CodeGen/X86/2012-11-30-handlemove-dbg.ll @@ -6,7 +6,7 @@ ; ; CHECK: %entry ; CHECK: DEBUG_VALUE: hg -; CHECK: je +; CHECK: j %struct.node.0.27 = type { i16, double, [3 x double], i32, i32 } %struct.hgstruct.2.29 = type { %struct.bnode.1.28*, [3 x double], double, [3 x double] } diff --git a/test/CodeGen/X86/fold-load.ll b/test/CodeGen/X86/fold-load.ll index 495acd9..a1fc7db 100644 --- a/test/CodeGen/X86/fold-load.ll +++ b/test/CodeGen/X86/fold-load.ll @@ -49,10 +49,10 @@ L: ; xor in exit block will be CSE'ed and load will be folded to xor in entry. define i1 @test3(i32* %P, i32* %Q) nounwind { ; CHECK-LABEL: test3: -; CHECK: movl 8(%esp), %eax -; CHECK: xorl (%eax), +; CHECK: movl 8(%esp), %e +; CHECK: movl 4(%esp), %e +; CHECK: xorl (%e ; CHECK: j -; CHECK-NOT: xor entry: %0 = load i32* %P, align 4 %1 = load i32* %Q, align 4 diff --git a/test/CodeGen/X86/hoist-common.ll b/test/CodeGen/X86/hoist-common.ll index 6b26876..01d1b8c 100644 --- a/test/CodeGen/X86/hoist-common.ll +++ b/test/CodeGen/X86/hoist-common.ll @@ -1,4 +1,14 @@ ; RUN: llc < %s -mtriple=x86_64-apple-macosx | FileCheck %s +; This is supposed to be testing BranchFolding's common +; code hoisting logic, but has been erroneously passing due +; to there being a redundant xorl in the entry block +; and no common code to hoist. +; However, now that MachineSink sinks the redundant xor +; hoist-common looks at it and rejects it for hoisting, +; which causes this test to fail. +; Since it seems this test is broken, marking XFAIL for now +; until someone decides to remove it or fix what it tests. +; XFAIL: * ; Common "xorb al, al" instruction in the two successor blocks should be ; moved to the entry block above the test + je. diff --git a/test/CodeGen/X86/misched-balance.ll b/test/CodeGen/X86/misched-balance.ll index 3d67023..1900802 100644 --- a/test/CodeGen/X86/misched-balance.ll +++ b/test/CodeGen/X86/misched-balance.ll @@ -1,4 +1,4 @@ -; RUN: llc < %s -march=x86-64 -mcpu=core2 -pre-RA-sched=source -enable-misched -verify-machineinstrs | FileCheck %s +; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=core2 -pre-RA-sched=source -enable-misched -verify-machineinstrs | FileCheck %s ; ; Verify that misched resource/latency balancy heuristics are sane. |