• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc < %s -mtriple=i386-unknown -mattr=+sse2 | FileCheck %s --check-prefix=X32 --check-prefix=X32-SSE
3; RUN: llc < %s -mtriple=i386-unknown -mattr=+avx  | FileCheck %s --check-prefix=X32 --check-prefix=X32-AVX
4; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+sse2 | FileCheck %s --check-prefix=X64 --check-prefix=X64-SSE
5; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+avx  | FileCheck %s --check-prefix=X64 --check-prefix=X64-AVX
6
7define <16 x i8> @coo() nounwind {
8; X32-SSE-LABEL: coo:
9; X32-SSE:       # BB#0:
10; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
11; X32-SSE-NEXT:    retl
12;
13; X32-AVX-LABEL: coo:
14; X32-AVX:       # BB#0:
15; X32-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
16; X32-AVX-NEXT:    retl
17;
18; X64-SSE-LABEL: coo:
19; X64-SSE:       # BB#0:
20; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
21; X64-SSE-NEXT:    retq
22;
23; X64-AVX-LABEL: coo:
24; X64-AVX:       # BB#0:
25; X64-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
26; X64-AVX-NEXT:    retq
27  ret <16 x i8> <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>
28}
29
30define <8 x i16> @soo() nounwind {
31; X32-SSE-LABEL: soo:
32; X32-SSE:       # BB#0:
33; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
34; X32-SSE-NEXT:    retl
35;
36; X32-AVX-LABEL: soo:
37; X32-AVX:       # BB#0:
38; X32-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
39; X32-AVX-NEXT:    retl
40;
41; X64-SSE-LABEL: soo:
42; X64-SSE:       # BB#0:
43; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
44; X64-SSE-NEXT:    retq
45;
46; X64-AVX-LABEL: soo:
47; X64-AVX:       # BB#0:
48; X64-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
49; X64-AVX-NEXT:    retq
50  ret <8 x i16> <i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1>
51}
52
53define <4 x i32> @ioo() nounwind {
54; X32-SSE-LABEL: ioo:
55; X32-SSE:       # BB#0:
56; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
57; X32-SSE-NEXT:    retl
58;
59; X32-AVX-LABEL: ioo:
60; X32-AVX:       # BB#0:
61; X32-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
62; X32-AVX-NEXT:    retl
63;
64; X64-SSE-LABEL: ioo:
65; X64-SSE:       # BB#0:
66; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
67; X64-SSE-NEXT:    retq
68;
69; X64-AVX-LABEL: ioo:
70; X64-AVX:       # BB#0:
71; X64-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
72; X64-AVX-NEXT:    retq
73  ret <4 x i32> <i32 -1, i32 -1, i32 -1, i32 -1>
74}
75
76define <2 x i64> @loo() nounwind {
77; X32-SSE-LABEL: loo:
78; X32-SSE:       # BB#0:
79; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
80; X32-SSE-NEXT:    retl
81;
82; X32-AVX-LABEL: loo:
83; X32-AVX:       # BB#0:
84; X32-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
85; X32-AVX-NEXT:    retl
86;
87; X64-SSE-LABEL: loo:
88; X64-SSE:       # BB#0:
89; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
90; X64-SSE-NEXT:    retq
91;
92; X64-AVX-LABEL: loo:
93; X64-AVX:       # BB#0:
94; X64-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
95; X64-AVX-NEXT:    retq
96  ret <2 x i64> <i64 -1, i64 -1>
97}
98
99define <2 x double> @doo() nounwind {
100; X32-SSE-LABEL: doo:
101; X32-SSE:       # BB#0:
102; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
103; X32-SSE-NEXT:    retl
104;
105; X32-AVX-LABEL: doo:
106; X32-AVX:       # BB#0:
107; X32-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
108; X32-AVX-NEXT:    retl
109;
110; X64-SSE-LABEL: doo:
111; X64-SSE:       # BB#0:
112; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
113; X64-SSE-NEXT:    retq
114;
115; X64-AVX-LABEL: doo:
116; X64-AVX:       # BB#0:
117; X64-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
118; X64-AVX-NEXT:    retq
119  ret <2 x double> <double 0xffffffffffffffff, double 0xffffffffffffffff>
120}
121
122define <4 x float> @foo() nounwind {
123; X32-SSE-LABEL: foo:
124; X32-SSE:       # BB#0:
125; X32-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
126; X32-SSE-NEXT:    retl
127;
128; X32-AVX-LABEL: foo:
129; X32-AVX:       # BB#0:
130; X32-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
131; X32-AVX-NEXT:    retl
132;
133; X64-SSE-LABEL: foo:
134; X64-SSE:       # BB#0:
135; X64-SSE-NEXT:    pcmpeqd %xmm0, %xmm0
136; X64-SSE-NEXT:    retq
137;
138; X64-AVX-LABEL: foo:
139; X64-AVX:       # BB#0:
140; X64-AVX-NEXT:    vpcmpeqd %xmm0, %xmm0, %xmm0
141; X64-AVX-NEXT:    retq
142  ret <4 x float> <float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000, float 0xffffffffe0000000>
143}
144