1 // RUN: %clang_cc1 %s -O3 -triple=x86_64-unknown-unknown -target-feature +3dnow -emit-llvm -o - | FileCheck %s
2
3 // Don't include mm_malloc.h, it's system specific.
4 #define __MM_MALLOC_H
5
6 #include <x86intrin.h>
7
test_m_pavgusb(__m64 m1,__m64 m2)8 __m64 test_m_pavgusb(__m64 m1, __m64 m2) {
9 // CHECK-LABEL: define i64 @test_m_pavgusb
10 // CHECK: @llvm.x86.3dnow.pavgusb
11 return _m_pavgusb(m1, m2);
12 }
13
test_m_pf2id(__m64 m)14 __m64 test_m_pf2id(__m64 m) {
15 // CHECK-LABEL: define i64 @test_m_pf2id
16 // CHECK: @llvm.x86.3dnow.pf2id
17 return _m_pf2id(m);
18 }
19
test_m_pfacc(__m64 m1,__m64 m2)20 __m64 test_m_pfacc(__m64 m1, __m64 m2) {
21 // CHECK-LABEL: define i64 @test_m_pfacc
22 // CHECK: @llvm.x86.3dnow.pfacc
23 return _m_pfacc(m1, m2);
24 }
25
test_m_pfadd(__m64 m1,__m64 m2)26 __m64 test_m_pfadd(__m64 m1, __m64 m2) {
27 // CHECK-LABEL: define i64 @test_m_pfadd
28 // CHECK: @llvm.x86.3dnow.pfadd
29 return _m_pfadd(m1, m2);
30 }
31
test_m_pfcmpeq(__m64 m1,__m64 m2)32 __m64 test_m_pfcmpeq(__m64 m1, __m64 m2) {
33 // CHECK-LABEL: define i64 @test_m_pfcmpeq
34 // CHECK: @llvm.x86.3dnow.pfcmpeq
35 return _m_pfcmpeq(m1, m2);
36 }
37
test_m_pfcmpge(__m64 m1,__m64 m2)38 __m64 test_m_pfcmpge(__m64 m1, __m64 m2) {
39 // CHECK-LABEL: define i64 @test_m_pfcmpge
40 // CHECK: @llvm.x86.3dnow.pfcmpge
41 return _m_pfcmpge(m1, m2);
42 }
43
test_m_pfcmpgt(__m64 m1,__m64 m2)44 __m64 test_m_pfcmpgt(__m64 m1, __m64 m2) {
45 // CHECK-LABEL: define i64 @test_m_pfcmpgt
46 // CHECK: @llvm.x86.3dnow.pfcmpgt
47 return _m_pfcmpgt(m1, m2);
48 }
49
test_m_pfmax(__m64 m1,__m64 m2)50 __m64 test_m_pfmax(__m64 m1, __m64 m2) {
51 // CHECK-LABEL: define i64 @test_m_pfmax
52 // CHECK: @llvm.x86.3dnow.pfmax
53 return _m_pfmax(m1, m2);
54 }
55
test_m_pfmin(__m64 m1,__m64 m2)56 __m64 test_m_pfmin(__m64 m1, __m64 m2) {
57 // CHECK-LABEL: define i64 @test_m_pfmin
58 // CHECK: @llvm.x86.3dnow.pfmin
59 return _m_pfmin(m1, m2);
60 }
61
test_m_pfmul(__m64 m1,__m64 m2)62 __m64 test_m_pfmul(__m64 m1, __m64 m2) {
63 // CHECK-LABEL: define i64 @test_m_pfmul
64 // CHECK: @llvm.x86.3dnow.pfmul
65 return _m_pfmul(m1, m2);
66 }
67
test_m_pfrcp(__m64 m)68 __m64 test_m_pfrcp(__m64 m) {
69 // CHECK-LABEL: define i64 @test_m_pfrcp
70 // CHECK: @llvm.x86.3dnow.pfrcp
71 return _m_pfrcp(m);
72 }
73
test_m_pfrcpit1(__m64 m1,__m64 m2)74 __m64 test_m_pfrcpit1(__m64 m1, __m64 m2) {
75 // CHECK-LABEL: define i64 @test_m_pfrcpit1
76 // CHECK: @llvm.x86.3dnow.pfrcpit1
77 return _m_pfrcpit1(m1, m2);
78 }
79
test_m_pfrcpit2(__m64 m1,__m64 m2)80 __m64 test_m_pfrcpit2(__m64 m1, __m64 m2) {
81 // CHECK-LABEL: define i64 @test_m_pfrcpit2
82 // CHECK: @llvm.x86.3dnow.pfrcpit2
83 return _m_pfrcpit2(m1, m2);
84 }
85
test_m_pfrsqrt(__m64 m)86 __m64 test_m_pfrsqrt(__m64 m) {
87 // CHECK-LABEL: define i64 @test_m_pfrsqrt
88 // CHECK: @llvm.x86.3dnow.pfrsqrt
89 return _m_pfrsqrt(m);
90 }
91
test_m_pfrsqrtit1(__m64 m1,__m64 m2)92 __m64 test_m_pfrsqrtit1(__m64 m1, __m64 m2) {
93 // CHECK-LABEL: define i64 @test_m_pfrsqrtit1
94 // CHECK: @llvm.x86.3dnow.pfrsqit1
95 return _m_pfrsqrtit1(m1, m2);
96 }
97
test_m_pfsub(__m64 m1,__m64 m2)98 __m64 test_m_pfsub(__m64 m1, __m64 m2) {
99 // CHECK-LABEL: define i64 @test_m_pfsub
100 // CHECK: @llvm.x86.3dnow.pfsub
101 return _m_pfsub(m1, m2);
102 }
103
test_m_pfsubr(__m64 m1,__m64 m2)104 __m64 test_m_pfsubr(__m64 m1, __m64 m2) {
105 // CHECK-LABEL: define i64 @test_m_pfsubr
106 // CHECK: @llvm.x86.3dnow.pfsubr
107 return _m_pfsubr(m1, m2);
108 }
109
test_m_pi2fd(__m64 m)110 __m64 test_m_pi2fd(__m64 m) {
111 // CHECK-LABEL: define i64 @test_m_pi2fd
112 // CHECK: @llvm.x86.3dnow.pi2fd
113 return _m_pi2fd(m);
114 }
115
test_m_pmulhrw(__m64 m1,__m64 m2)116 __m64 test_m_pmulhrw(__m64 m1, __m64 m2) {
117 // CHECK-LABEL: define i64 @test_m_pmulhrw
118 // CHECK: @llvm.x86.3dnow.pmulhrw
119 return _m_pmulhrw(m1, m2);
120 }
121
test_m_pf2iw(__m64 m)122 __m64 test_m_pf2iw(__m64 m) {
123 // CHECK-LABEL: define i64 @test_m_pf2iw
124 // CHECK: @llvm.x86.3dnowa.pf2iw
125 return _m_pf2iw(m);
126 }
127
test_m_pfnacc(__m64 m1,__m64 m2)128 __m64 test_m_pfnacc(__m64 m1, __m64 m2) {
129 // CHECK-LABEL: define i64 @test_m_pfnacc
130 // CHECK: @llvm.x86.3dnowa.pfnacc
131 return _m_pfnacc(m1, m2);
132 }
133
test_m_pfpnacc(__m64 m1,__m64 m2)134 __m64 test_m_pfpnacc(__m64 m1, __m64 m2) {
135 // CHECK-LABEL: define i64 @test_m_pfpnacc
136 // CHECK: @llvm.x86.3dnowa.pfpnacc
137 return _m_pfpnacc(m1, m2);
138 }
139
test_m_pi2fw(__m64 m)140 __m64 test_m_pi2fw(__m64 m) {
141 // CHECK-LABEL: define i64 @test_m_pi2fw
142 // CHECK: @llvm.x86.3dnowa.pi2fw
143 return _m_pi2fw(m);
144 }
145
test_m_pswapdsf(__m64 m)146 __m64 test_m_pswapdsf(__m64 m) {
147 // CHECK-LABEL: define i64 @test_m_pswapdsf
148 // CHECK: @llvm.x86.3dnowa.pswapd
149 return _m_pswapdsf(m);
150 }
151
test_m_pswapdsi(__m64 m)152 __m64 test_m_pswapdsi(__m64 m) {
153 // CHECK-LABEL: define i64 @test_m_pswapdsi
154 // CHECK: @llvm.x86.3dnowa.pswapd
155 return _m_pswapdsi(m);
156 }
157