@@ -20,10 +20,7 @@ define <2 x i64> @test_mm_epi64(<8 x i16> %a, <8 x i16> %b) {
20
20
; AVX512VLCDBW-LABEL: test_mm_epi64:
21
21
; AVX512VLCDBW: # BB#0: # %entry
22
22
; AVX512VLCDBW-NEXT: vpcmpeqw %xmm1, %xmm0, %k0
23
- ; AVX512VLCDBW-NEXT: kmovd %k0, %eax
24
- ; AVX512VLCDBW-NEXT: vpxor %xmm0, %xmm0, %xmm0
25
- ; AVX512VLCDBW-NEXT: vpinsrb $0, %eax, %xmm0, %xmm0
26
- ; AVX512VLCDBW-NEXT: vpinsrb $8, %eax, %xmm0, %xmm0
23
+ ; AVX512VLCDBW-NEXT: vpbroadcastmb2q %k0, %xmm0
27
24
; AVX512VLCDBW-NEXT: retq
28
25
;
29
26
; X86-AVX512VLCDBW-LABEL: test_mm_epi64:
@@ -62,23 +59,13 @@ define <4 x i32> @test_mm_epi32(<16 x i8> %a, <16 x i8> %b) {
62
59
; AVX512VLCDBW-LABEL: test_mm_epi32:
63
60
; AVX512VLCDBW: # BB#0: # %entry
64
61
; AVX512VLCDBW-NEXT: vpcmpeqb %xmm1, %xmm0, %k0
65
- ; AVX512VLCDBW-NEXT: kmovd %k0, %eax
66
- ; AVX512VLCDBW-NEXT: vpxor %xmm0, %xmm0, %xmm0
67
- ; AVX512VLCDBW-NEXT: vpinsrw $0, %eax, %xmm0, %xmm0
68
- ; AVX512VLCDBW-NEXT: vpinsrw $2, %eax, %xmm0, %xmm0
69
- ; AVX512VLCDBW-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0
70
- ; AVX512VLCDBW-NEXT: vpinsrw $6, %eax, %xmm0, %xmm0
62
+ ; AVX512VLCDBW-NEXT: vpbroadcastmw2d %k0, %xmm0
71
63
; AVX512VLCDBW-NEXT: retq
72
64
;
73
65
; X86-AVX512VLCDBW-LABEL: test_mm_epi32:
74
66
; X86-AVX512VLCDBW: # BB#0: # %entry
75
67
; X86-AVX512VLCDBW-NEXT: vpcmpeqb %xmm1, %xmm0, %k0
76
- ; X86-AVX512VLCDBW-NEXT: kmovd %k0, %eax
77
- ; X86-AVX512VLCDBW-NEXT: vpxor %xmm0, %xmm0, %xmm0
78
- ; X86-AVX512VLCDBW-NEXT: vpinsrw $0, %eax, %xmm0, %xmm0
79
- ; X86-AVX512VLCDBW-NEXT: vpinsrw $2, %eax, %xmm0, %xmm0
80
- ; X86-AVX512VLCDBW-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0
81
- ; X86-AVX512VLCDBW-NEXT: vpinsrw $6, %eax, %xmm0, %xmm0
68
+ ; X86-AVX512VLCDBW-NEXT: vpbroadcastmw2d %k0, %xmm0
82
69
; X86-AVX512VLCDBW-NEXT: retl
83
70
entry:
84
71
%0 = icmp eq <16 x i8 > %a , %b
@@ -100,27 +87,13 @@ define <16 x i32> @test_mm512_epi32(<16 x i32> %a, <16 x i32> %b) {
100
87
; AVX512VLCDBW-LABEL: test_mm512_epi32:
101
88
; AVX512VLCDBW: # BB#0: # %entry
102
89
; AVX512VLCDBW-NEXT: vpcmpeqd %zmm1, %zmm0, %k0
103
- ; AVX512VLCDBW-NEXT: kmovd %k0, %eax
104
- ; AVX512VLCDBW-NEXT: vpxor %xmm0, %xmm0, %xmm0
105
- ; AVX512VLCDBW-NEXT: vpinsrw $0, %eax, %xmm0, %xmm0
106
- ; AVX512VLCDBW-NEXT: vpinsrw $2, %eax, %xmm0, %xmm0
107
- ; AVX512VLCDBW-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0
108
- ; AVX512VLCDBW-NEXT: vpinsrw $6, %eax, %xmm0, %xmm0
109
- ; AVX512VLCDBW-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm0
110
- ; AVX512VLCDBW-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
90
+ ; AVX512VLCDBW-NEXT: vpbroadcastmw2d %k0, %zmm0
111
91
; AVX512VLCDBW-NEXT: retq
112
92
;
113
93
; X86-AVX512VLCDBW-LABEL: test_mm512_epi32:
114
94
; X86-AVX512VLCDBW: # BB#0: # %entry
115
95
; X86-AVX512VLCDBW-NEXT: vpcmpeqd %zmm1, %zmm0, %k0
116
- ; X86-AVX512VLCDBW-NEXT: kmovd %k0, %eax
117
- ; X86-AVX512VLCDBW-NEXT: vpxor %xmm0, %xmm0, %xmm0
118
- ; X86-AVX512VLCDBW-NEXT: vpinsrw $0, %eax, %xmm0, %xmm0
119
- ; X86-AVX512VLCDBW-NEXT: vpinsrw $2, %eax, %xmm0, %xmm0
120
- ; X86-AVX512VLCDBW-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0
121
- ; X86-AVX512VLCDBW-NEXT: vpinsrw $6, %eax, %xmm0, %xmm0
122
- ; X86-AVX512VLCDBW-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm0
123
- ; X86-AVX512VLCDBW-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
96
+ ; X86-AVX512VLCDBW-NEXT: vpbroadcastmw2d %k0, %zmm0
124
97
; X86-AVX512VLCDBW-NEXT: retl
125
98
entry:
126
99
%0 = icmp eq <16 x i32 > %a , %b
@@ -145,12 +118,7 @@ define <8 x i64> @test_mm512_epi64(<8 x i32> %a, <8 x i32> %b) {
145
118
; AVX512VLCDBW-LABEL: test_mm512_epi64:
146
119
; AVX512VLCDBW: # BB#0: # %entry
147
120
; AVX512VLCDBW-NEXT: vpcmpeqd %ymm1, %ymm0, %k0
148
- ; AVX512VLCDBW-NEXT: kmovd %k0, %eax
149
- ; AVX512VLCDBW-NEXT: vpxor %xmm0, %xmm0, %xmm0
150
- ; AVX512VLCDBW-NEXT: vpinsrb $0, %eax, %xmm0, %xmm0
151
- ; AVX512VLCDBW-NEXT: vpinsrb $8, %eax, %xmm0, %xmm0
152
- ; AVX512VLCDBW-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm0
153
- ; AVX512VLCDBW-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
121
+ ; AVX512VLCDBW-NEXT: vpbroadcastmb2q %k0, %zmm0
154
122
; AVX512VLCDBW-NEXT: retq
155
123
;
156
124
; X86-AVX512VLCDBW-LABEL: test_mm512_epi64:
@@ -188,11 +156,7 @@ define <4 x i64> @test_mm256_epi64(<8 x i32> %a, <8 x i32> %b) {
188
156
; AVX512VLCDBW-LABEL: test_mm256_epi64:
189
157
; AVX512VLCDBW: # BB#0: # %entry
190
158
; AVX512VLCDBW-NEXT: vpcmpeqd %ymm1, %ymm0, %k0
191
- ; AVX512VLCDBW-NEXT: kmovd %k0, %eax
192
- ; AVX512VLCDBW-NEXT: vpxor %xmm0, %xmm0, %xmm0
193
- ; AVX512VLCDBW-NEXT: vpinsrb $0, %eax, %xmm0, %xmm0
194
- ; AVX512VLCDBW-NEXT: vpinsrb $8, %eax, %xmm0, %xmm0
195
- ; AVX512VLCDBW-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm0
159
+ ; AVX512VLCDBW-NEXT: vpbroadcastmb2q %k0, %ymm0
196
160
; AVX512VLCDBW-NEXT: retq
197
161
;
198
162
; X86-AVX512VLCDBW-LABEL: test_mm256_epi64:
@@ -232,25 +196,13 @@ define <8 x i32> @test_mm256_epi32(<16 x i16> %a, <16 x i16> %b) {
232
196
; AVX512VLCDBW-LABEL: test_mm256_epi32:
233
197
; AVX512VLCDBW: # BB#0: # %entry
234
198
; AVX512VLCDBW-NEXT: vpcmpeqw %ymm1, %ymm0, %k0
235
- ; AVX512VLCDBW-NEXT: kmovd %k0, %eax
236
- ; AVX512VLCDBW-NEXT: vpxor %xmm0, %xmm0, %xmm0
237
- ; AVX512VLCDBW-NEXT: vpinsrw $0, %eax, %xmm0, %xmm0
238
- ; AVX512VLCDBW-NEXT: vpinsrw $2, %eax, %xmm0, %xmm0
239
- ; AVX512VLCDBW-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0
240
- ; AVX512VLCDBW-NEXT: vpinsrw $6, %eax, %xmm0, %xmm0
241
- ; AVX512VLCDBW-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm0
199
+ ; AVX512VLCDBW-NEXT: vpbroadcastmw2d %k0, %ymm0
242
200
; AVX512VLCDBW-NEXT: retq
243
201
;
244
202
; X86-AVX512VLCDBW-LABEL: test_mm256_epi32:
245
203
; X86-AVX512VLCDBW: # BB#0: # %entry
246
204
; X86-AVX512VLCDBW-NEXT: vpcmpeqw %ymm1, %ymm0, %k0
247
- ; X86-AVX512VLCDBW-NEXT: kmovd %k0, %eax
248
- ; X86-AVX512VLCDBW-NEXT: vpxor %xmm0, %xmm0, %xmm0
249
- ; X86-AVX512VLCDBW-NEXT: vpinsrw $0, %eax, %xmm0, %xmm0
250
- ; X86-AVX512VLCDBW-NEXT: vpinsrw $2, %eax, %xmm0, %xmm0
251
- ; X86-AVX512VLCDBW-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0
252
- ; X86-AVX512VLCDBW-NEXT: vpinsrw $6, %eax, %xmm0, %xmm0
253
- ; X86-AVX512VLCDBW-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm0
205
+ ; X86-AVX512VLCDBW-NEXT: vpbroadcastmw2d %k0, %ymm0
254
206
; X86-AVX512VLCDBW-NEXT: retl
255
207
entry:
256
208
%0 = icmp eq <16 x i16 > %a , %b
0 commit comments