aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2009-02-11 21:29:39 +0000
committerDan Gohman <gohman@apple.com>2009-02-11 21:29:39 +0000
commitc8db34cb07fea88c4b8f3e0f095fd8aed568b28e (patch)
tree180555e018ae5b9046d0ff282acb5183c7f73556 /test
parent8bb332d45dd266b9678446cea5812371d8d3e8af (diff)
downloadexternal_llvm-c8db34cb07fea88c4b8f3e0f095fd8aed568b28e.zip
external_llvm-c8db34cb07fea88c4b8f3e0f095fd8aed568b28e.tar.gz
external_llvm-c8db34cb07fea88c4b8f3e0f095fd8aed568b28e.tar.bz2
Don't use special heuristics for nodes with no data predecessors
unless they actually have data successors, and likewise for nodes with no data successors unless they actually have data precessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64327 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/CodeGen/X86/2008-02-22-ReMatBug.ll2
-rw-r--r--test/CodeGen/X86/2008-08-05-SpillerBug.ll2
-rw-r--r--test/CodeGen/X86/pmul.ll2
-rw-r--r--test/CodeGen/X86/sse_reload_fold.ll45
4 files changed, 26 insertions, 25 deletions
diff --git a/test/CodeGen/X86/2008-02-22-ReMatBug.ll b/test/CodeGen/X86/2008-02-22-ReMatBug.ll
index 539fc15..f78d526 100644
--- a/test/CodeGen/X86/2008-02-22-ReMatBug.ll
+++ b/test/CodeGen/X86/2008-02-22-ReMatBug.ll
@@ -1,4 +1,4 @@
-; RUN: llvm-as < %s | llc -march=x86 -stats |& grep {Number of re-materialization} | grep 4
+; RUN: llvm-as < %s | llc -march=x86 -stats |& grep {Number of re-materialization} | grep 3
; RUN: llvm-as < %s | llc -march=x86 -stats |& grep {Number of dead spill slots removed}
; rdar://5761454
diff --git a/test/CodeGen/X86/2008-08-05-SpillerBug.ll b/test/CodeGen/X86/2008-08-05-SpillerBug.ll
index ca42f2b..868c495 100644
--- a/test/CodeGen/X86/2008-08-05-SpillerBug.ll
+++ b/test/CodeGen/X86/2008-08-05-SpillerBug.ll
@@ -1,4 +1,4 @@
-; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin -disable-fp-elim -stats -info-output-file - | not grep {Number of dead stores elided}
+; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin -disable-fp-elim -stats -info-output-file - | grep {Number of dead stores elided} | count 1
; PR2568
@g_3 = external global i16 ; <i16*> [#uses=1]
diff --git a/test/CodeGen/X86/pmul.ll b/test/CodeGen/X86/pmul.ll
index b619411..e00d1e5 100644
--- a/test/CodeGen/X86/pmul.ll
+++ b/test/CodeGen/X86/pmul.ll
@@ -1,6 +1,6 @@
; RUN: llvm-as < %s | llc -march=x86 -mattr=sse41 -stack-alignment=16 > %t
; RUN: grep pmul %t | count 12
-; RUN: grep mov %t | count 15
+; RUN: grep mov %t | count 12
define <4 x i32> @a(<4 x i32> %i) nounwind {
%A = mul <4 x i32> %i, < i32 117, i32 117, i32 117, i32 117 >
diff --git a/test/CodeGen/X86/sse_reload_fold.ll b/test/CodeGen/X86/sse_reload_fold.ll
index 1100eb7..547763e 100644
--- a/test/CodeGen/X86/sse_reload_fold.ll
+++ b/test/CodeGen/X86/sse_reload_fold.ll
@@ -2,9 +2,10 @@
; RUN: llc -march=x86-64 -mattr=+64bit,+sse3 -print-failed-fuse-candidates |& \
; RUN: grep fail | count 1
-declare void @bar()
-declare <4 x float> @qux()
-declare <2 x double> @pin()
+declare float @test_f(float %f)
+declare double @test_d(double %f)
+declare <4 x float> @test_vf(<4 x float> %f)
+declare <2 x double> @test_vd(<2 x double> %f)
declare float @llvm.sqrt.f32(float)
declare double @llvm.sqrt.f64(double)
@@ -26,99 +27,99 @@ declare <2 x double> @llvm.x86.sse3.hadd.pd(<2 x double>, <2 x double>)
declare <2 x double> @llvm.x86.sse3.hsub.pd(<2 x double>, <2 x double>)
define float @foo(float %f) {
- call void @bar()
+ %a = call float @test_f(float %f)
%t = call float @llvm.sqrt.f32(float %f)
ret float %t
}
define double @doo(double %f) {
- call void @bar()
+ %a = call double @test_d(double %f)
%t = call double @llvm.sqrt.f64(double %f)
ret double %t
}
define <4 x float> @a0(<4 x float> %f) {
- call void @bar()
+ %a = call <4 x float> @test_vf(<4 x float> %f)
%t = call <4 x float> @llvm.x86.sse.rsqrt.ps(<4 x float> %f)
ret <4 x float> %t
}
define <4 x float> @a1(<4 x float> %f) {
- call void @bar()
+ %a = call <4 x float> @test_vf(<4 x float> %f)
%t = call <4 x float> @llvm.x86.sse.sqrt.ps(<4 x float> %f)
ret <4 x float> %t
}
define <4 x float> @a2(<4 x float> %f) {
- call void @bar()
+ %a = call <4 x float> @test_vf(<4 x float> %f)
%t = call <4 x float> @llvm.x86.sse.rcp.ps(<4 x float> %f)
ret <4 x float> %t
}
define <4 x float> @b3(<4 x float> %f) {
- %y = call <4 x float> @qux()
+ %y = call <4 x float> @test_vf(<4 x float> %f)
%t = call <4 x float> @llvm.x86.sse.min.ps(<4 x float> %y, <4 x float> %f)
ret <4 x float> %t
}
define <4 x float> @b4(<4 x float> %f) {
- %y = call <4 x float> @qux()
+ %y = call <4 x float> @test_vf(<4 x float> %f)
%t = call <4 x float> @llvm.x86.sse.max.ps(<4 x float> %y, <4 x float> %f)
ret <4 x float> %t
}
define <4 x float> @b5(<4 x float> %f) {
- %y = call <4 x float> @qux()
+ %y = call <4 x float> @test_vf(<4 x float> %f)
%t = call <4 x float> @llvm.x86.sse.cmp.ps(<4 x float> %y, <4 x float> %f, i8 7)
ret <4 x float> %t
}
define <4 x float> @b6(<4 x float> %f) {
- %y = call <4 x float> @qux()
+ %y = call <4 x float> @test_vf(<4 x float> %f)
%t = call <4 x float> @llvm.x86.sse3.addsub.ps(<4 x float> %y, <4 x float> %f)
ret <4 x float> %t
}
define <4 x float> @b7(<4 x float> %f) {
- %y = call <4 x float> @qux()
+ %y = call <4 x float> @test_vf(<4 x float> %f)
%t = call <4 x float> @llvm.x86.sse3.hadd.ps(<4 x float> %y, <4 x float> %f)
ret <4 x float> %t
}
define <4 x float> @b8(<4 x float> %f) {
- %y = call <4 x float> @qux()
+ %y = call <4 x float> @test_vf(<4 x float> %f)
%t = call <4 x float> @llvm.x86.sse3.hsub.ps(<4 x float> %y, <4 x float> %f)
ret <4 x float> %t
}
define <2 x double> @c1(<2 x double> %f) {
- call void @bar()
+ %a = call <2 x double> @test_vd(<2 x double> %f)
%t = call <2 x double> @llvm.x86.sse2.sqrt.pd(<2 x double> %f)
ret <2 x double> %t
}
define <2 x double> @d3(<2 x double> %f) {
- %y = call <2 x double> @pin()
+ %y = call <2 x double> @test_vd(<2 x double> %f)
%t = call <2 x double> @llvm.x86.sse2.min.pd(<2 x double> %y, <2 x double> %f)
ret <2 x double> %t
}
define <2 x double> @d4(<2 x double> %f) {
- %y = call <2 x double> @pin()
+ %y = call <2 x double> @test_vd(<2 x double> %f)
%t = call <2 x double> @llvm.x86.sse2.max.pd(<2 x double> %y, <2 x double> %f)
ret <2 x double> %t
}
define <2 x double> @d5(<2 x double> %f) {
- %y = call <2 x double> @pin()
+ %y = call <2 x double> @test_vd(<2 x double> %f)
%t = call <2 x double> @llvm.x86.sse2.cmp.pd(<2 x double> %y, <2 x double> %f, i8 7)
ret <2 x double> %t
}
define <2 x double> @d6(<2 x double> %f) {
- %y = call <2 x double> @pin()
+ %y = call <2 x double> @test_vd(<2 x double> %f)
%t = call <2 x double> @llvm.x86.sse3.addsub.pd(<2 x double> %y, <2 x double> %f)
ret <2 x double> %t
}
define <2 x double> @d7(<2 x double> %f) {
- %y = call <2 x double> @pin()
+ %y = call <2 x double> @test_vd(<2 x double> %f)
%t = call <2 x double> @llvm.x86.sse3.hadd.pd(<2 x double> %y, <2 x double> %f)
ret <2 x double> %t
}
define <2 x double> @d8(<2 x double> %f) {
- %y = call <2 x double> @pin()
+ %y = call <2 x double> @test_vd(<2 x double> %f)
%t = call <2 x double> @llvm.x86.sse3.hsub.pd(<2 x double> %y, <2 x double> %f)
ret <2 x double> %t
}
; This one should fail to fuse.
define <2 x double> @z0(<2 x double> %f) {
- %y = call <2 x double> @pin()
+ %y = call <2 x double> @test_vd(<2 x double> %f)
%t = call <2 x double> @llvm.x86.sse3.hsub.pd(<2 x double> %f, <2 x double> %y)
ret <2 x double> %t
}