Lines Matching +full:llvm +full:- +full:3
1 ; RUN: llc < %s -march=x86-64 -mattr=+mmx,+sse2 | FileCheck %s
4 ; CHECK-LABEL: t0:
6 ; CHECK: movq (%[[REG1:[a-z]+]]), %mm0
7 ; CHECK-NEXT: psllq (%[[REG2:[a-z]+]]), %mm0
8 ; CHECK-NEXT: movd %mm0, %rax
9 ; CHECK-NEXT: retq
14 %3 = tail call x86_mmx @llvm.x86.mmx.pslli.q(x86_mmx %1, i32 %2)
15 %4 = bitcast x86_mmx %3 to i64
18 declare x86_mmx @llvm.x86.mmx.pslli.q(x86_mmx, i32)
21 ; CHECK-LABEL: t1:
24 ; CHECK-NEXT: psrlq (%[[REG2]]), %mm0
25 ; CHECK-NEXT: movd %mm0, %rax
26 ; CHECK-NEXT: retq
31 %3 = tail call x86_mmx @llvm.x86.mmx.psrli.q(x86_mmx %1, i32 %2)
32 %4 = bitcast x86_mmx %3 to i64
35 declare x86_mmx @llvm.x86.mmx.psrli.q(x86_mmx, i32)
38 ; CHECK-LABEL: t2:
41 ; CHECK-NEXT: psllw (%[[REG2]]), %mm0
42 ; CHECK-NEXT: movd %mm0, %rax
43 ; CHECK-NEXT: retq
48 %3 = tail call x86_mmx @llvm.x86.mmx.pslli.w(x86_mmx %1, i32 %2)
49 %4 = bitcast x86_mmx %3 to i64
52 declare x86_mmx @llvm.x86.mmx.pslli.w(x86_mmx, i32)
55 ; CHECK-LABEL: t3:
58 ; CHECK-NEXT: psrlw (%[[REG2]]), %mm0
59 ; CHECK-NEXT: movd %mm0, %rax
60 ; CHECK-NEXT: retq
65 %3 = tail call x86_mmx @llvm.x86.mmx.psrli.w(x86_mmx %1, i32 %2)
66 %4 = bitcast x86_mmx %3 to i64
69 declare x86_mmx @llvm.x86.mmx.psrli.w(x86_mmx, i32)
72 ; CHECK-LABEL: t4:
75 ; CHECK-NEXT: pslld (%[[REG2]]), %mm0
76 ; CHECK-NEXT: movd %mm0, %rax
77 ; CHECK-NEXT: retq
82 %3 = tail call x86_mmx @llvm.x86.mmx.pslli.d(x86_mmx %1, i32 %2)
83 %4 = bitcast x86_mmx %3 to i64
86 declare x86_mmx @llvm.x86.mmx.pslli.d(x86_mmx, i32)
89 ; CHECK-LABEL: t5:
92 ; CHECK-NEXT: psrld (%[[REG2]]), %mm0
93 ; CHECK-NEXT: movd %mm0, %rax
94 ; CHECK-NEXT: retq
99 %3 = tail call x86_mmx @llvm.x86.mmx.psrli.d(x86_mmx %1, i32 %2)
100 %4 = bitcast x86_mmx %3 to i64
103 declare x86_mmx @llvm.x86.mmx.psrli.d(x86_mmx, i32)
106 ; CHECK-LABEL: t6:
109 ; CHECK-NEXT: psraw (%[[REG2]]), %mm0
110 ; CHECK-NEXT: movd %mm0, %rax
111 ; CHECK-NEXT: retq
116 %3 = tail call x86_mmx @llvm.x86.mmx.psrai.w(x86_mmx %1, i32 %2)
117 %4 = bitcast x86_mmx %3 to i64
120 declare x86_mmx @llvm.x86.mmx.psrai.w(x86_mmx, i32)
123 ; CHECK-LABEL: t7:
126 ; CHECK-NEXT: psrad (%[[REG2]]), %mm0
127 ; CHECK-NEXT: movd %mm0, %rax
128 ; CHECK-NEXT: retq
133 %3 = tail call x86_mmx @llvm.x86.mmx.psrai.d(x86_mmx %1, i32 %2)
134 %4 = bitcast x86_mmx %3 to i64
137 declare x86_mmx @llvm.x86.mmx.psrai.d(x86_mmx, i32)
140 ; CHECK-LABEL: tt0:
142 ; CHECK: paddb (%[[REG3:[a-z]+]]), %mm0
143 ; CHECK-NEXT: movd %mm0, %rax
144 ; CHECK-NEXT: emms
145 ; CHECK-NEXT: retq
148 %u = tail call x86_mmx @llvm.x86.mmx.padd.b(x86_mmx %t, x86_mmx %v)
150 call void @llvm.x86.mmx.emms()
153 declare x86_mmx @llvm.x86.mmx.padd.b(x86_mmx, x86_mmx)
154 declare void @llvm.x86.mmx.emms()
157 ; CHECK-LABEL: tt1:
160 ; CHECK-NEXT: movd %mm0, %rax
161 ; CHECK-NEXT: emms
162 ; CHECK-NEXT: retq
165 %u = tail call x86_mmx @llvm.x86.mmx.padd.w(x86_mmx %t, x86_mmx %v)
167 call void @llvm.x86.mmx.emms()
170 declare x86_mmx @llvm.x86.mmx.padd.w(x86_mmx, x86_mmx)
173 ; CHECK-LABEL: tt2:
176 ; CHECK-NEXT: movd %mm0, %rax
177 ; CHECK-NEXT: emms
178 ; CHECK-NEXT: retq
181 %u = tail call x86_mmx @llvm.x86.mmx.padd.d(x86_mmx %t, x86_mmx %v)
183 call void @llvm.x86.mmx.emms()
186 declare x86_mmx @llvm.x86.mmx.padd.d(x86_mmx, x86_mmx)
189 ; CHECK-LABEL: tt3:
192 ; CHECK-NEXT: movd %mm0, %rax
193 ; CHECK-NEXT: emms
194 ; CHECK-NEXT: retq
197 %u = tail call x86_mmx @llvm.x86.mmx.padd.q(x86_mmx %t, x86_mmx %v)
199 call void @llvm.x86.mmx.emms()
202 declare x86_mmx @llvm.x86.mmx.padd.q(x86_mmx, x86_mmx)
205 ; CHECK-LABEL: tt4:
208 ; CHECK-NEXT: movd %mm0, %rax
209 ; CHECK-NEXT: emms
210 ; CHECK-NEXT: retq
213 %u = tail call x86_mmx @llvm.x86.mmx.paddus.b(x86_mmx %t, x86_mmx %v)
215 call void @llvm.x86.mmx.emms()
218 declare x86_mmx @llvm.x86.mmx.paddus.b(x86_mmx, x86_mmx)
221 ; CHECK-LABEL: tt5:
224 ; CHECK-NEXT: movd %mm0, %rax
225 ; CHECK-NEXT: emms
226 ; CHECK-NEXT: retq
229 %u = tail call x86_mmx @llvm.x86.mmx.paddus.w(x86_mmx %t, x86_mmx %v)
231 call void @llvm.x86.mmx.emms()
234 declare x86_mmx @llvm.x86.mmx.paddus.w(x86_mmx, x86_mmx)
237 ; CHECK-LABEL: tt6:
240 ; CHECK-NEXT: movd %mm0, %rax
241 ; CHECK-NEXT: emms
242 ; CHECK-NEXT: retq
245 %u = tail call x86_mmx @llvm.x86.mmx.psrl.w(x86_mmx %t, x86_mmx %v)
247 call void @llvm.x86.mmx.emms()
250 declare x86_mmx @llvm.x86.mmx.psrl.w(x86_mmx, x86_mmx)
253 ; CHECK-LABEL: tt7:
256 ; CHECK-NEXT: movd %mm0, %rax
257 ; CHECK-NEXT: emms
258 ; CHECK-NEXT: retq
261 %u = tail call x86_mmx @llvm.x86.mmx.psrl.d(x86_mmx %t, x86_mmx %v)
263 call void @llvm.x86.mmx.emms()
266 declare x86_mmx @llvm.x86.mmx.psrl.d(x86_mmx, x86_mmx)
269 ; CHECK-LABEL: tt8:
272 ; CHECK-NEXT: movd %mm0, %rax
273 ; CHECK-NEXT: emms
274 ; CHECK-NEXT: retq
277 %u = tail call x86_mmx @llvm.x86.mmx.psrl.q(x86_mmx %t, x86_mmx %v)
279 call void @llvm.x86.mmx.emms()
282 declare x86_mmx @llvm.x86.mmx.psrl.q(x86_mmx, x86_mmx)