• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc < %s -march=x86-64 | grep movd | count 4
2
3define i64 @foo(x86_mmx* %p) {
4  %t = load x86_mmx* %p
5  %u = tail call x86_mmx @llvm.x86.mmx.padd.q(x86_mmx %t, x86_mmx %t)
6  %s = bitcast x86_mmx %u to i64
7  ret i64 %s
8}
9define i64 @goo(x86_mmx* %p) {
10  %t = load x86_mmx* %p
11  %u = tail call x86_mmx @llvm.x86.mmx.padd.d(x86_mmx %t, x86_mmx %t)
12  %s = bitcast x86_mmx %u to i64
13  ret i64 %s
14}
15define i64 @hoo(x86_mmx* %p) {
16  %t = load x86_mmx* %p
17  %u = tail call x86_mmx @llvm.x86.mmx.padd.w(x86_mmx %t, x86_mmx %t)
18  %s = bitcast x86_mmx %u to i64
19  ret i64 %s
20}
21define i64 @ioo(x86_mmx* %p) {
22  %t = load x86_mmx* %p
23  %u = tail call x86_mmx @llvm.x86.mmx.padd.b(x86_mmx %t, x86_mmx %t)
24  %s = bitcast x86_mmx %u to i64
25  ret i64 %s
26}
27
28declare x86_mmx @llvm.x86.mmx.padd.b(x86_mmx, x86_mmx)
29declare x86_mmx @llvm.x86.mmx.padd.w(x86_mmx, x86_mmx)
30declare x86_mmx @llvm.x86.mmx.padd.d(x86_mmx, x86_mmx)
31declare x86_mmx @llvm.x86.mmx.padd.q(x86_mmx, x86_mmx)
32