-; RUN: llc < %s -march=x86 -mcpu=penryn | grep movups | count 2
+; RUN: llc < %s -march=x86 -mcpu=penryn | FileCheck %s
define void @a(<4 x float>* %x) nounwind {
entry:
ret void
}
+; CHECK: a:
+; CHECK: movups
+; CHECK: movups
+; CHECK-NOT: movups
+; CHECK: ret
+
declare <4 x float> @llvm.x86.sse.rcp.ps(<4 x float>)
-; RUN: llc < %s -march=x86-64 -mcpu=penryn | grep movup | count 2
+; RUN: llc < %s -march=x86-64 -mcpu=penryn | FileCheck %s
define <4 x float> @foo(<4 x float>* %p, <4 x float> %x) nounwind {
%t = load <4 x float>* %p, align 4
%z = fmul <4 x float> %t, %x
ret <4 x float> %z
}
+
+; CHECK: foo:
+; CHECK: movups
+; CHECK: ret
+
define <2 x double> @bar(<2 x double>* %p, <2 x double> %x) nounwind {
%t = load <2 x double>* %p, align 8
%z = fmul <2 x double> %t, %x
ret <2 x double> %z
}
+
+; CHECK: bar:
+; CHECK: movupd
+; CHECK: ret